@aztec/world-state 0.31.0 → 0.32.1
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 +5 -5
- package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.js +5 -4
- package/dest/synchronizer/world_state_synchronizer.d.ts +1 -1
- package/dest/synchronizer/world_state_synchronizer.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_db.d.ts +12 -3
- package/dest/world-state-db/merkle_tree_db.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_db.js +1 -1
- package/dest/world-state-db/merkle_tree_operations.d.ts +28 -12
- 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 +14 -14
- package/dest/world-state-db/merkle_tree_operations_facade.d.ts.map +1 -1
- package/dest/world-state-db/merkle_tree_operations_facade.js +1 -1
- package/dest/world-state-db/merkle_tree_snapshot_operations_facade.d.ts +11 -12
- 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 +8 -6
- package/dest/world-state-db/merkle_trees.d.ts +13 -13
- package/dest/world-state-db/merkle_trees.d.ts.map +1 -1
- package/dest/world-state-db/merkle_trees.js +34 -17
- package/package.json +7 -7
- package/src/synchronizer/server_world_state_synchronizer.ts +17 -7
- package/src/synchronizer/world_state_synchronizer.ts +1 -1
- package/src/world-state-db/merkle_tree_db.ts +13 -4
- package/src/world-state-db/merkle_tree_operations.ts +39 -14
- package/src/world-state-db/merkle_tree_operations_facade.ts +33 -18
- package/src/world-state-db/merkle_tree_snapshot_operations_facade.ts +36 -21
- package/src/world-state-db/merkle_trees.ts +88 -45
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { L1ToL2MessageSource, L2BlockSource } from '@aztec/circuit-types';
|
|
2
|
-
import { AztecKVStore } from '@aztec/kv-store';
|
|
3
|
-
import { MerkleTreeOperations, MerkleTrees } from '../world-state-db/index.js';
|
|
4
|
-
import { WorldStateConfig } from './config.js';
|
|
5
|
-
import { WorldStateStatus, WorldStateSynchronizer } from './world_state_synchronizer.js';
|
|
1
|
+
import { type L1ToL2MessageSource, type L2BlockSource } from '@aztec/circuit-types';
|
|
2
|
+
import { type AztecKVStore } from '@aztec/kv-store';
|
|
3
|
+
import { type MerkleTreeOperations, type MerkleTrees } from '../world-state-db/index.js';
|
|
4
|
+
import { type WorldStateConfig } from './config.js';
|
|
5
|
+
import { type WorldStateStatus, type WorldStateSynchronizer } from './world_state_synchronizer.js';
|
|
6
6
|
/**
|
|
7
7
|
* Synchronizes the world state with the L2 blocks from a L2BlockSource.
|
|
8
8
|
* The synchronizer will download the L2 blocks from the L2BlockSource and insert the new note hashes into the merkle
|
|
@@ -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,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAmC,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrH,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,iBAAiB,CAAC;AAIzE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AAEvC;;;;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,GAAG,mBAAmB,EAC1D,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;IASrC;;;;;OAKG;YACW,yBAAyB;IAYvC;;;;;OAKG;YACW,wBAAwB;IAuBtC;;;OAGG;IACH,OAAO,CAAC,eAAe;CA0BxB"}
|
|
@@ -2,6 +2,7 @@ var _ServerWorldStateSynchronizer_instances, _ServerWorldStateSynchronizer_verif
|
|
|
2
2
|
import { __classPrivateFieldGet } from "tslib";
|
|
3
3
|
import { L2BlockDownloader } from '@aztec/circuit-types';
|
|
4
4
|
import { L1_TO_L2_MSG_SUBTREE_HEIGHT } from '@aztec/circuits.js/constants';
|
|
5
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
6
|
import { SerialQueue } from '@aztec/foundation/fifo';
|
|
6
7
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
7
8
|
import { elapsed } from '@aztec/foundation/timer';
|
|
@@ -9,7 +10,7 @@ import { openTmpStore } from '@aztec/kv-store/utils';
|
|
|
9
10
|
import { SHA256Trunc, StandardTree } from '@aztec/merkle-tree';
|
|
10
11
|
import { MerkleTreeOperationsFacade } from '../world-state-db/merkle_tree_operations_facade.js';
|
|
11
12
|
import { MerkleTreeSnapshotOperationsFacade } from '../world-state-db/merkle_tree_snapshot_operations_facade.js';
|
|
12
|
-
import { WorldStateRunningState } from './world_state_synchronizer.js';
|
|
13
|
+
import { WorldStateRunningState, } from './world_state_synchronizer.js';
|
|
13
14
|
/**
|
|
14
15
|
* Synchronizes the world state with the L2 blocks from a L2BlockSource.
|
|
15
16
|
* The synchronizer will download the L2 blocks from the L2BlockSource and insert the new note hashes into the merkle
|
|
@@ -203,10 +204,10 @@ _ServerWorldStateSynchronizer_instances = new WeakSet(), _ServerWorldStateSynchr
|
|
|
203
204
|
* @throws If the L1 to L2 messages do not hash to the block inHash.
|
|
204
205
|
*/
|
|
205
206
|
async function _ServerWorldStateSynchronizer_verifyMessagesHashToInHash(l1ToL2Messages, inHash) {
|
|
206
|
-
const tree = new StandardTree(openTmpStore(true), new SHA256Trunc(), 'temp_in_hash_check', L1_TO_L2_MSG_SUBTREE_HEIGHT);
|
|
207
|
-
await tree.appendLeaves(l1ToL2Messages
|
|
207
|
+
const tree = new StandardTree(openTmpStore(true), new SHA256Trunc(), 'temp_in_hash_check', L1_TO_L2_MSG_SUBTREE_HEIGHT, 0n, Fr);
|
|
208
|
+
await tree.appendLeaves(l1ToL2Messages);
|
|
208
209
|
if (!tree.getRoot(true).equals(inHash)) {
|
|
209
210
|
throw new Error('Obtained L1 to L2 messages failed to be hashed to the block inHash');
|
|
210
211
|
}
|
|
211
212
|
};
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBMEMsaUJBQWlCLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFFckgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPL0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFakgsT0FBTyxFQUNMLHNCQUFzQixHQUd2QixNQUFNLCtCQUErQixDQUFDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBWXZDLFlBQ0UsS0FBbUIsRUFDWCxZQUF5QixFQUN6QixhQUFrRCxFQUMxRCxNQUF3QixFQUNoQixNQUFNLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDOztRQUg1QyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBcUM7UUFFbEQsUUFBRyxHQUFILEdBQUcsQ0FBeUM7UUFoQjlDLDZCQUF3QixHQUFHLENBQUMsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/world_state_synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,oBAAY,sBAAsB;IAChC,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,OAAO,IAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAC9B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD;;;OAGG;IACH,SAAS,IAAI,oBAAoB,CAAC;IAElC;;;OAGG;IACH,YAAY,IAAI,oBAAoB,CAAC;IAErC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC;CAClD"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type MerkleTreeId } from '@aztec/circuit-types';
|
|
2
|
+
import { type Fr } from '@aztec/circuits.js';
|
|
3
|
+
import { type IndexedTreeSnapshot, type TreeSnapshot } from '@aztec/merkle-tree';
|
|
4
|
+
import { type MerkleTreeOperations } from './merkle_tree_operations.js';
|
|
3
5
|
/**
|
|
4
6
|
*
|
|
5
7
|
* @remarks Short explanation:
|
|
@@ -25,6 +27,13 @@ type WithIncludeUncommitted<F> = F extends (...args: [...infer Rest]) => infer R
|
|
|
25
27
|
* Defines the names of the setters on Merkle Trees.
|
|
26
28
|
*/
|
|
27
29
|
type MerkleTreeSetters = 'appendLeaves' | 'updateLeaf' | 'commit' | 'rollback' | 'handleL2BlockAndMessages' | 'batchInsert';
|
|
30
|
+
export type TreeSnapshots = {
|
|
31
|
+
[MerkleTreeId.NULLIFIER_TREE]: IndexedTreeSnapshot;
|
|
32
|
+
[MerkleTreeId.NOTE_HASH_TREE]: TreeSnapshot<Fr>;
|
|
33
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: IndexedTreeSnapshot;
|
|
34
|
+
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: TreeSnapshot<Fr>;
|
|
35
|
+
[MerkleTreeId.ARCHIVE]: TreeSnapshot<Fr>;
|
|
36
|
+
};
|
|
28
37
|
/**
|
|
29
38
|
* Defines the interface for operations on a set of Merkle Trees configuring whether to return committed or uncommitted data.
|
|
30
39
|
*/
|
|
@@ -35,7 +44,7 @@ export type MerkleTreeDb = {
|
|
|
35
44
|
* Returns a snapshot of the current state of the trees.
|
|
36
45
|
* @param block - The block number to take the snapshot at.
|
|
37
46
|
*/
|
|
38
|
-
getSnapshot(block: number): Promise<
|
|
47
|
+
getSnapshot(block: number): Promise<TreeSnapshots>;
|
|
39
48
|
};
|
|
40
49
|
export {};
|
|
41
50
|
//# sourceMappingURL=merkle_tree_db.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,EAAqE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,QAAgC,CAAC;AAEzE,eAAO,MAAM,6BAA6B,QAA6C,CAAC;AAExF;;GAEG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,MAAM,MAAM,GACjF,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,KAAK,MAAM,GACvC,CAAC,CAAC;AAEN;;GAEG;AACH,KAAK,iBAAiB,GAClB,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,0BAA0B,GAC1B,aAAa,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACnD,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACrD,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;KACxB,QAAQ,IAAI,MAAM,oBAAoB,IAAI,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,GAAG,sBAAsB,CACtG,oBAAoB,CAAC,QAAQ,CAAC,CAC/B;CACF,GAAG,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,GAAG;IAChD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACpD,CAAC"}
|
|
@@ -16,4 +16,4 @@ import { MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } fro
|
|
|
16
16
|
*/
|
|
17
17
|
export const INITIAL_NULLIFIER_TREE_SIZE = 2 * MAX_NEW_NULLIFIERS_PER_TX;
|
|
18
18
|
export const INITIAL_PUBLIC_DATA_TREE_SIZE = 2 * MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFXLHlCQUF5QixFQUFFLHNDQUFzQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLaEg7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEdBQUcseUJBQXlCLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxHQUFHLHNDQUFzQyxDQUFDIn0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/circuit-types';
|
|
3
|
-
import { Fr, Header, NullifierLeafPreimage, StateReference } from '@aztec/circuits.js';
|
|
4
|
-
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
|
-
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
2
|
+
import { type L2Block, type MerkleTreeId, type SiblingPath } from '@aztec/circuit-types';
|
|
3
|
+
import { type Fr, type Header, type NullifierLeafPreimage, type StateReference } from '@aztec/circuits.js';
|
|
4
|
+
import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
|
+
import { type AppendOnlyTree, type BatchInsertionResult, type IndexedTree } from '@aztec/merkle-tree';
|
|
6
6
|
/**
|
|
7
7
|
* Type alias for the nullifier tree ID.
|
|
8
8
|
*/
|
|
@@ -28,6 +28,21 @@ export interface TreeInfo {
|
|
|
28
28
|
*/
|
|
29
29
|
depth: number;
|
|
30
30
|
}
|
|
31
|
+
export type MerkleTreeMap = {
|
|
32
|
+
[MerkleTreeId.NULLIFIER_TREE]: IndexedTree;
|
|
33
|
+
[MerkleTreeId.NOTE_HASH_TREE]: AppendOnlyTree<Fr>;
|
|
34
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: IndexedTree;
|
|
35
|
+
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: AppendOnlyTree<Fr>;
|
|
36
|
+
[MerkleTreeId.ARCHIVE]: AppendOnlyTree<Fr>;
|
|
37
|
+
};
|
|
38
|
+
type LeafTypes = {
|
|
39
|
+
[MerkleTreeId.NULLIFIER_TREE]: Buffer;
|
|
40
|
+
[MerkleTreeId.NOTE_HASH_TREE]: Fr;
|
|
41
|
+
[MerkleTreeId.PUBLIC_DATA_TREE]: Buffer;
|
|
42
|
+
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: Fr;
|
|
43
|
+
[MerkleTreeId.ARCHIVE]: Fr;
|
|
44
|
+
};
|
|
45
|
+
export type MerkleTreeLeafType<ID extends MerkleTreeId> = LeafTypes[ID];
|
|
31
46
|
/**
|
|
32
47
|
* Defines the interface for operations on a set of Merkle Trees.
|
|
33
48
|
*/
|
|
@@ -37,7 +52,7 @@ export interface MerkleTreeOperations {
|
|
|
37
52
|
* @param treeId - The tree to be updated.
|
|
38
53
|
* @param leaves - The set of leaves to be appended.
|
|
39
54
|
*/
|
|
40
|
-
appendLeaves(treeId:
|
|
55
|
+
appendLeaves<ID extends MerkleTreeId>(treeId: ID, leaves: MerkleTreeLeafType<ID>[]): Promise<void>;
|
|
41
56
|
/**
|
|
42
57
|
* Returns information about the given tree.
|
|
43
58
|
* @param treeId - The tree to be queried.
|
|
@@ -62,7 +77,7 @@ export interface MerkleTreeOperations {
|
|
|
62
77
|
* @param treeId - The tree for which the previous value index is required.
|
|
63
78
|
* @param value - The value to be queried.
|
|
64
79
|
*/
|
|
65
|
-
getPreviousValueIndex(treeId:
|
|
80
|
+
getPreviousValueIndex<ID extends IndexedTreeId>(treeId: ID, value: bigint): Promise<{
|
|
66
81
|
/**
|
|
67
82
|
* The index of the found leaf.
|
|
68
83
|
*/
|
|
@@ -77,33 +92,33 @@ export interface MerkleTreeOperations {
|
|
|
77
92
|
* @param treeId - The tree for which leaf data should be returned.
|
|
78
93
|
* @param index - The index of the leaf required.
|
|
79
94
|
*/
|
|
80
|
-
getLeafPreimage(treeId:
|
|
95
|
+
getLeafPreimage<ID extends IndexedTreeId>(treeId: ID, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
81
96
|
/**
|
|
82
97
|
* Update the leaf data at the given index.
|
|
83
98
|
* @param treeId - The tree for which leaf data should be edited.
|
|
84
99
|
* @param leaf - The updated leaf value.
|
|
85
100
|
* @param index - The index of the leaf to be updated.
|
|
86
101
|
*/
|
|
87
|
-
updateLeaf(treeId:
|
|
102
|
+
updateLeaf<ID extends IndexedTreeId>(treeId: ID, leaf: NullifierLeafPreimage | Buffer, index: bigint): Promise<void>;
|
|
88
103
|
/**
|
|
89
104
|
* Returns the index containing a leaf value.
|
|
90
105
|
* @param treeId - The tree for which the index should be returned.
|
|
91
106
|
* @param value - The value to search for in the tree.
|
|
92
107
|
*/
|
|
93
|
-
findLeafIndex(treeId:
|
|
108
|
+
findLeafIndex<ID extends MerkleTreeId>(treeId: ID, value: MerkleTreeLeafType<ID>): Promise<bigint | undefined>;
|
|
94
109
|
/**
|
|
95
110
|
* Returns the first index containing a leaf value after `startIndex`.
|
|
96
111
|
* @param treeId - The tree for which the index should be returned.
|
|
97
112
|
* @param value - The value to search for in the tree.
|
|
98
113
|
* @param startIndex - The index to start searching from (used when skipping nullified messages)
|
|
99
114
|
*/
|
|
100
|
-
findLeafIndexAfter(treeId:
|
|
115
|
+
findLeafIndexAfter<ID extends MerkleTreeId>(treeId: ID, value: MerkleTreeLeafType<ID>, startIndex: bigint): Promise<bigint | undefined>;
|
|
101
116
|
/**
|
|
102
117
|
* Gets the value for a leaf in the tree.
|
|
103
118
|
* @param treeId - The tree for which the index should be returned.
|
|
104
119
|
* @param index - The index of the leaf.
|
|
105
120
|
*/
|
|
106
|
-
getLeafValue(treeId:
|
|
121
|
+
getLeafValue<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<MerkleTreeLeafType<typeof treeId> | undefined>;
|
|
107
122
|
/**
|
|
108
123
|
* Inserts the block hash into the archive.
|
|
109
124
|
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
@@ -117,7 +132,7 @@ export interface MerkleTreeOperations {
|
|
|
117
132
|
* @param subtreeHeight - Height of the subtree.
|
|
118
133
|
* @returns The witness data for the leaves to be updated when inserting the new ones.
|
|
119
134
|
*/
|
|
120
|
-
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId:
|
|
135
|
+
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number, ID extends IndexedTreeId>(treeId: ID, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
121
136
|
/**
|
|
122
137
|
* Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
|
|
123
138
|
* @param block - The L2 block to handle.
|
|
@@ -141,4 +156,5 @@ export type HandleL2BlockAndMessagesResult = {
|
|
|
141
156
|
* Outputs a tree leaves using for debugging purposes.
|
|
142
157
|
*/
|
|
143
158
|
export declare function inspectTree(db: MerkleTreeOperations, treeId: MerkleTreeId, log?: import("@aztec/foundation/log").DebugLogger): Promise<void>;
|
|
159
|
+
export {};
|
|
144
160
|
//# sourceMappingURL=merkle_tree_operations.d.ts.map
|
|
@@ -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,WAAW,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JsZC1zdGF0ZS1kYi9tZXJrbGVfdHJlZV9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBaU0xRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixFQUF3QixFQUN4QixNQUFvQixFQUNwQixHQUFHLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxNQUFNLFNBQVMsSUFBSSxDQUFDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUNULFNBQVMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUN6RyxDQUFDO0lBQ0osQ0FBQztJQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDekIsQ0FBQyJ9
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { L2Block, MerkleTreeId, SiblingPath } from '@aztec/circuit-types';
|
|
3
|
-
import { Fr, Header, NullifierLeafPreimage, StateReference } from '@aztec/circuits.js';
|
|
4
|
-
import { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
|
-
import { BatchInsertionResult } from '@aztec/merkle-tree';
|
|
6
|
-
import { MerkleTreeDb } from './merkle_tree_db.js';
|
|
7
|
-
import { HandleL2BlockAndMessagesResult, MerkleTreeOperations, TreeInfo } from './merkle_tree_operations.js';
|
|
2
|
+
import { type L2Block, type MerkleTreeId, type SiblingPath } from '@aztec/circuit-types';
|
|
3
|
+
import { type Fr, type Header, type NullifierLeafPreimage, type StateReference } from '@aztec/circuits.js';
|
|
4
|
+
import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
5
|
+
import { type BatchInsertionResult } from '@aztec/merkle-tree';
|
|
6
|
+
import { type MerkleTreeDb } from './merkle_tree_db.js';
|
|
7
|
+
import { type HandleL2BlockAndMessagesResult, type IndexedTreeId, type MerkleTreeLeafType, type MerkleTreeOperations, type TreeInfo } from './merkle_tree_operations.js';
|
|
8
8
|
/**
|
|
9
9
|
* Wraps a MerkleTreeDbOperations to call all functions with a preset includeUncommitted flag.
|
|
10
10
|
*/
|
|
@@ -35,7 +35,7 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
35
35
|
* @param leaves - The set of leaves to be appended.
|
|
36
36
|
* @returns The tree info of the specified tree.
|
|
37
37
|
*/
|
|
38
|
-
appendLeaves(treeId:
|
|
38
|
+
appendLeaves<ID extends MerkleTreeId>(treeId: ID, leaves: MerkleTreeLeafType<ID>[]): Promise<void>;
|
|
39
39
|
/**
|
|
40
40
|
* Returns the sibling path for a requested leaf index.
|
|
41
41
|
* @param treeId - Id of the tree to get the sibling path from.
|
|
@@ -50,7 +50,7 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
50
50
|
* @param includeUncommitted - If true, the uncommitted changes are included in the search.
|
|
51
51
|
* @returns The found leaf index and a flag indicating if the corresponding leaf's value is equal to `newValue`.
|
|
52
52
|
*/
|
|
53
|
-
getPreviousValueIndex(treeId:
|
|
53
|
+
getPreviousValueIndex<ID extends IndexedTreeId>(treeId: ID, value: bigint): Promise<{
|
|
54
54
|
/**
|
|
55
55
|
* The index of the found leaf.
|
|
56
56
|
*/
|
|
@@ -67,28 +67,28 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
67
67
|
* @param index - The index to insert into.
|
|
68
68
|
* @returns Empty promise.
|
|
69
69
|
*/
|
|
70
|
-
updateLeaf(treeId:
|
|
70
|
+
updateLeaf<ID extends IndexedTreeId>(treeId: ID, leaf: NullifierLeafPreimage, index: bigint): Promise<void>;
|
|
71
71
|
/**
|
|
72
72
|
* Gets the leaf data at a given index and tree.
|
|
73
73
|
* @param treeId - The ID of the tree get the leaf from.
|
|
74
74
|
* @param index - The index of the leaf to get.
|
|
75
75
|
* @returns Leaf preimage.
|
|
76
76
|
*/
|
|
77
|
-
getLeafPreimage(treeId:
|
|
77
|
+
getLeafPreimage<ID extends IndexedTreeId>(treeId: ID, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
78
78
|
/**
|
|
79
79
|
* Returns the index of a leaf given its value, or undefined if no leaf with that value is found.
|
|
80
80
|
* @param treeId - The ID of the tree.
|
|
81
81
|
* @param value - The leaf value to look for.
|
|
82
82
|
* @returns The index of the first leaf found with a given value (undefined if not found).
|
|
83
83
|
*/
|
|
84
|
-
findLeafIndex(treeId:
|
|
84
|
+
findLeafIndex<ID extends MerkleTreeId>(treeId: ID, value: MerkleTreeLeafType<ID>): Promise<bigint | undefined>;
|
|
85
85
|
/**
|
|
86
86
|
* Returns the first index containing a leaf value after `startIndex`.
|
|
87
87
|
* @param treeId - The tree for which the index should be returned.
|
|
88
88
|
* @param value - The value to search for in the tree.
|
|
89
89
|
* @param startIndex - The index to start searching from (used when skipping nullified messages)
|
|
90
90
|
*/
|
|
91
|
-
findLeafIndexAfter(treeId:
|
|
91
|
+
findLeafIndexAfter<ID extends MerkleTreeId>(treeId: ID, value: MerkleTreeLeafType<ID>, startIndex: bigint): Promise<bigint | undefined>;
|
|
92
92
|
/**
|
|
93
93
|
* Gets the value at the given index.
|
|
94
94
|
* @param treeId - The ID of the tree to get the leaf value from.
|
|
@@ -96,7 +96,7 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
96
96
|
* @param includeUncommitted - Indicates whether to include uncommitted changes.
|
|
97
97
|
* @returns Leaf value at the given index (undefined if not found).
|
|
98
98
|
*/
|
|
99
|
-
getLeafValue(treeId:
|
|
99
|
+
getLeafValue<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<MerkleTreeLeafType<typeof treeId> | undefined>;
|
|
100
100
|
/**
|
|
101
101
|
* Inserts the new block hash into the archive.
|
|
102
102
|
* This includes all of the current roots of all of the data trees and the current blocks global vars.
|
|
@@ -127,6 +127,6 @@ export declare class MerkleTreeOperationsFacade implements MerkleTreeOperations
|
|
|
127
127
|
* @param subtreeHeight - Height of the subtree.
|
|
128
128
|
* @returns The data for the leaves to be updated when inserting the new ones.
|
|
129
129
|
*/
|
|
130
|
-
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId:
|
|
130
|
+
batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId: IndexedTreeId, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
|
|
131
131
|
}
|
|
132
132
|
//# sourceMappingURL=merkle_tree_operations_facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_operations_facade.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_operations_facade.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,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":"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"}
|
|
@@ -148,4 +148,4 @@ export class MerkleTreeOperationsFacade {
|
|
|
148
148
|
return this.trees.batchInsert(treeId, leaves, subtreeHeight);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQW9CLEtBQW1CLEVBQVUsa0JBQTJCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRWhGOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUEwQixNQUFVLEVBQUUsTUFBZ0M7UUFDaEYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBbUIsTUFBb0IsRUFBRSxLQUFhO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtC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
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { HandleL2BlockAndMessagesResult, MerkleTreeOperations, TreeInfo } from './merkle_tree_operations.js';
|
|
1
|
+
import { MerkleTreeId, type SiblingPath } from '@aztec/circuit-types';
|
|
2
|
+
import { type Header, StateReference } from '@aztec/circuits.js';
|
|
3
|
+
import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
4
|
+
import { type BatchInsertionResult } from '@aztec/merkle-tree';
|
|
5
|
+
import { type MerkleTreeDb } from './merkle_tree_db.js';
|
|
6
|
+
import { type HandleL2BlockAndMessagesResult, type IndexedTreeId, type MerkleTreeLeafType, type MerkleTreeOperations, type TreeInfo } from './merkle_tree_operations.js';
|
|
8
7
|
/**
|
|
9
8
|
* Merkle tree operations on readonly tree snapshots.
|
|
10
9
|
*/
|
|
11
10
|
export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeOperations {
|
|
12
11
|
#private;
|
|
13
12
|
constructor(trees: MerkleTreeDb, blockNumber: number);
|
|
14
|
-
findLeafIndex(treeId:
|
|
15
|
-
findLeafIndexAfter(treeId: MerkleTreeId, value:
|
|
16
|
-
getLeafPreimage(treeId:
|
|
17
|
-
getLeafValue(treeId:
|
|
18
|
-
getPreviousValueIndex(treeId:
|
|
13
|
+
findLeafIndex<ID extends MerkleTreeId>(treeId: ID, value: MerkleTreeLeafType<ID>): Promise<bigint | undefined>;
|
|
14
|
+
findLeafIndexAfter<ID extends MerkleTreeId>(treeId: MerkleTreeId, value: MerkleTreeLeafType<ID>, startIndex: bigint): Promise<bigint | undefined>;
|
|
15
|
+
getLeafPreimage<ID extends IndexedTreeId>(treeId: ID, index: bigint): Promise<IndexedTreeLeafPreimage | undefined>;
|
|
16
|
+
getLeafValue<ID extends MerkleTreeId>(treeId: ID, index: bigint): Promise<MerkleTreeLeafType<typeof treeId> | undefined>;
|
|
17
|
+
getPreviousValueIndex(treeId: IndexedTreeId, value: bigint): Promise<{
|
|
19
18
|
/**
|
|
20
19
|
* The index of the found leaf.
|
|
21
20
|
*/
|
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"merkle_tree_snapshot_operations_facade.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_snapshot_operations_facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAA8B,KAAK,MAAM,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,KAAK,oBAAoB,EAA4B,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACd,MAAM,6BAA6B,CAAC;AAErC;;GAEG;AACH,qBAAa,kCAAmC,YAAW,oBAAoB;;gBAKjE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM;IAc9C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM9G,kBAAkB,CAAC,EAAE,SAAS,YAAY,EAC9C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMxB,eAAe,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAKzC,YAAY,CAAC,EAAE,SAAS,YAAY,EACxC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,CAAC;IAKnD,qBAAqB,CACzB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CACN;QACE;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,cAAc,EAAE,OAAO,CAAC;KACzB,GACD,SAAS,CACZ;IAKK,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAK9F,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUpD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IA+BlD,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,wBAAwB,IAAI,OAAO,CAAC,8BAA8B,CAAC;IAInE,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"}
|
|
@@ -10,16 +10,18 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
10
10
|
_MerkleTreeSnapshotOperationsFacade_instances.add(this);
|
|
11
11
|
_MerkleTreeSnapshotOperationsFacade_treesDb.set(this, void 0);
|
|
12
12
|
_MerkleTreeSnapshotOperationsFacade_blockNumber.set(this, void 0);
|
|
13
|
-
_MerkleTreeSnapshotOperationsFacade_treeSnapshots.set(this,
|
|
13
|
+
_MerkleTreeSnapshotOperationsFacade_treeSnapshots.set(this, {});
|
|
14
14
|
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, trees, "f");
|
|
15
15
|
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, blockNumber, "f");
|
|
16
16
|
}
|
|
17
17
|
async findLeafIndex(treeId, value) {
|
|
18
18
|
const tree = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
19
|
+
// TODO #5448 fix "as any"
|
|
19
20
|
return tree.findLeafIndex(value);
|
|
20
21
|
}
|
|
21
22
|
async findLeafIndexAfter(treeId, value, startIndex) {
|
|
22
23
|
const tree = await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, treeId);
|
|
24
|
+
// TODO #5448 fix "as any"
|
|
23
25
|
return tree.findLeafIndexAfter(value, startIndex);
|
|
24
26
|
}
|
|
25
27
|
async getLeafPreimage(treeId, index) {
|
|
@@ -85,11 +87,11 @@ export class MerkleTreeSnapshotOperationsFacade {
|
|
|
85
87
|
throw new Error('Building initial header not supported on snapshot.');
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
|
-
_MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_blockNumber = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_treeSnapshots = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_instances = new WeakSet(), _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot = async function _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot(
|
|
89
|
-
if (__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[
|
|
90
|
-
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[
|
|
90
|
+
_MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_blockNumber = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_treeSnapshots = new WeakMap(), _MerkleTreeSnapshotOperationsFacade_instances = new WeakSet(), _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot = async function _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot(treeId) {
|
|
91
|
+
if (__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[treeId]) {
|
|
92
|
+
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[treeId];
|
|
91
93
|
}
|
|
92
94
|
__classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, "f").getSnapshot(__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, "f")), "f");
|
|
93
|
-
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[
|
|
95
|
+
return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[treeId];
|
|
94
96
|
};
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQWUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFhcEg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQVksS0FBbUIsRUFBRSxXQUFtQjs7UUFKcEQsOERBQXVCO1FBQ3ZCLGtFQUFxQjtRQUNyQiw0REFBZ0MsRUFBUyxFQUFDO1FBR3hDLHVCQUFBLElBQUksK0NBQVksS0FBSyxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSxtREFBZ0IsV0FBVyxNQUFBLENBQUM7SUFDbEMsQ0FBQztJQVdELEtBQUssQ0FBQyxhQUFhLENBQTBCLE1BQVUsRUFBRSxLQUE2QjtRQUNwRixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFvQixFQUNwQixLQUE2QixFQUM3QixVQUFrQjtRQUVsQixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJ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
|