@aztec/world-state 0.1.0-alpha22 → 0.1.0-alpha39
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/.tsbuildinfo +1 -1
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/merkle-tree/merkle_tree_operations_facade.d.ts +7 -5
- package/dest/merkle-tree/merkle_tree_operations_facade.d.ts.map +1 -1
- package/dest/merkle-tree/merkle_tree_operations_facade.js +6 -5
- package/dest/synchroniser/config.d.ts +1 -1
- package/dest/synchroniser/config.d.ts.map +1 -1
- package/dest/synchroniser/config.js +3 -3
- package/dest/synchroniser/server_world_state_synchroniser.d.ts +3 -19
- package/dest/synchroniser/server_world_state_synchroniser.d.ts.map +1 -1
- package/dest/synchroniser/server_world_state_synchroniser.js +11 -23
- package/dest/synchroniser/server_world_state_synchroniser.test.js +11 -16
- package/dest/synchroniser/world_state_synchroniser.d.ts +24 -0
- package/dest/synchroniser/world_state_synchroniser.d.ts.map +1 -1
- package/dest/synchroniser/world_state_synchroniser.js +1 -1
- package/dest/utils.d.ts +6 -0
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +11 -2
- package/dest/world-state-db/index.d.ts +13 -7
- package/dest/world-state-db/index.d.ts.map +1 -1
- package/dest/world-state-db/index.js +2 -2
- package/dest/world-state-db/merkle_trees.d.ts +10 -6
- package/dest/world-state-db/merkle_trees.d.ts.map +1 -1
- package/dest/world-state-db/merkle_trees.js +44 -52
- package/package.json +6 -5
- package/src/index.ts +1 -0
- package/src/merkle-tree/merkle_tree_operations_facade.ts +10 -7
- package/src/synchroniser/config.ts +3 -3
- package/src/synchroniser/server_world_state_synchroniser.test.ts +21 -15
- package/src/synchroniser/server_world_state_synchroniser.ts +17 -23
- package/src/synchroniser/world_state_synchroniser.ts +30 -0
- package/src/utils.ts +13 -2
- package/src/world-state-db/index.ts +13 -8
- package/src/world-state-db/merkle_trees.ts +54 -77
|
@@ -19,8 +19,8 @@ export class MerkleTreeOperationsFacade {
|
|
|
19
19
|
* Get the current roots of the commitment trees.
|
|
20
20
|
* @returns The current roots of the trees.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
return this.trees.
|
|
22
|
+
getTreeRoots() {
|
|
23
|
+
return this.trees.getTreeRoots(this.includeUncommitted);
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Appends a set of leaf values to the tree.
|
|
@@ -91,10 +91,11 @@ export class MerkleTreeOperationsFacade {
|
|
|
91
91
|
/**
|
|
92
92
|
* Inserts into the roots trees (CONTRACT_TREE_ROOTS_TREE, PRIVATE_DATA_TREE_ROOTS_TREE)
|
|
93
93
|
* the current roots of the corresponding trees (CONTRACT_TREE, PRIVATE_DATA_TREE).
|
|
94
|
+
* @param globalVariables - The current global variables to include in the block hash.
|
|
94
95
|
* @returns Empty promise.
|
|
95
96
|
*/
|
|
96
|
-
|
|
97
|
-
return this.trees.
|
|
97
|
+
updateHistoricBlocksTree(globalVariables) {
|
|
98
|
+
return this.trees.updateHistoricBlocksTree(globalVariables, this.includeUncommitted);
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
100
101
|
* Handles a single L2 block (i.e. Inserts the new commitments into the merkle tree).
|
|
@@ -129,4 +130,4 @@ export class MerkleTreeOperationsFacade {
|
|
|
129
130
|
return this.trees.batchInsert(treeId, leaves, subtreeHeight);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVya2xlLXRyZWUvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQW9CLEtBQW1CLEVBQVUsa0JBQTJCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRWhGOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsTUFBb0IsRUFBRSxNQUFnQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsTUFBb0IsRUFBRSxLQUFhO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQ25CLE1BQW1DLEVBQ25DLEtBQWE7UUFXYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLE1BQW1DLEVBQUUsSUFBYyxFQUFFLEtBQWE7UUFDM0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxNQUFtQyxFQUFFLEtBQWE7UUFDNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxNQUFvQixFQUFFLEtBQWE7UUFDL0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQUMsTUFBb0IsRUFBRSxLQUFhO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx3QkFBd0IsQ0FBQyxlQUFnQztRQUM5RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEtBQWM7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE1BQU07UUFDakIsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxRQUFRO1FBQ25CLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXLENBQ2hCLE1BQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/synchroniser/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/synchroniser/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,8BAA8B,EAAE,MAAM,CAAC;IAEvC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAOnD"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* @returns The configuration values for the world state synchroniser.
|
|
4
4
|
*/
|
|
5
5
|
export function getConfigEnvVars() {
|
|
6
|
-
const {
|
|
6
|
+
const { WS_BLOCK_CHECK_INTERVAL_MS, WS_L2_BLOCK_QUEUE_SIZE } = process.env;
|
|
7
7
|
const envVars = {
|
|
8
|
-
|
|
8
|
+
worldStateBlockCheckIntervalMS: WS_BLOCK_CHECK_INTERVAL_MS ? +WS_BLOCK_CHECK_INTERVAL_MS : 100,
|
|
9
9
|
l2QueueSize: WS_L2_BLOCK_QUEUE_SIZE ? +WS_L2_BLOCK_QUEUE_SIZE : 1000,
|
|
10
10
|
};
|
|
11
11
|
return envVars;
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXNlci9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixNQUFNLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzNFLE1BQU0sT0FBTyxHQUFxQjtRQUNoQyw4QkFBOEIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsR0FBRztRQUM5RixXQUFXLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDckUsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMifQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
1
2
|
import { L2BlockSource } from '@aztec/types';
|
|
2
3
|
import { MerkleTreeDb, MerkleTreeOperations } from '../index.js';
|
|
3
4
|
import { WorldStateStatus, WorldStateSynchroniser } from './world_state_synchroniser.js';
|
|
@@ -18,30 +19,13 @@ export declare class ServerWorldStateSynchroniser implements WorldStateSynchroni
|
|
|
18
19
|
private stopping;
|
|
19
20
|
private runningPromise;
|
|
20
21
|
private currentState;
|
|
22
|
+
/** The latest Global Variables hash for the HEAD of the chain. */
|
|
23
|
+
latestGlobalVariablesHash: Fr;
|
|
21
24
|
constructor(merkleTreeDb: MerkleTreeDb, l2BlockSource: L2BlockSource, log?: import("@aztec/foundation/log").DebugLogger);
|
|
22
|
-
/**
|
|
23
|
-
* Returns an instance of MerkleTreeOperations that will include uncommitted data.
|
|
24
|
-
* @returns An instance of MerkleTreeOperations that will include uncommitted data.
|
|
25
|
-
*/
|
|
26
25
|
getLatest(): MerkleTreeOperations;
|
|
27
|
-
/**
|
|
28
|
-
* Returns an instance of MerkleTreeOperations that will not include uncommitted data.
|
|
29
|
-
* @returns An instance of MerkleTreeOperations that will not include uncommitted data.
|
|
30
|
-
*/
|
|
31
26
|
getCommitted(): MerkleTreeOperations;
|
|
32
|
-
/**
|
|
33
|
-
* Starts the synchroniser.
|
|
34
|
-
* @returns A promise that resolves once the initial sync is completed.
|
|
35
|
-
*/
|
|
36
27
|
start(): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Stops the synchroniser.
|
|
39
|
-
*/
|
|
40
28
|
stop(): Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Returns the current status of the synchroniser.
|
|
43
|
-
* @returns The current status of the synchroniser.
|
|
44
|
-
*/
|
|
45
29
|
status(): Promise<WorldStateStatus>;
|
|
46
30
|
/**
|
|
47
31
|
* Handles a list of L2 blocks (i.e. Inserts the new commitments into the merkle tree).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server_world_state_synchroniser.d.ts","sourceRoot":"","sources":["../../src/synchroniser/server_world_state_synchroniser.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"server_world_state_synchroniser.d.ts","sourceRoot":"","sources":["../../src/synchroniser/server_world_state_synchroniser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAA8B,aAAa,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAA8B,MAAM,aAAa,CAAC;AAG7F,OAAO,EAA0B,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEjH;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,sBAAsB;IAevE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,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,CAAS;IACzB,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,YAAY,CAAuD;IAE3E,kEAAkE;IAC3D,yBAAyB,EAAE,EAAE,CAAW;gBAGrC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,GAAG,8CAAyC;IAU/C,SAAS,IAAI,oBAAoB;IAIjC,YAAY,IAAI,oBAAoB;IAI9B,KAAK;IAyCL,IAAI;IAQV,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQ1C;;;OAGG;YACW,cAAc;IAM5B;;;OAGG;YACW,aAAa;IAgB3B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAIxB"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
1
3
|
import { L2BlockDownloader } from '@aztec/types';
|
|
4
|
+
import { computeGlobalVariablesHash } from '../index.js';
|
|
2
5
|
import { MerkleTreeOperationsFacade } from '../merkle-tree/merkle_tree_operations_facade.js';
|
|
3
|
-
import { WorldStateRunningState } from './world_state_synchroniser.js';
|
|
4
6
|
import { getConfigEnvVars } from './config.js';
|
|
5
|
-
import {
|
|
7
|
+
import { WorldStateRunningState } from './world_state_synchroniser.js';
|
|
6
8
|
/**
|
|
7
9
|
* Synchronises the world state with the L2 blocks from a L2BlockSource.
|
|
8
10
|
* The synchroniser will download the L2 blocks from the L2BlockSource and insert the new commitments into the merkle
|
|
@@ -20,27 +22,17 @@ export class ServerWorldStateSynchroniser {
|
|
|
20
22
|
this.stopping = false;
|
|
21
23
|
this.runningPromise = Promise.resolve();
|
|
22
24
|
this.currentState = WorldStateRunningState.IDLE;
|
|
25
|
+
/** The latest Global Variables hash for the HEAD of the chain. */
|
|
26
|
+
this.latestGlobalVariablesHash = Fr.ZERO;
|
|
23
27
|
const config = getConfigEnvVars();
|
|
24
|
-
this.l2BlockDownloader = new L2BlockDownloader(l2BlockSource, config.l2QueueSize, config.
|
|
28
|
+
this.l2BlockDownloader = new L2BlockDownloader(l2BlockSource, config.l2QueueSize, config.worldStateBlockCheckIntervalMS);
|
|
25
29
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Returns an instance of MerkleTreeOperations that will include uncommitted data.
|
|
28
|
-
* @returns An instance of MerkleTreeOperations that will include uncommitted data.
|
|
29
|
-
*/
|
|
30
30
|
getLatest() {
|
|
31
31
|
return new MerkleTreeOperationsFacade(this.merkleTreeDb, true);
|
|
32
32
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Returns an instance of MerkleTreeOperations that will not include uncommitted data.
|
|
35
|
-
* @returns An instance of MerkleTreeOperations that will not include uncommitted data.
|
|
36
|
-
*/
|
|
37
33
|
getCommitted() {
|
|
38
34
|
return new MerkleTreeOperationsFacade(this.merkleTreeDb, false);
|
|
39
35
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Starts the synchroniser.
|
|
42
|
-
* @returns A promise that resolves once the initial sync is completed.
|
|
43
|
-
*/
|
|
44
36
|
async start() {
|
|
45
37
|
if (this.currentState === WorldStateRunningState.STOPPED) {
|
|
46
38
|
throw new Error('Synchroniser already stopped');
|
|
@@ -50,6 +42,7 @@ export class ServerWorldStateSynchroniser {
|
|
|
50
42
|
}
|
|
51
43
|
// get the current latest block number
|
|
52
44
|
this.latestBlockNumberAtStart = await this.l2BlockSource.getBlockHeight();
|
|
45
|
+
this.latestGlobalVariablesHash = await computeGlobalVariablesHash();
|
|
53
46
|
const blockToDownloadFrom = this.currentL2BlockNum + 1;
|
|
54
47
|
// if there are blocks to be retrieved, go to a synching state
|
|
55
48
|
if (blockToDownloadFrom <= this.latestBlockNumberAtStart) {
|
|
@@ -77,9 +70,6 @@ export class ServerWorldStateSynchroniser {
|
|
|
77
70
|
this.log(`Started block downloader from block ${blockToDownloadFrom}`);
|
|
78
71
|
return this.syncPromise;
|
|
79
72
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Stops the synchroniser.
|
|
82
|
-
*/
|
|
83
73
|
async stop() {
|
|
84
74
|
this.log('Stopping world state...');
|
|
85
75
|
this.stopping = true;
|
|
@@ -87,10 +77,6 @@ export class ServerWorldStateSynchroniser {
|
|
|
87
77
|
await this.runningPromise;
|
|
88
78
|
this.setCurrentState(WorldStateRunningState.STOPPED);
|
|
89
79
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Returns the current status of the synchroniser.
|
|
92
|
-
* @returns The current status of the synchroniser.
|
|
93
|
-
*/
|
|
94
80
|
status() {
|
|
95
81
|
const status = {
|
|
96
82
|
syncedToL2Block: this.currentL2BlockNum,
|
|
@@ -114,6 +100,8 @@ export class ServerWorldStateSynchroniser {
|
|
|
114
100
|
async handleL2Block(l2Block) {
|
|
115
101
|
await this.merkleTreeDb.handleL2Block(l2Block);
|
|
116
102
|
this.currentL2BlockNum = l2Block.number;
|
|
103
|
+
this.latestGlobalVariablesHash = await computeGlobalVariablesHash(l2Block.globalVariables);
|
|
104
|
+
this.log(`Synced global variables with hash ${this.latestGlobalVariablesHash.toString()}`);
|
|
117
105
|
if (this.currentState === WorldStateRunningState.SYNCHING &&
|
|
118
106
|
this.currentL2BlockNum >= this.latestBlockNumberAtStart) {
|
|
119
107
|
this.setCurrentState(WorldStateRunningState.RUNNING);
|
|
@@ -131,4 +119,4 @@ export class ServerWorldStateSynchroniser {
|
|
|
131
119
|
this.log(`Moved to state ${WorldStateRunningState[this.currentState]}`);
|
|
132
120
|
}
|
|
133
121
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbmlzZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFXLGlCQUFpQixFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUV6RSxPQUFPLEVBQXNDLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQTRDLE1BQU0sK0JBQStCLENBQUM7QUFFakg7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyw0QkFBNEI7SUFjdkMsWUFDVSxZQUEwQixFQUMxQixhQUE0QixFQUM1QixNQUFNLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDO1FBRjVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQXlDO1FBaEI5QyxzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIsNkJBQXdCLEdBQUcsQ0FBQyxDQUFDO1FBRzdCLGdCQUFXLEdBQWtCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFnQixTQUFTLENBQUM7UUFDckMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsaUJBQVksR0FBMkIsc0JBQXNCLENBQUMsSUFBSSxDQUFDO1FBRTNF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
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { AppendOnlyTreeSnapshot, CircuitsWasm, GlobalVariables, MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_CONTRACTS_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { AppendOnlyTreeSnapshot, CircuitsWasm, Fr, GlobalVariables, MAX_NEW_COMMITMENTS_PER_TX, MAX_NEW_CONTRACTS_PER_TX, MAX_NEW_L2_TO_L1_MSGS_PER_CALL, MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, } from '@aztec/circuits.js';
|
|
2
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { sleep } from '@aztec/foundation/sleep';
|
|
4
|
+
import { INITIAL_LEAF, Pedersen } from '@aztec/merkle-tree';
|
|
5
|
+
import { ContractData, L2Block, L2BlockL2Logs, MerkleTreeId, PublicDataWrite, SiblingPath, } from '@aztec/types';
|
|
4
6
|
import { jest } from '@jest/globals';
|
|
7
|
+
import times from 'lodash.times';
|
|
5
8
|
import { ServerWorldStateSynchroniser } from './server_world_state_synchroniser.js';
|
|
6
9
|
import { WorldStateRunningState } from './world_state_synchroniser.js';
|
|
7
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
8
|
-
import { sleep } from '@aztec/foundation/sleep';
|
|
9
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
10
|
-
import times from 'lodash.times';
|
|
11
10
|
const LATEST_BLOCK_NUMBER = 5;
|
|
12
11
|
const getLatestBlockNumber = () => LATEST_BLOCK_NUMBER;
|
|
13
12
|
let nextBlocks = [];
|
|
@@ -41,19 +40,15 @@ const getMockBlock = (blockNumber, newContractsCommitments) => {
|
|
|
41
40
|
startPrivateDataTreeSnapshot: getMockTreeSnapshot(),
|
|
42
41
|
startNullifierTreeSnapshot: getMockTreeSnapshot(),
|
|
43
42
|
startContractTreeSnapshot: getMockTreeSnapshot(),
|
|
44
|
-
startTreeOfHistoricPrivateDataTreeRootsSnapshot: getMockTreeSnapshot(),
|
|
45
|
-
startTreeOfHistoricContractTreeRootsSnapshot: getMockTreeSnapshot(),
|
|
46
43
|
startPublicDataTreeRoot: Fr.random(),
|
|
47
44
|
startL1ToL2MessageTreeSnapshot: getMockTreeSnapshot(),
|
|
48
|
-
|
|
45
|
+
startHistoricBlocksTreeSnapshot: getMockTreeSnapshot(),
|
|
49
46
|
endPrivateDataTreeSnapshot: getMockTreeSnapshot(),
|
|
50
47
|
endNullifierTreeSnapshot: getMockTreeSnapshot(),
|
|
51
48
|
endContractTreeSnapshot: getMockTreeSnapshot(),
|
|
52
|
-
endTreeOfHistoricPrivateDataTreeRootsSnapshot: getMockTreeSnapshot(),
|
|
53
|
-
endTreeOfHistoricContractTreeRootsSnapshot: getMockTreeSnapshot(),
|
|
54
49
|
endPublicDataTreeRoot: Fr.random(),
|
|
55
50
|
endL1ToL2MessageTreeSnapshot: getMockTreeSnapshot(),
|
|
56
|
-
|
|
51
|
+
endHistoricBlocksTreeSnapshot: getMockTreeSnapshot(),
|
|
57
52
|
newCommitments: times(MAX_NEW_COMMITMENTS_PER_TX, Fr.random),
|
|
58
53
|
newNullifiers: times(MAX_NEW_NULLIFIERS_PER_TX, Fr.random),
|
|
59
54
|
newContracts: newContractsCommitments?.map(x => Fr.fromBuffer(x)) ?? [Fr.random()],
|
|
@@ -66,7 +61,7 @@ const getMockBlock = (blockNumber, newContractsCommitments) => {
|
|
|
66
61
|
return block;
|
|
67
62
|
};
|
|
68
63
|
const createSynchroniser = (merkleTreeDb, rollupSource) => new ServerWorldStateSynchroniser(merkleTreeDb, rollupSource);
|
|
69
|
-
const log =
|
|
64
|
+
const log = createDebugLogger('aztec:server_world_state_synchroniser_test');
|
|
70
65
|
describe('server_world_state_synchroniser', () => {
|
|
71
66
|
const rollupSource = {
|
|
72
67
|
getBlockHeight: jest.fn().mockImplementation(getLatestBlockNumber),
|
|
@@ -85,7 +80,7 @@ describe('server_world_state_synchroniser', () => {
|
|
|
85
80
|
SiblingPath.ZERO(32, INITIAL_LEAF, pedersen);
|
|
86
81
|
}; //Promise.resolve();
|
|
87
82
|
}),
|
|
88
|
-
|
|
83
|
+
updateHistoricBlocksTree: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
89
84
|
commit: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
90
85
|
rollback: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
91
86
|
handleL2Block: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
@@ -212,4 +207,4 @@ describe('server_world_state_synchroniser', () => {
|
|
|
212
207
|
await server.stop();
|
|
213
208
|
});
|
|
214
209
|
});
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXNlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXNlci9zZXJ2ZXJfd29ybGRfc3RhdGVfc3luY2hyb25pc2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZUFBZSxFQUNmLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHNDQUFzQyxFQUN0Qyw4QkFBOEIsRUFDOUIsbUNBQW1DLEdBQ3BDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFpQixZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBU2pDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7QUFDdkQsSUFBSSxVQUFVLEdBQWMsRUFBRSxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxF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
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXNlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXNlci9zZXJ2ZXJfd29ybGRfc3RhdGVfc3luY2hyb25pc2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osRUFBRSxFQUNGLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsc0NBQXNDLEVBQ3RDLG1DQUFtQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFDTCxZQUFZLEVBQ1osT0FBTyxFQUNQLGFBQWEsRUFFYixZQUFZLEVBQ1osZUFBZSxFQUNmLFdBQVcsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUdqQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVN2RSxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUM5QixNQUFNLG9CQUFvQixHQUFHLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0FBQ3ZELElBQUksVUFBVSxHQUFjLEVBQUUsQ0FBQztBQUMvQixNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRTtJQUM3QixNQUFNLE1BQU0sR0FBRyxVQUFVLENB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fr } from '@aztec/circuits.js';
|
|
1
2
|
import { MerkleTreeOperations } from '../index.js';
|
|
2
3
|
/**
|
|
3
4
|
* Defines the possible states of the world state synchroniser.
|
|
@@ -25,10 +26,33 @@ export interface WorldStateStatus {
|
|
|
25
26
|
* Defines the interface for a world state synchroniser.
|
|
26
27
|
*/
|
|
27
28
|
export interface WorldStateSynchroniser {
|
|
29
|
+
/**
|
|
30
|
+
* Starts the synchroniser.
|
|
31
|
+
* @returns A promise that resolves once the initial sync is completed.
|
|
32
|
+
*/
|
|
28
33
|
start(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the current status of the synchroniser.
|
|
36
|
+
* @returns The current status of the synchroniser.
|
|
37
|
+
*/
|
|
29
38
|
status(): Promise<WorldStateStatus>;
|
|
39
|
+
/**
|
|
40
|
+
* Stops the synchroniser.
|
|
41
|
+
*/
|
|
30
42
|
stop(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Returns an instance of MerkleTreeOperations that will include uncommitted data.
|
|
45
|
+
* @returns An instance of MerkleTreeOperations that will include uncommitted data.
|
|
46
|
+
*/
|
|
31
47
|
getLatest(): MerkleTreeOperations;
|
|
48
|
+
/**
|
|
49
|
+
* Returns an instance of MerkleTreeOperations that will not include uncommitted data.
|
|
50
|
+
* @returns An instance of MerkleTreeOperations that will not include uncommitted data.
|
|
51
|
+
*/
|
|
32
52
|
getCommitted(): MerkleTreeOperations;
|
|
53
|
+
/**
|
|
54
|
+
* The latest Global Variables hash for the HEAD of the chain.
|
|
55
|
+
*/
|
|
56
|
+
latestGlobalVariablesHash: Fr;
|
|
33
57
|
}
|
|
34
58
|
//# sourceMappingURL=world_state_synchroniser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world_state_synchroniser.d.ts","sourceRoot":"","sources":["../../src/synchroniser/world_state_synchroniser.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,KAAK,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"world_state_synchroniser.d.ts","sourceRoot":"","sources":["../../src/synchroniser/world_state_synchroniser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,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;;;OAGG;IACH,SAAS,IAAI,oBAAoB,CAAC;IAElC;;;OAGG;IACH,YAAY,IAAI,oBAAoB,CAAC;IAErC;;OAEG;IACH,yBAAyB,EAAE,EAAE,CAAC;CAC/B"}
|
|
@@ -8,4 +8,4 @@ export var WorldStateRunningState;
|
|
|
8
8
|
WorldStateRunningState[WorldStateRunningState["RUNNING"] = 2] = "RUNNING";
|
|
9
9
|
WorldStateRunningState[WorldStateRunningState["STOPPED"] = 3] = "STOPPED";
|
|
10
10
|
})(WorldStateRunningState || (WorldStateRunningState = {}));
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ybGRfc3RhdGVfc3luY2hyb25pc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXNlci93b3JsZF9zdGF0ZV9zeW5jaHJvbmlzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFLWDtBQUxELFdBQVksc0JBQXNCO0lBQ2hDLG1FQUFJLENBQUE7SUFDSiwyRUFBUSxDQUFBO0lBQ1IseUVBQU8sQ0FBQTtJQUNQLHlFQUFPLENBQUE7QUFDVCxDQUFDLEVBTFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUtqQyJ9
|
package/dest/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GlobalVariables } from '@aztec/circuits.js';
|
|
1
2
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
import { IWasmModule } from '@aztec/foundation/wasm';
|
|
@@ -9,4 +10,9 @@ import { IWasmModule } from '@aztec/foundation/wasm';
|
|
|
9
10
|
* @returns The leaf index of the public data tree that maps to this storage slot.
|
|
10
11
|
*/
|
|
11
12
|
export declare function computePublicDataTreeLeafIndex(contract: AztecAddress, slot: Fr, wasm: IWasmModule): bigint;
|
|
13
|
+
/**
|
|
14
|
+
* Computes the hash of the global variables.
|
|
15
|
+
* @returns The hash of the global variables.
|
|
16
|
+
*/
|
|
17
|
+
export declare function computeGlobalVariablesHash(globalVariables?: GlobalVariables): Promise<Fr>;
|
|
12
18
|
//# sourceMappingURL=utils.d.ts.map
|
package/dest/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAQ1G;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,eAAe,GAAE,eAAyC,GACzD,OAAO,CAAC,EAAE,CAAC,CAGb"}
|
package/dest/utils.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { GeneratorIndex } from '@aztec/circuits.js';
|
|
1
|
+
import { CircuitsWasm, GeneratorIndex, GlobalVariables } from '@aztec/circuits.js';
|
|
2
|
+
import { computeGlobalsHash } from '@aztec/circuits.js/abis';
|
|
2
3
|
import { pedersenCompressWithHashIndex } from '@aztec/circuits.js/barretenberg';
|
|
3
4
|
import { toBigInt } from '@aztec/foundation/serialize';
|
|
4
5
|
/**
|
|
@@ -11,4 +12,12 @@ import { toBigInt } from '@aztec/foundation/serialize';
|
|
|
11
12
|
export function computePublicDataTreeLeafIndex(contract, slot, wasm) {
|
|
12
13
|
return toBigInt(pedersenCompressWithHashIndex(wasm, [contract, slot].map(f => f.toBuffer()), GeneratorIndex.PUBLIC_LEAF_INDEX));
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Computes the hash of the global variables.
|
|
17
|
+
* @returns The hash of the global variables.
|
|
18
|
+
*/
|
|
19
|
+
export async function computeGlobalVariablesHash(globalVariables = GlobalVariables.empty()) {
|
|
20
|
+
const wasm = await CircuitsWasm.get();
|
|
21
|
+
return computeGlobalsHash(wasm, globalVariables);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR3ZEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxRQUFzQixFQUFFLElBQVEsRUFBRSxJQUFpQjtJQUNoRyxPQUFPLFFBQVEsQ0FDYiw2QkFBNkIsQ0FDM0IsSUFBSSxFQUNKLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUN2QyxjQUFjLENBQUMsaUJBQWlCLENBQ2pDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUM5QyxrQkFBbUMsZUFBZSxDQUFDLEtBQUssRUFBRTtJQUUxRCxNQUFNLElBQUksR0FBRyxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN0QyxPQUFPLGtCQUFrQixDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNuRCxDQUFDIn0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { GlobalVariables } from '@aztec/circuits.js';
|
|
3
|
+
import { LeafData, LowLeafWitnessData } from '@aztec/merkle-tree';
|
|
4
|
+
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/types';
|
|
4
5
|
export * from './merkle_trees.js';
|
|
5
6
|
export { LeafData } from '@aztec/merkle-tree';
|
|
6
7
|
/**
|
|
@@ -55,7 +56,7 @@ type WithIncludeUncommitted<F> = F extends (...args: [...infer Rest]) => infer R
|
|
|
55
56
|
/**
|
|
56
57
|
* The current roots of the commitment trees
|
|
57
58
|
*/
|
|
58
|
-
export type
|
|
59
|
+
export type CurrentTreeRoots = {
|
|
59
60
|
/** Private data tree root. */
|
|
60
61
|
privateDataTreeRoot: Buffer;
|
|
61
62
|
/** Contract data tree root. */
|
|
@@ -64,6 +65,10 @@ export type CurrentCommitmentTreeRoots = {
|
|
|
64
65
|
l1Tol2MessagesTreeRoot: Buffer;
|
|
65
66
|
/** Nullifier data tree root. */
|
|
66
67
|
nullifierTreeRoot: Buffer;
|
|
68
|
+
/** Blocks tree root. */
|
|
69
|
+
blocksTreeRoot: Buffer;
|
|
70
|
+
/** Public data tree root */
|
|
71
|
+
publicDataTreeRoot: Buffer;
|
|
67
72
|
};
|
|
68
73
|
/**
|
|
69
74
|
* Defines the names of the setters on Merkle Trees.
|
|
@@ -93,7 +98,7 @@ export interface MerkleTreeOperations {
|
|
|
93
98
|
/**
|
|
94
99
|
* Gets the current roots of the commitment trees.
|
|
95
100
|
*/
|
|
96
|
-
|
|
101
|
+
getTreeRoots(): CurrentTreeRoots;
|
|
97
102
|
/**
|
|
98
103
|
* Gets sibling path for a leaf.
|
|
99
104
|
* @param treeId - The tree to be queried for a sibling path.
|
|
@@ -141,10 +146,11 @@ export interface MerkleTreeOperations {
|
|
|
141
146
|
*/
|
|
142
147
|
getLeafValue(treeId: MerkleTreeId, index: bigint): Promise<Buffer | undefined>;
|
|
143
148
|
/**
|
|
144
|
-
* Inserts into the
|
|
145
|
-
* the current roots of the
|
|
149
|
+
* Inserts the new block hash into the new block hashes tree.
|
|
150
|
+
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
151
|
+
* @param globalVariables - The global variables to insert into the block hash.
|
|
146
152
|
*/
|
|
147
|
-
|
|
153
|
+
updateHistoricBlocksTree(globalVariables: GlobalVariables): Promise<void>;
|
|
148
154
|
/**
|
|
149
155
|
* Batch insert multiple leaves into the tree.
|
|
150
156
|
* @param leaves - Leaves to insert into the tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world-state-db/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/world-state-db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createDebugLogger } from '@aztec/foundation/log';
|
|
2
1
|
import { MAX_NEW_NULLIFIERS_PER_TX } from '@aztec/circuits.js';
|
|
2
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
3
|
export * from './merkle_trees.js';
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
@@ -28,4 +28,4 @@ export async function inspectTree(db, treeId, log = createDebugLogger('aztec:ins
|
|
|
28
28
|
}
|
|
29
29
|
log(output.join('\n'));
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQix5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSTFELGNBQWMsbUJBQW1CLENBQUM7QUFhbEM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEdBQUcseUJBQXlCLENBQUM7QUFrTHpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQy9CLEVBQXdCLEVBQ3hCLE1BQW9CLEVBQ3BCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztJQUU3QyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxXQUFXLE1BQU0sU0FBUyxJQUFJLENBQUMsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLENBQUMsSUFBSSxDQUNULFNBQVMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUN6RyxDQUFDO0tBQ0g7SUFDRCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMifQ==
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import {
|
|
3
|
-
import { default as levelup } from 'levelup';
|
|
4
|
-
import { CurrentCommitmentTreeRoots, IndexedTreeId, MerkleTreeDb, MerkleTreeOperations, PublicTreeId, TreeInfo } from './index.js';
|
|
5
|
-
import { L2Block, MerkleTreeId } from '@aztec/types';
|
|
2
|
+
import { Fr, GlobalVariables } from '@aztec/circuits.js';
|
|
6
3
|
import { IWasmModule } from '@aztec/foundation/wasm';
|
|
4
|
+
import { LeafData, LowLeafWitnessData } from '@aztec/merkle-tree';
|
|
5
|
+
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/types';
|
|
6
|
+
import { default as levelup } from 'levelup';
|
|
7
|
+
import { CurrentTreeRoots, IndexedTreeId, MerkleTreeDb, MerkleTreeOperations, PublicTreeId, TreeInfo } from './index.js';
|
|
7
8
|
/**
|
|
8
9
|
* A convenience class for managing multiple merkle trees.
|
|
9
10
|
*/
|
|
@@ -42,9 +43,10 @@ export declare class MerkleTrees implements MerkleTreeDb {
|
|
|
42
43
|
/**
|
|
43
44
|
* Inserts into the roots trees (CONTRACT_TREE_ROOTS_TREE, PRIVATE_DATA_TREE_ROOTS_TREE, L1_TO_L2_MESSAGES_TREE_ROOTS_TREE)
|
|
44
45
|
* the current roots of the corresponding trees (CONTRACT_TREE, PRIVATE_DATA_TREE, L1_TO_L2_MESSAGES_TREE).
|
|
46
|
+
* @param globals - The global variables to use for hashing.
|
|
45
47
|
* @param includeUncommitted - Indicates whether to include uncommitted data.
|
|
46
48
|
*/
|
|
47
|
-
|
|
49
|
+
updateHistoricBlocksTree(globals: GlobalVariables, includeUncommitted: boolean): Promise<void>;
|
|
48
50
|
/**
|
|
49
51
|
* Gets the tree info for the specified tree.
|
|
50
52
|
* @param treeId - Id of the tree to get information from.
|
|
@@ -57,7 +59,9 @@ export declare class MerkleTrees implements MerkleTreeDb {
|
|
|
57
59
|
* @param includeUncommitted - Indicates whether to include uncommitted data.
|
|
58
60
|
* @returns The current roots of the trees.
|
|
59
61
|
*/
|
|
60
|
-
|
|
62
|
+
getTreeRoots(includeUncommitted: boolean): CurrentTreeRoots;
|
|
63
|
+
getCurrentBlockHash(globals: GlobalVariables, includeUncommitted: boolean): Promise<Fr>;
|
|
64
|
+
getAllTreeRoots(includeUncommitted: boolean): Buffer[];
|
|
61
65
|
/**
|
|
62
66
|
* Gets the value at the given index.
|
|
63
67
|
* @param treeId - The ID of the tree to get the leaf value from.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_trees.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_trees.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"merkle_trees.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_trees.ts"],"names":[],"mappings":"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"}
|