@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.
@@ -1,5 +1,5 @@
1
1
  import { L2BlockSource } from '@aztec/circuit-types';
2
- import { LevelUp } from 'levelup';
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 constructor();
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;AAMjF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,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;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;IAeV,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"}
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(db, merkleTreeDb, l2BlockSource, config, log = createDebugLogger('aztec:world_state')) {
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.currentL2BlockNum = l2Block.number;
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
- _ServerWorldStateSynchronizer_instances = new WeakSet(), _ServerWorldStateSynchronizer_init = async function _ServerWorldStateSynchronizer_init() {
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 roots of the commitment trees.
47
+ * Gets the current state reference.
48
+ */
49
+ getStateReference(): Promise<StateReference>;
50
+ /**
51
+ * Builds the initial header.
67
52
  */
68
- getTreeRoots(): Promise<CurrentTreeRoots>;
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 new block hash into the archive.
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 globalVariablesHash - The global variables hash to insert into the block hash.
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
- getLatestGlobalVariablesHash(): Promise<Fr>;
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":"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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JsZC1zdGF0ZS1kYi9tZXJrbGVfdHJlZV9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBd0wxRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixFQUF3QixFQUN4QixNQUFvQixFQUNwQixHQUFHLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxNQUFNLFNBQVMsSUFBSSxDQUFDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FDVCxTQUFTLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FDekcsQ0FBQztLQUNIO0lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN6QixDQUFDIn0=
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 { CurrentTreeRoots, HandleL2BlockResult, MerkleTreeOperations, TreeInfo } from './merkle_tree_operations.js';
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 roots of the commitment trees.
26
- * @returns The current roots of the trees.
23
+ * Get the current state reference.
24
+ * @returns The current state reference.
27
25
  */
28
- getTreeRoots(): Promise<CurrentTreeRoots>;
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 globalVariablesHash - The global variables hash to insert into the block hash.
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
- getLatestGlobalVariablesHash(): Promise<Fr>;
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":"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"}
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 roots of the commitment trees.
20
- * @returns The current roots of the trees.
19
+ * Get the current state reference.
20
+ * @returns The current state reference.
21
21
  */
22
- getTreeRoots() {
23
- return this.trees.getTreeRoots(this.includeUncommitted);
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 globalVariablesHash - The global variables hash to insert into the block hash.
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
- getLatestGlobalVariablesHash() {
112
- return this.trees.getLatestGlobalVariablesHash(this.includeUncommitted);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQW9CLEtBQW1CLEVBQVUsa0JBQTJCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRWhGOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsTUFBb0IsRUFBRSxNQUFnQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFtQixNQUFvQixFQUFFLEtBQWE7UUFDeEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sSUFBaUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQ25CLE1BQW1DLEVBQ25DLEtBQWE7UUFjYixPQUFPLElBQUks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
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 { Fr } from '@aztec/circuits.js';
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 { CurrentTreeRoots, HandleL2BlockResult, MerkleTreeOperations, TreeInfo } from './merkle_tree_operations.js';
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
- getTreeRoots(): Promise<CurrentTreeRoots>;
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;AACpD,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,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEpH;;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;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,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,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,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
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 getTreeRoots() {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFTcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQVksS0FBbUIsRUFBRSxXQUFtQjs7UUFKcEQsOERBQXVCO1FBQ3ZCLGtFQUFxQjtRQUNyQiw0REFBb0UsRUFBRSxFQUFDO1FBR3JFLHVCQUFBLElBQUksK0NBQVksS0FBSyxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSxtREFBZ0IsV0FBVyxNQUFBLENBQUM7SUFDbEMsQ0FBQztJQVdELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBb0IsRUFBRSxLQUFhO1FBQ3JELE1BQU0sSUFBSSxHQUFHLE1BQU0sdUJBQUEsSUFBSSwwR0FBaUIsTUFBckIsSUFBSSxFQUFrQixNQUFNLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFtQyxFQUNuQyxLQUFhO1FBRWIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQXdCLENBQUM7UUFDOUUsT0FBTyxRQUFRLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVE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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsRUFBVSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU8vRzs7R0FFRztBQUNILE1BQU0sT0FBTyxrQ0FBa0M7SUFLN0MsWUFBWSxLQUFtQixFQUFFLFdBQW1COztRQUpwRCw4REFBdUI7UUFDdkIsa0VBQXFCO1FBQ3JCLDREQUFvRSxFQUFFLEVBQUM7UUFHckUsdUJBQUEsSUFBSSwrQ0FBWSxLQUFLLE1BQUEsQ0FBQztRQUN0Qix1QkFBQSxJQUFJLG1EQUFnQixXQUFXLE1BQUEsQ0FBQztJQUNsQyxDQUFDO0lBV0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFvQixFQUFFLEtBQWE7UUFDckQsTUFBTSxJQUFJLEdBQUcsTUFBTSx1QkFBQSxJQUFJLDBHQUFpQixNQUFyQixJQUFJLEVBQWtCLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsTUFBbUMsRUFDbkMsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSx1QkFBQSxJQUFJLDBHQUFpQixNQUFyQixJQUFJLEVBQWtCLE1BQU0sQ0FBQyxDQUF3QixDQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxLQUFLLENBQUMsWUFB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