@aztec/world-state 0.20.0 → 0.22.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/synchronizer/server_world_state_synchronizer.d.ts +4 -8
- package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.js +8 -38
- package/dest/world-state-db/merkle_tree_operations.d.ts +11 -35
- package/dest/world-state-db/merkle_tree_operations.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_operations.js +1 -1
- package/dest/world-state-db/merkle_tree_operations_facade.d.ts +13 -19
- package/dest/world-state-db/merkle_tree_operations_facade.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_operations_facade.js +15 -21
- package/dest/world-state-db/merkle_tree_snapshot_operations_facade.d.ts +5 -7
- 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 +7 -16
- package/dest/world-state-db/merkle_trees.d.ts +17 -92
- package/dest/world-state-db/merkle_trees.d.ts.map +1 -1
- package/dest/world-state-db/merkle_trees.js +193 -253
- package/package.json +7 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { L2BlockSource } from '@aztec/circuit-types';
|
|
2
|
-
import {
|
|
2
|
+
import { AztecKVStore } from '@aztec/kv-store';
|
|
3
3
|
import { MerkleTreeOperations, MerkleTrees } from '../world-state-db/index.js';
|
|
4
4
|
import { WorldStateConfig } from './config.js';
|
|
5
5
|
import { WorldStateStatus, WorldStateSynchronizer } from './world_state_synchronizer.js';
|
|
@@ -9,12 +9,9 @@ import { WorldStateStatus, WorldStateSynchronizer } from './world_state_synchron
|
|
|
9
9
|
* tree.
|
|
10
10
|
*/
|
|
11
11
|
export declare class ServerWorldStateSynchronizer implements WorldStateSynchronizer {
|
|
12
|
-
#private;
|
|
13
|
-
private db;
|
|
14
12
|
private merkleTreeDb;
|
|
15
13
|
private l2BlockSource;
|
|
16
14
|
private log;
|
|
17
|
-
private currentL2BlockNum;
|
|
18
15
|
private latestBlockNumberAtStart;
|
|
19
16
|
private l2BlockDownloader;
|
|
20
17
|
private syncPromise;
|
|
@@ -23,13 +20,14 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
23
20
|
private stopping;
|
|
24
21
|
private runningPromise;
|
|
25
22
|
private currentState;
|
|
26
|
-
private
|
|
23
|
+
private blockNumber;
|
|
24
|
+
constructor(store: AztecKVStore, merkleTreeDb: MerkleTrees, l2BlockSource: L2BlockSource, config: WorldStateConfig, log?: import("@aztec/foundation/log").DebugLogger);
|
|
27
25
|
getLatest(): MerkleTreeOperations;
|
|
28
26
|
getCommitted(): MerkleTreeOperations;
|
|
29
27
|
getSnapshot(blockNumber: number): MerkleTreeOperations;
|
|
30
|
-
static new(db: LevelUp, merkleTreeDb: MerkleTrees, l2BlockSource: L2BlockSource, config: WorldStateConfig, log?: import("@aztec/foundation/log").DebugLogger): Promise<ServerWorldStateSynchronizer>;
|
|
31
28
|
start(): Promise<void>;
|
|
32
29
|
stop(): Promise<void>;
|
|
30
|
+
private get currentL2BlockNum();
|
|
33
31
|
status(): Promise<WorldStateStatus>;
|
|
34
32
|
/**
|
|
35
33
|
* Forces an immediate sync
|
|
@@ -57,7 +55,5 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
57
55
|
* @param newState - New state value.
|
|
58
56
|
*/
|
|
59
57
|
private setCurrentState;
|
|
60
|
-
private commitCurrentL2BlockNumber;
|
|
61
|
-
private restoreCurrentL2BlockNumber;
|
|
62
58
|
}
|
|
63
59
|
//# sourceMappingURL=server_world_state_synchronizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKjF,OAAO,EAAE,YAAY,EAAkB,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAuB,oBAAoB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAA0B,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEjH;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,sBAAsB;IAcvE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,GAAG;IAhBb,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;IAC3E,OAAO,CAAC,WAAW,CAAyB;gBAG1C,KAAK,EAAE,YAAY,EACX,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,aAAa,EACpC,MAAM,EAAE,gBAAgB,EAChB,GAAG,8CAAyC;IAU/C,SAAS,IAAI,oBAAoB;IAIjC,YAAY,IAAI,oBAAoB;IAIpC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB;IAIhD,KAAK;IAwCL,IAAI;IAajB,OAAO,KAAK,iBAAiB,GAE5B;IAEM,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQ1C;;;;OAIG;IACU,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoCpE;;OAEG;YACW,uBAAuB;IAMrC;;;;OAIG;YACW,cAAc;IAY5B;;;OAGG;YACW,aAAa;IAa3B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAIxB"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
var _ServerWorldStateSynchronizer_instances, _ServerWorldStateSynchronizer_init;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
1
|
import { L2BlockDownloader } from '@aztec/circuit-types';
|
|
4
2
|
import { SerialQueue } from '@aztec/foundation/fifo';
|
|
5
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
@@ -7,20 +5,16 @@ import { elapsed } from '@aztec/foundation/timer';
|
|
|
7
5
|
import { MerkleTreeOperationsFacade } from '../world-state-db/merkle_tree_operations_facade.js';
|
|
8
6
|
import { MerkleTreeSnapshotOperationsFacade } from '../world-state-db/merkle_tree_snapshot_operations_facade.js';
|
|
9
7
|
import { WorldStateRunningState } from './world_state_synchronizer.js';
|
|
10
|
-
const DB_KEY_BLOCK_NUMBER = 'latestBlockNumber';
|
|
11
8
|
/**
|
|
12
9
|
* Synchronizes the world state with the L2 blocks from a L2BlockSource.
|
|
13
10
|
* The synchronizer will download the L2 blocks from the L2BlockSource and insert the new commitments into the merkle
|
|
14
11
|
* tree.
|
|
15
12
|
*/
|
|
16
13
|
export class ServerWorldStateSynchronizer {
|
|
17
|
-
constructor(
|
|
18
|
-
_ServerWorldStateSynchronizer_instances.add(this);
|
|
19
|
-
this.db = db;
|
|
14
|
+
constructor(store, merkleTreeDb, l2BlockSource, config, log = createDebugLogger('aztec:world_state')) {
|
|
20
15
|
this.merkleTreeDb = merkleTreeDb;
|
|
21
16
|
this.l2BlockSource = l2BlockSource;
|
|
22
17
|
this.log = log;
|
|
23
|
-
this.currentL2BlockNum = 0;
|
|
24
18
|
this.latestBlockNumberAtStart = 0;
|
|
25
19
|
this.syncPromise = Promise.resolve();
|
|
26
20
|
this.syncResolve = undefined;
|
|
@@ -28,6 +22,7 @@ export class ServerWorldStateSynchronizer {
|
|
|
28
22
|
this.stopping = false;
|
|
29
23
|
this.runningPromise = Promise.resolve();
|
|
30
24
|
this.currentState = WorldStateRunningState.IDLE;
|
|
25
|
+
this.blockNumber = store.openSingleton('world_state_synch_last_block_number');
|
|
31
26
|
this.l2BlockDownloader = new L2BlockDownloader(l2BlockSource, config.l2QueueSize, config.worldStateBlockCheckIntervalMS);
|
|
32
27
|
}
|
|
33
28
|
getLatest() {
|
|
@@ -39,11 +34,6 @@ export class ServerWorldStateSynchronizer {
|
|
|
39
34
|
getSnapshot(blockNumber) {
|
|
40
35
|
return new MerkleTreeSnapshotOperationsFacade(this.merkleTreeDb, blockNumber);
|
|
41
36
|
}
|
|
42
|
-
static async new(db, merkleTreeDb, l2BlockSource, config, log = createDebugLogger('aztec:world_state')) {
|
|
43
|
-
const server = new ServerWorldStateSynchronizer(db, merkleTreeDb, l2BlockSource, config, log);
|
|
44
|
-
await __classPrivateFieldGet(server, _ServerWorldStateSynchronizer_instances, "m", _ServerWorldStateSynchronizer_init).call(server);
|
|
45
|
-
return server;
|
|
46
|
-
}
|
|
47
37
|
async start() {
|
|
48
38
|
if (this.currentState === WorldStateRunningState.STOPPED) {
|
|
49
39
|
throw new Error('Synchronizer already stopped');
|
|
@@ -90,10 +80,11 @@ export class ServerWorldStateSynchronizer {
|
|
|
90
80
|
await this.merkleTreeDb.stop();
|
|
91
81
|
this.log('Awaiting promise');
|
|
92
82
|
await this.runningPromise;
|
|
93
|
-
this.log('Commiting current block number');
|
|
94
|
-
await this.commitCurrentL2BlockNumber();
|
|
95
83
|
this.setCurrentState(WorldStateRunningState.STOPPED);
|
|
96
84
|
}
|
|
85
|
+
get currentL2BlockNum() {
|
|
86
|
+
return this.blockNumber.get() ?? 0;
|
|
87
|
+
}
|
|
97
88
|
status() {
|
|
98
89
|
const status = {
|
|
99
90
|
syncedToL2Block: this.currentL2BlockNum,
|
|
@@ -146,7 +137,6 @@ export class ServerWorldStateSynchronizer {
|
|
|
146
137
|
// This request for blocks will timeout after 1 second if no blocks are received
|
|
147
138
|
const blocks = await this.l2BlockDownloader.getBlocks(1);
|
|
148
139
|
await this.handleL2Blocks(blocks);
|
|
149
|
-
await this.commitCurrentL2BlockNumber();
|
|
150
140
|
}
|
|
151
141
|
/**
|
|
152
142
|
* Handles a list of L2 blocks (i.e. Inserts the new commitments into the merkle tree).
|
|
@@ -170,9 +160,8 @@ export class ServerWorldStateSynchronizer {
|
|
|
170
160
|
*/
|
|
171
161
|
async handleL2Block(l2Block) {
|
|
172
162
|
const result = await this.merkleTreeDb.handleL2Block(l2Block);
|
|
173
|
-
this.
|
|
174
|
-
if (this.currentState === WorldStateRunningState.SYNCHING &&
|
|
175
|
-
this.currentL2BlockNum >= this.latestBlockNumberAtStart) {
|
|
163
|
+
await this.blockNumber.set(l2Block.number);
|
|
164
|
+
if (this.currentState === WorldStateRunningState.SYNCHING && l2Block.number >= this.latestBlockNumberAtStart) {
|
|
176
165
|
this.setCurrentState(WorldStateRunningState.RUNNING);
|
|
177
166
|
if (this.syncResolve !== undefined) {
|
|
178
167
|
this.syncResolve();
|
|
@@ -188,24 +177,5 @@ export class ServerWorldStateSynchronizer {
|
|
|
188
177
|
this.currentState = newState;
|
|
189
178
|
this.log(`Moved to state ${WorldStateRunningState[this.currentState]}`);
|
|
190
179
|
}
|
|
191
|
-
async commitCurrentL2BlockNumber() {
|
|
192
|
-
const hex = this.currentL2BlockNum.toString(16);
|
|
193
|
-
const encoded = Buffer.from(hex.length % 2 === 1 ? '0' + hex : hex, 'hex');
|
|
194
|
-
await this.db.put(DB_KEY_BLOCK_NUMBER, encoded);
|
|
195
|
-
}
|
|
196
|
-
async restoreCurrentL2BlockNumber() {
|
|
197
|
-
try {
|
|
198
|
-
const encoded = await this.db.get(DB_KEY_BLOCK_NUMBER);
|
|
199
|
-
this.currentL2BlockNum = parseInt(encoded.toString('hex'), 16);
|
|
200
|
-
this.log.debug(`Restored current L2 block number ${this.currentL2BlockNum} from db`);
|
|
201
|
-
}
|
|
202
|
-
catch (err) {
|
|
203
|
-
this.log.debug('No current L2 block number found in db, starting from 0');
|
|
204
|
-
this.currentL2BlockNum = 0;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
180
|
}
|
|
208
|
-
|
|
209
|
-
await this.restoreCurrentL2BlockNumber();
|
|
210
|
-
};
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBVyxpQkFBaUIsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBS2xELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBRWpILE9BQU8sRUFBRSxzQkFBc0IsRUFBNEMsTUFBTSwrQkFBK0IsQ0FBQztBQUVqSCxNQUFNLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0FBRWhEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBWXZDLFlBQ1UsRUFBVyxFQUNYLFlBQXlCLEVBQ3pCLGFBQTRCLEVBQ3BDLE1BQXdCLEVBQ2hCLE1BQU0saUJBQWlCLENBQUMsbUJBQW1CLENBQUM7O1FBSjVDLE9BQUUsR0FBRixFQUFFLENBQVM7UUFDWCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU1QixRQUFHLEdBQUgsR0FBRyxDQUF5QztRQWhCOUMsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUc3QixnQkFBVyxHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0MsZ0JBQVcsR0FBZ0IsU0FBUyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxJQUFJLFdBQVcs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
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsaUJBQWlCLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFFakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUVqSCxPQUFPLEVBQUUsc0JBQXNCLEVBQTRDLE1BQU0sK0JBQStCLENBQUM7QUFFakg7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyw0QkFBNEI7SUFZdkMsWUFDRSxLQUFtQixFQUNYLFlBQXlCLEVBQ3pCLGFBQTRCLEVBQ3BDLE1BQXdCLEVBQ2hCLE1BQU0saUJBQWlCLENBQUMsbUJBQW1CLENBQUM7UUFINUMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFNUIsUUFBRyxHQUFILEdBQUcsQ0FBeUM7UUFoQjlDLDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUc3QixnQkFBVyxHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0MsZ0JBQVcsR0FBZ0IsU0FBUyxDQUFDO1FBQ3JDLGFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzdCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsbUJBQWMsR0FBa0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xELGlCQUFZ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
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { L2Block, MerkleTreeId } from '@aztec/circuit-types';
|
|
3
|
-
import { NullifierLeafPreimage } from '@aztec/circuits.js';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/circuit-types';
|
|
3
|
+
import { Header, NullifierLeafPreimage, StateReference } from '@aztec/circuits.js';
|
|
5
4
|
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
6
5
|
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
7
|
-
import { SiblingPath } from '@aztec/types/membership';
|
|
8
6
|
/**
|
|
9
7
|
* Type alias for the nullifier tree ID.
|
|
10
8
|
*/
|
|
@@ -30,23 +28,6 @@ export interface TreeInfo {
|
|
|
30
28
|
*/
|
|
31
29
|
depth: number;
|
|
32
30
|
}
|
|
33
|
-
/**
|
|
34
|
-
* The current roots of the commitment trees
|
|
35
|
-
*/
|
|
36
|
-
export type CurrentTreeRoots = {
|
|
37
|
-
/** Note Hash Tree root. */
|
|
38
|
-
noteHashTreeRoot: Buffer;
|
|
39
|
-
/** Contract data tree root. */
|
|
40
|
-
contractDataTreeRoot: Buffer;
|
|
41
|
-
/** L1 to L2 Messages data tree root. */
|
|
42
|
-
l1Tol2MessageTreeRoot: Buffer;
|
|
43
|
-
/** Nullifier data tree root. */
|
|
44
|
-
nullifierTreeRoot: Buffer;
|
|
45
|
-
/** Archive root. */
|
|
46
|
-
archiveRoot: Buffer;
|
|
47
|
-
/** Public data tree root */
|
|
48
|
-
publicDataTreeRoot: Buffer;
|
|
49
|
-
};
|
|
50
31
|
/**
|
|
51
32
|
* Defines the interface for operations on a set of Merkle Trees.
|
|
52
33
|
*/
|
|
@@ -63,9 +44,13 @@ export interface MerkleTreeOperations {
|
|
|
63
44
|
*/
|
|
64
45
|
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
|
|
65
46
|
/**
|
|
66
|
-
* Gets the current
|
|
47
|
+
* Gets the current state reference.
|
|
48
|
+
*/
|
|
49
|
+
getStateReference(): Promise<StateReference>;
|
|
50
|
+
/**
|
|
51
|
+
* Builds the initial header.
|
|
67
52
|
*/
|
|
68
|
-
|
|
53
|
+
buildInitialHeader(): Promise<Header>;
|
|
69
54
|
/**
|
|
70
55
|
* Gets sibling path for a leaf.
|
|
71
56
|
* @param treeId - The tree to be queried for a sibling path.
|
|
@@ -113,20 +98,11 @@ export interface MerkleTreeOperations {
|
|
|
113
98
|
*/
|
|
114
99
|
getLeafValue(treeId: MerkleTreeId, index: bigint): Promise<Buffer | undefined>;
|
|
115
100
|
/**
|
|
116
|
-
* Inserts the
|
|
101
|
+
* Inserts the block hash into the archive.
|
|
117
102
|
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
118
|
-
* @param
|
|
119
|
-
*/
|
|
120
|
-
updateArchive(globalVariablesHash: Fr): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* Updates the latest global variables hash
|
|
123
|
-
* @param globalVariablesHash - The latest global variables hash
|
|
124
|
-
*/
|
|
125
|
-
updateLatestGlobalVariablesHash(globalVariablesHash: Fr): Promise<void>;
|
|
126
|
-
/**
|
|
127
|
-
* Gets the global variables hash from the previous block
|
|
103
|
+
* @param header - The header to insert into the archive.
|
|
128
104
|
*/
|
|
129
|
-
|
|
105
|
+
updateArchive(header: Header): Promise<void>;
|
|
130
106
|
/**
|
|
131
107
|
* Batch insert multiple leaves into the tree.
|
|
132
108
|
* @param leaves - Leaves to insert into the tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_operations.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_operations.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"merkle_tree_operations.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,4 @@ export async function inspectTree(db, treeId, log = createDebugLogger('aztec:ins
|
|
|
10
10
|
}
|
|
11
11
|
log(output.join('\n'));
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JsZC1zdGF0ZS1kYi9tZXJrbGVfdHJlZV9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBK0oxRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixFQUF3QixFQUN4QixNQUFvQixFQUNwQixHQUFHLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxNQUFNLFNBQVMsSUFBSSxDQUFDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUNULFNBQVMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUN6RyxDQUFDO0lBQ0osQ0FBQztJQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekIsQ0FBQyJ9
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { L2Block, MerkleTreeId } from '@aztec/circuit-types';
|
|
3
|
-
import { NullifierLeafPreimage } from '@aztec/circuits.js';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/circuit-types';
|
|
3
|
+
import { Header, NullifierLeafPreimage, StateReference } from '@aztec/circuits.js';
|
|
5
4
|
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
6
5
|
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
7
|
-
import { SiblingPath } from '@aztec/types/membership';
|
|
8
6
|
import { MerkleTreeDb } from './merkle_tree_db.js';
|
|
9
|
-
import {
|
|
7
|
+
import { HandleL2BlockResult, MerkleTreeOperations, TreeInfo } from './merkle_tree_operations.js';
|
|
10
8
|
/**
|
|
11
9
|
* Wraps a MerkleTreeDbOperations to call all functions with a preset includeUncommitted flag.
|
|
12
10
|
*/
|
|
@@ -22,10 +20,15 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
22
20
|
*/
|
|
23
21
|
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
|
|
24
22
|
/**
|
|
25
|
-
* Get the current
|
|
26
|
-
* @returns The current
|
|
23
|
+
* Get the current state reference.
|
|
24
|
+
* @returns The current state reference.
|
|
27
25
|
*/
|
|
28
|
-
|
|
26
|
+
getStateReference(): Promise<StateReference>;
|
|
27
|
+
/**
|
|
28
|
+
* Builds the initial header.
|
|
29
|
+
* @returns The initial header.
|
|
30
|
+
*/
|
|
31
|
+
buildInitialHeader(): Promise<Header>;
|
|
29
32
|
/**
|
|
30
33
|
* Appends a set of leaf values to the tree.
|
|
31
34
|
* @param treeId - Id of the tree to append leaves to.
|
|
@@ -90,18 +93,9 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
90
93
|
/**
|
|
91
94
|
* Inserts the new block hash into the archive.
|
|
92
95
|
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
93
|
-
* @param
|
|
94
|
-
*/
|
|
95
|
-
updateArchive(globalVariablesHash: Fr): Promise<void>;
|
|
96
|
-
/**
|
|
97
|
-
* Updates the latest global variables hash
|
|
98
|
-
* @param globalVariablesHash - The latest global variables hash
|
|
99
|
-
*/
|
|
100
|
-
updateLatestGlobalVariablesHash(globalVariablesHash: Fr): Promise<void>;
|
|
101
|
-
/**
|
|
102
|
-
* Gets the global variables hash from the previous block
|
|
96
|
+
* @param header - The header to insert into the archive.
|
|
103
97
|
*/
|
|
104
|
-
|
|
98
|
+
updateArchive(header: Header): Promise<void>;
|
|
105
99
|
/**
|
|
106
100
|
* Handles a single L2 block (i.e. Inserts the new commitments into the merkle tree).
|
|
107
101
|
* @param block - The L2 block to handle.
|
|
@@ -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,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
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,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAElG;;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,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAI5C;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC;;;;;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;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;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"}
|
|
@@ -16,11 +16,18 @@ export class MerkleTreeOperationsFacade {
|
|
|
16
16
|
return this.trees.getTreeInfo(treeId, this.includeUncommitted);
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Get the current
|
|
20
|
-
* @returns The current
|
|
19
|
+
* Get the current state reference.
|
|
20
|
+
* @returns The current state reference.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
return this.trees.
|
|
22
|
+
getStateReference() {
|
|
23
|
+
return this.trees.getStateReference(this.includeUncommitted);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Builds the initial header.
|
|
27
|
+
* @returns The initial header.
|
|
28
|
+
*/
|
|
29
|
+
buildInitialHeader() {
|
|
30
|
+
return this.trees.buildInitialHeader(this.includeUncommitted);
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
26
33
|
* Appends a set of leaf values to the tree.
|
|
@@ -93,23 +100,10 @@ export class MerkleTreeOperationsFacade {
|
|
|
93
100
|
/**
|
|
94
101
|
* Inserts the new block hash into the archive.
|
|
95
102
|
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
96
|
-
* @param
|
|
97
|
-
*/
|
|
98
|
-
updateArchive(globalVariablesHash) {
|
|
99
|
-
return this.trees.updateArchive(globalVariablesHash, this.includeUncommitted);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Updates the latest global variables hash
|
|
103
|
-
* @param globalVariablesHash - The latest global variables hash
|
|
104
|
-
*/
|
|
105
|
-
updateLatestGlobalVariablesHash(globalVariablesHash) {
|
|
106
|
-
return this.trees.updateLatestGlobalVariablesHash(globalVariablesHash, this.includeUncommitted);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Gets the global variables hash from the previous block
|
|
103
|
+
* @param header - The header to insert into the archive.
|
|
110
104
|
*/
|
|
111
|
-
|
|
112
|
-
return this.trees.
|
|
105
|
+
updateArchive(header) {
|
|
106
|
+
return this.trees.updateArchive(header, this.includeUncommitted);
|
|
113
107
|
}
|
|
114
108
|
/**
|
|
115
109
|
* Handles a single L2 block (i.e. Inserts the new commitments into the merkle tree).
|
|
@@ -144,4 +138,4 @@ export class MerkleTreeOperationsFacade {
|
|
|
144
138
|
return this.trees.batchInsert(treeId, leaves, subtreeHeight);
|
|
145
139
|
}
|
|
146
140
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQW9CLEtBQW1CLEVBQVUsa0JBQTJCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRWhGOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLE1BQW9CLEVBQUUsTUFBZ0I7UUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBbUIsTUFBb0IsRUFBRSxLQUFhO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRixPQUFPLElBQWlDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUNuQixNQUFtQyxFQUNuQyxLQUFhO1FBY2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxNQUFtQyxFQUFFLElBQTJCLEVBQUUsS0FBYTtRQUN4RixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBbUMsRUFDbkMsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRixPQUFPLFFBQStDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLE1BQW9CLEVBQUUsS0FBYTtRQUMvQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBQyxNQUFvQixFQUFFLEtBQWE7UUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLE1BQWM7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsS0FBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsTUFBTTtRQUNqQixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFFBQVE7UUFDbkIsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFdBQVcsQ0FDaEIsTUFBb0IsRUFDcEIsTUFBZ0IsRUFDaEIsYUFBcUI7UUFFckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRiJ9
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { MerkleTreeId } from '@aztec/circuit-types';
|
|
3
|
-
import {
|
|
2
|
+
import { MerkleTreeId, SiblingPath } from '@aztec/circuit-types';
|
|
3
|
+
import { Header, StateReference } from '@aztec/circuits.js';
|
|
4
4
|
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
5
|
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
6
|
-
import { SiblingPath } from '@aztec/types/membership';
|
|
7
6
|
import { MerkleTreeDb } from './merkle_tree_db.js';
|
|
8
|
-
import {
|
|
7
|
+
import { HandleL2BlockResult, MerkleTreeOperations, TreeInfo } from './merkle_tree_operations.js';
|
|
9
8
|
/**
|
|
10
9
|
* Merkle tree operations on readonly tree snapshots.
|
|
11
10
|
*/
|
|
@@ -13,7 +12,6 @@ export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeOpe
|
|
|
13
12
|
#private;
|
|
14
13
|
constructor(trees: MerkleTreeDb, blockNumber: number);
|
|
15
14
|
findLeafIndex(treeId: MerkleTreeId, value: Buffer): Promise<bigint | undefined>;
|
|
16
|
-
getLatestGlobalVariablesHash(): Promise<Fr>;
|
|
17
15
|
getLeafPreimage(treeId: MerkleTreeId.NULLIFIER_TREE, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
18
16
|
getLeafValue(treeId: MerkleTreeId, index: bigint): Promise<Buffer | undefined>;
|
|
19
17
|
getPreviousValueIndex(treeId: MerkleTreeId.NULLIFIER_TREE, value: bigint): Promise<{
|
|
@@ -28,7 +26,7 @@ export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeOpe
|
|
|
28
26
|
} | undefined>;
|
|
29
27
|
getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
|
|
30
28
|
getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
|
|
31
|
-
|
|
29
|
+
getStateReference(): Promise<StateReference>;
|
|
32
30
|
appendLeaves(): Promise<void>;
|
|
33
31
|
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
34
32
|
updateArchive(): Promise<void>;
|
|
@@ -36,7 +34,7 @@ export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeOpe
|
|
|
36
34
|
handleL2Block(): Promise<HandleL2BlockResult>;
|
|
37
35
|
rollback(): Promise<void>;
|
|
38
36
|
updateHistoricArchive(): Promise<void>;
|
|
39
|
-
updateLatestGlobalVariablesHash(): Promise<void>;
|
|
40
37
|
updateLeaf(): Promise<void>;
|
|
38
|
+
buildInitialHeader(): Promise<Header>;
|
|
41
39
|
}
|
|
42
40
|
//# sourceMappingURL=merkle_tree_snapshot_operations_facade.d.ts.map
|
|
@@ -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,MAAM,sBAAsB,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,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAA8B,MAAM,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAqC,MAAM,oBAAoB,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAElG;;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;IAK/E,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;IAK9E,qBAAqB,CACzB,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;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;IAUpD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAoClD,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,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;CAGtC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var _MerkleTreeSnapshotOperationsFacade_instances, _MerkleTreeSnapshotOperationsFacade_treesDb, _MerkleTreeSnapshotOperationsFacade_blockNumber, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { MerkleTreeId } from '@aztec/circuit-types';
|
|
4
|
+
import { AppendOnlyTreeSnapshot, Fr, PartialStateReference, StateReference } from '@aztec/circuits.js';
|
|
4
5
|
/**
|
|
5
6
|
* Merkle tree operations on readonly tree snapshots.
|
|
6
7
|
*/
|
|
@@ -17,9 +18,6 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
17
18
|
const tree = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
18
19
|
return tree.findLeafIndex(value);
|
|
19
20
|
}
|
|
20
|
-
getLatestGlobalVariablesHash() {
|
|
21
|
-
return Promise.reject(new Error('not implemented'));
|
|
22
|
-
}
|
|
23
21
|
async getLeafPreimage(treeId, index) {
|
|
24
22
|
const snapshot = (await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId));
|
|
25
23
|
return snapshot.getLatestLeafPreimageCopy(BigInt(index));
|
|
@@ -45,7 +43,7 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
45
43
|
treeId,
|
|
46
44
|
};
|
|
47
45
|
}
|
|
48
|
-
async
|
|
46
|
+
async getStateReference() {
|
|
49
47
|
const snapshots = await Promise.all([
|
|
50
48
|
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.CONTRACT_TREE),
|
|
51
49
|
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.NULLIFIER_TREE),
|
|
@@ -54,14 +52,7 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
54
52
|
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.L1_TO_L2_MESSAGE_TREE),
|
|
55
53
|
__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.ARCHIVE),
|
|
56
54
|
]);
|
|
57
|
-
return
|
|
58
|
-
archiveRoot: snapshots[MerkleTreeId.ARCHIVE].getRoot(),
|
|
59
|
-
contractDataTreeRoot: snapshots[MerkleTreeId.CONTRACT_TREE].getRoot(),
|
|
60
|
-
l1Tol2MessageTreeRoot: snapshots[MerkleTreeId.L1_TO_L2_MESSAGE_TREE].getRoot(),
|
|
61
|
-
noteHashTreeRoot: snapshots[MerkleTreeId.NOTE_HASH_TREE].getRoot(),
|
|
62
|
-
nullifierTreeRoot: snapshots[MerkleTreeId.NULLIFIER_TREE].getRoot(),
|
|
63
|
-
publicDataTreeRoot: snapshots[MerkleTreeId.PUBLIC_DATA_TREE].getRoot(),
|
|
64
|
-
};
|
|
55
|
+
return new StateReference(new AppendOnlyTreeSnapshot(Fr.fromBuffer(snapshots[MerkleTreeId.L1_TO_L2_MESSAGE_TREE].getRoot()), Number(snapshots[MerkleTreeId.L1_TO_L2_MESSAGE_TREE].getNumLeaves())), new PartialStateReference(new AppendOnlyTreeSnapshot(Fr.fromBuffer(snapshots[MerkleTreeId.NOTE_HASH_TREE].getRoot()), Number(snapshots[MerkleTreeId.NOTE_HASH_TREE].getNumLeaves())), new AppendOnlyTreeSnapshot(Fr.fromBuffer(snapshots[MerkleTreeId.NULLIFIER_TREE].getRoot()), Number(snapshots[MerkleTreeId.NULLIFIER_TREE].getNumLeaves())), new AppendOnlyTreeSnapshot(Fr.fromBuffer(snapshots[MerkleTreeId.CONTRACT_TREE].getRoot()), Number(snapshots[MerkleTreeId.CONTRACT_TREE].getNumLeaves())), new AppendOnlyTreeSnapshot(Fr.fromBuffer(snapshots[MerkleTreeId.PUBLIC_DATA_TREE].getRoot()), Number(snapshots[MerkleTreeId.PUBLIC_DATA_TREE].getNumLeaves()))));
|
|
65
56
|
}
|
|
66
57
|
appendLeaves() {
|
|
67
58
|
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
@@ -84,12 +75,12 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
84
75
|
updateHistoricArchive() {
|
|
85
76
|
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
86
77
|
}
|
|
87
|
-
updateLatestGlobalVariablesHash() {
|
|
88
|
-
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
89
|
-
}
|
|
90
78
|
updateLeaf() {
|
|
91
79
|
return Promise.reject(new Error('Tree snapshot operations are read-only'));
|
|
92
80
|
}
|
|
81
|
+
buildInitialHeader() {
|
|
82
|
+
throw new Error('Building initial header not supported on snapshot.');
|
|
83
|
+
}
|
|
93
84
|
}
|
|
94
85
|
_MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_blockNumber = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_treeSnapshots = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_instances = new WeakSet(), _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot = async function _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot(merkleTreeId) {
|
|
95
86
|
if (__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[merkleTreeId]) {
|
|
@@ -98,4 +89,4 @@ _MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshot
|
|
|
98
89
|
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, "f").getSnapshot(__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, "f")), "f");
|
|
99
90
|
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[merkleTreeId];
|
|
100
91
|
};
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsRUFBVSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU8vRzs7R0FFRztBQUNILE1BQU0sT0FBTyxrQ0FBa0M7SUFLN0MsWUFBWSxLQUFtQixFQUFFLFdBQW1COztRQUpwRCw4REFBdUI7UUFDdkIsa0VBQXFCO1FBQ3JCLDREQUFvRSxFQUFFLEVBQUM7UUFHckUsdUJBQUEsSUFBSSwrQ0FBWSxLQUFLLE1BQUEsQ0FBQztRQUN0Qix1QkFBQSxJQUFJLG1EQUFnQixXQUFXLE1BQUEsQ0FBQztJQUNsQyxDQUFDO0lBV0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFvQixFQUFFLEtBQWE7UUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSx1QkFBQSxJQUFJLDBHQUFpQixNQUFyQixJQUFJLEVBQWtCLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBbUMsRUFDbkMsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSx1QkFBQSxJQUFJLDBHQUFpQixNQUFyQixJQUFJLEVBQWtCLE1BQU0sQ0FBQyxDQUF3QixDQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLLENBQUMsWUFB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
|