@aztec/world-state 0.65.1 → 0.66.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.
Files changed (32) hide show
  1. package/dest/native/merkle_trees_facade.d.ts +3 -1
  2. package/dest/native/merkle_trees_facade.d.ts.map +1 -1
  3. package/dest/native/merkle_trees_facade.js +29 -1
  4. package/dest/native/message.d.ts +43 -15
  5. package/dest/native/message.d.ts.map +1 -1
  6. package/dest/native/message.js +19 -15
  7. package/dest/native/native_world_state.d.ts.map +1 -1
  8. package/dest/native/native_world_state.js +6 -8
  9. package/dest/native/native_world_state_instance.d.ts.map +1 -1
  10. package/dest/native/native_world_state_instance.js +7 -7
  11. package/dest/synchronizer/factory.d.ts.map +1 -1
  12. package/dest/synchronizer/factory.js +5 -1
  13. package/dest/synchronizer/instrumentation.d.ts.map +1 -1
  14. package/dest/synchronizer/instrumentation.js +3 -1
  15. package/dest/world-state-db/merkle_tree_db.d.ts +2 -12
  16. package/dest/world-state-db/merkle_tree_db.d.ts.map +1 -1
  17. package/dest/world-state-db/merkle_tree_operations_facade.d.ts +9 -1
  18. package/dest/world-state-db/merkle_tree_operations_facade.d.ts.map +1 -1
  19. package/dest/world-state-db/merkle_tree_operations_facade.js +13 -1
  20. package/dest/world-state-db/merkle_tree_snapshot_operations_facade.d.ts +1 -0
  21. package/dest/world-state-db/merkle_tree_snapshot_operations_facade.d.ts.map +1 -1
  22. package/dest/world-state-db/merkle_tree_snapshot_operations_facade.js +4 -1
  23. package/package.json +8 -8
  24. package/src/native/merkle_trees_facade.ts +39 -0
  25. package/src/native/message.ts +35 -1
  26. package/src/native/native_world_state.ts +9 -13
  27. package/src/native/native_world_state_instance.ts +10 -12
  28. package/src/synchronizer/factory.ts +6 -0
  29. package/src/synchronizer/instrumentation.ts +3 -1
  30. package/src/world-state-db/merkle_tree_db.ts +2 -14
  31. package/src/world-state-db/merkle_tree_operations_facade.ts +21 -0
  32. package/src/world-state-db/merkle_tree_snapshot_operations_facade.ts +4 -0
@@ -13,6 +13,10 @@ export async function createWorldState(config, client = new NoopTelemetryClient(
13
13
  dataDirectory: config.worldStateDataDirectory ?? config.dataDirectory,
14
14
  dataStoreMapSizeKB: config.worldStateDbMapSizeKb ?? config.dataStoreMapSizeKB,
15
15
  };
16
+ if (!config.l1Contracts?.rollupAddress) {
17
+ throw new Error('Rollup address is required to create a world state synchronizer.');
18
+ }
19
+ // If a data directory is provided in config, then create a persistent store.
16
20
  const merkleTrees = ['true', '1'].includes(process.env.USE_LEGACY_WORLD_STATE ?? '')
17
21
  ? await MerkleTrees.new(await createStore('world-state', newConfig, createDebugLogger('aztec:world-state:lmdb')), client)
18
22
  : newConfig.dataDirectory
@@ -20,4 +24,4 @@ export async function createWorldState(config, client = new NoopTelemetryClient(
20
24
  : await NativeWorldStateService.tmp(config.l1Contracts.rollupAddress, !['true', '1'].includes(process.env.DEBUG_WORLD_STATE));
21
25
  return merkleTrees;
22
26
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXBGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELE1BQTBDLEVBQzFDLGFBQWtELEVBQ2xELE1BQXVCO0lBRXZCLE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsTUFBMEMsRUFDMUMsU0FBMEIsSUFBSSxtQkFBbUIsRUFBRTtJQUVuRCxNQUFNLFNBQVMsR0FBRztRQUNoQixhQUFhLEVBQUUsTUFBTSxDQUFDLHVCQUF1QixJQUFJLE1BQU0sQ0FBQyxhQUFhO1FBQ3JFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLENBQUMsa0JBQWtCO0tBQzNELENBQUM7SUFDckIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQ25CLE1BQU0sV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUN4RixNQUFNLENBQ1A7UUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDekIsQ0FBQyxDQUFDLE1BQU0sdUJBQXVCLENBQUMsR0FBRyxDQUMvQixNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDaEMsU0FBUyxDQUFDLGFBQWEsRUFDdkIsU0FBUyxDQUFDLGtCQUFrQixDQUM3QjtZQUNILENBQUMsQ0FBQyxNQUFNLHVCQUF1QixDQUFDLEdBQUcsQ0FDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ2hDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWtCLENBQUMsQ0FDeEQsQ0FBQztJQUVOLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXBGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsNEJBQTRCLENBQ2hELE1BQTBDLEVBQzFDLGFBQWtELEVBQ2xELE1BQXVCO0lBRXZCLE1BQU0sV0FBVyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsTUFBMEMsRUFDMUMsU0FBMEIsSUFBSSxtQkFBbUIsRUFBRTtJQUVuRCxNQUFNLFNBQVMsR0FBRztRQUNoQixhQUFhLEVBQUUsTUFBTSxDQUFDLHVCQUF1QixJQUFJLE1BQU0sQ0FBQyxhQUFhO1FBQ3JFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLENBQUMsa0JBQWtCO0tBQzNELENBQUM7SUFFckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQ25CLE1BQU0sV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUN4RixNQUFNLENBQ1A7UUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDekIsQ0FBQyxDQUFDLE1BQU0sdUJBQXVCLENBQUMsR0FBRyxDQUMvQixNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDaEMsU0FBUyxDQUFDLGFBQWEsRUFDdkIsU0FBUyxDQUFDLGtCQUFrQixDQUM3QjtZQUNILENBQUMsQ0FBQyxNQUFNLHVCQUF1QixDQUFDLEdBQUcsQ0FDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQ2hDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWtCLENBQUMsQ0FDeEQsQ0FBQztJQUVOLE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/synchronizer/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAiD,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA6FhH,qBAAa,yBAAyB;IAGI,OAAO,CAAC,GAAG;IAFnD,OAAO,CAAC,mBAAmB,CAAwF;gBAEvG,SAAS,EAAE,eAAe,EAAU,GAAG,yCAAyD;IAS5G,OAAO,CAAC,eAAe;IAShB,uBAAuB,CAAC,gBAAgB,EAAE,oBAAoB;CA+BtE"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/synchronizer/instrumentation.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAElG,OAAO,EAAiD,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA+FhH,qBAAa,yBAAyB;IAGI,OAAO,CAAC,GAAG;IAFnD,OAAO,CAAC,mBAAmB,CAAwF;gBAEvG,SAAS,EAAE,eAAe,EAAU,GAAG,yCAAyD;IAS5G,OAAO,CAAC,eAAe;IAShB,uBAAuB,CAAC,gBAAgB,EAAE,oBAAoB;CA+BtE"}
@@ -45,6 +45,7 @@ class TreeInstrumentation {
45
45
  this.treeDbInstrumentation.set('nodes', new TreeDBInstrumentation(meter, treeName, 'nodes'));
46
46
  this.treeDbInstrumentation.set('leaf_preimage', new TreeDBInstrumentation(meter, treeName, 'leaf_preimage'));
47
47
  this.treeDbInstrumentation.set('leaf_indices', new TreeDBInstrumentation(meter, treeName, 'leaf_indices'));
48
+ this.treeDbInstrumentation.set('block_indices', new TreeDBInstrumentation(meter, treeName, 'block_indices'));
48
49
  }
49
50
  updateDBMetrics(dbName, dbStats) {
50
51
  const inst = this.treeDbInstrumentation.get(dbName);
@@ -64,6 +65,7 @@ class TreeInstrumentation {
64
65
  this.updateDBMetrics('leaf_preimage', treeDbStats.leafPreimagesDBStats);
65
66
  this.updateDBMetrics('blocks', treeDbStats.blocksDBStats);
66
67
  this.updateDBMetrics('nodes', treeDbStats.nodesDBStats);
68
+ this.updateDBMetrics('block_indices', treeDbStats.blockIndicesDBStats);
67
69
  }
68
70
  }
69
71
  export class WorldStateInstrumentation {
@@ -93,4 +95,4 @@ export class WorldStateInstrumentation {
93
95
  this.updateTreeStats(worldStateStatus.dbStats.publicDataTreeStats, worldStateStatus.meta.publicDataTreeMeta, MerkleTreeId.PUBLIC_DATA_TREE);
94
96
  }
95
97
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQWdELFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2xHLE1BQU0scUJBQXFCO0lBSXpCLFlBQVksS0FBWSxFQUFFLFFBQXdCLEVBQUUsTUFBb0I7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxNQUFNLElBQUksUUFBUSxFQUFFLEVBQUU7WUFDMUYsV0FBVyxFQUFFLDBDQUEwQyxRQUFRLFNBQVMsTUFBTSxXQUFXO1lBQ3pGLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsa0NBQWtDLE1BQU0sSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUMxRixXQUFXLEVBQUUsc0NBQXNDLFFBQVEsU0FBUyxNQUFNLFdBQVc7WUFDckYsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsV0FBb0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFtQjtJQVd2QixZQUFZLEtBQVksRUFBRSxRQUF3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
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9pbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQWdELFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2xHLE1BQU0scUJBQXFCO0lBSXpCLFlBQVksS0FBWSxFQUFFLFFBQXdCLEVBQUUsTUFBb0I7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxNQUFNLElBQUksUUFBUSxFQUFFLEVBQUU7WUFDMUYsV0FBVyxFQUFFLDBDQUEwQyxRQUFRLFNBQVMsTUFBTSxXQUFXO1lBQ3pGLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsa0NBQWtDLE1BQU0sSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUMxRixXQUFXLEVBQUUsc0NBQXNDLFFBQVEsU0FBUyxNQUFNLFdBQVc7WUFDckYsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsV0FBb0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFtQjtJQVd2QixZQUFZLEtBQVksRUFBRSxRQUF3QixFQUFVLEdBQWdCO1FBQWhCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFWcEUsMEJBQXFCLEdBQTZDLElBQUksR0FBRyxFQUc5RSxDQUFDO1FBUUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxRQUFRLEVBQUUsRUFBRTtZQUM5RSxXQUFXLEVBQUUsMkNBQTJDLFFBQVEsT0FBTztZQUN2RSxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLCtCQUErQixRQUFRLEVBQUUsRUFBRTtZQUMzRSxXQUFXLEVBQUUsdUNBQXVDLFFBQVEsT0FBTztZQUNuRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsd0NBQXdDLFFBQVEsRUFBRSxFQUFFO1lBQzdGLFdBQVcsRUFBRSx1Q0FBdUMsUUFBUSxPQUFPO1lBQ25FLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsc0NBQXNDLFFBQVEsRUFBRSxFQUFFO1lBQ3pGLFdBQVcsRUFBRSxxQ0FBcUMsUUFBUSxPQUFPO1lBQ2pFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsa0NBQWtDLFFBQVEsRUFBRSxFQUFFO1lBQ2pGLFdBQVcsRUFBRSxzQ0FBc0MsUUFBUSxPQUFPO1lBQ2xFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLHFCQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQW9CLEVBQUUsT0FBZ0I7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxXQUF3QixFQUFFLFFBQWtCO1FBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFBWSxTQUEwQixFQUFVLE1BQU0saUJBQWlCLENBQUMsbUNBQW1DLENBQUM7UUFBNUQsUUFBRyxHQUFILEdBQUcsQ0FBeUQ7UUFGcEcsd0JBQW1CLEdBQTJDLElBQUksR0FBRyxFQUFxQyxDQUFDO1FBR2pILE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksbUJBQW1CLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLElBQUksbUJBQW1CLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLG1CQUFtQixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVPLGVBQWUsQ0FBQyxXQUF3QixFQUFFLFFBQWtCLEVBQUUsSUFBa0I7UUFDdEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsK0NBQStDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEYsT0FBTztRQUNULENBQUM7UUFDRCxlQUFlLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsZ0JBQXNDO1FBQ25FLElBQUksQ0FBQyxlQUFlLENBQ2xCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDekMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFDckMsWUFBWSxDQUFDLE9BQU8sQ0FDckIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQ2xCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDekMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFDckMsWUFBWSxDQUFDLHFCQUFxQixDQUNuQyxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsQ0FDbEIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUMxQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3RDLFlBQVksQ0FBQyxjQUFjLENBQzVCLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxDQUNsQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQzNDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFDdkMsWUFBWSxDQUFDLGNBQWMsQ0FDNUIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQ2xCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFDNUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUN4QyxZQUFZLENBQUMsZ0JBQWdCLENBQzlCLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
@@ -1,5 +1,5 @@
1
1
  import { type L2Block, type MerkleTreeId } from '@aztec/circuit-types';
2
- import { type MerkleTreeReadOperations, type MerkleTreeWriteOperations } from '@aztec/circuit-types/interfaces';
2
+ import { type ForkMerkleTreeOperations, type MerkleTreeReadOperations } from '@aztec/circuit-types/interfaces';
3
3
  import { type Fr } from '@aztec/circuits.js';
4
4
  import { type IndexedTreeSnapshot, type TreeSnapshot } from '@aztec/merkle-tree';
5
5
  import { type WorldStateStatusFull, type WorldStateStatusSummary } from '../native/message.js';
@@ -27,7 +27,7 @@ export type TreeSnapshots = {
27
27
  [MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: TreeSnapshot<Fr>;
28
28
  [MerkleTreeId.ARCHIVE]: TreeSnapshot<Fr>;
29
29
  };
30
- export interface MerkleTreeAdminDatabase {
30
+ export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
31
31
  /**
32
32
  * Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
33
33
  * @param block - The L2 block to handle.
@@ -38,16 +38,6 @@ export interface MerkleTreeAdminDatabase {
38
38
  * Gets a handle that allows reading the latest committed state
39
39
  */
40
40
  getCommitted(): MerkleTreeReadOperations;
41
- /**
42
- * Gets a handle that allows reading the state as it was at the given block number
43
- * @param blockNumber - The block number to get the snapshot for
44
- */
45
- getSnapshot(blockNumber: number): MerkleTreeReadOperations;
46
- /**
47
- * Forks the database at its current state.
48
- * @param blockNumber - The block number to fork at. If not provided, the current block number is used.
49
- */
50
- fork(blockNumber?: number): Promise<MerkleTreeWriteOperations>;
51
41
  /**
52
42
  * Removes all historical snapshots up to but not including the given block number
53
43
  * @param toBlockNumber The block number of the new oldest historical block
@@ -1 +1 @@
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,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAChH,OAAO,EAAE,KAAK,EAAE,EAAuE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/F;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,QAA4B,CAAC;AAErE,eAAO,MAAM,6BAA6B,QAAmD,CAAC;AAE9F,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,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9F;;OAEG;IACH,YAAY,IAAI,wBAAwB,CAAC;IAEzC;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAAC;IAE3D;;;OAGG;IACH,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAE/D;;;;OAIG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7E;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnE;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtE;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAErD,yBAAyB;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
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,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC/G,OAAO,EAAE,KAAK,EAAE,EAAuE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/F;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,QAA4B,CAAC;AAErE,eAAO,MAAM,6BAA6B,QAAmD,CAAC;AAE9F,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,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9F;;OAEG;IACH,YAAY,IAAI,wBAAwB,CAAC;IAEzC;;;;OAIG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7E;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEnE;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtE;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAErD,yBAAyB;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
3
  import { type BatchInsertionResult, type MerkleTreeId, type SiblingPath } from '@aztec/circuit-types';
4
- import { type IndexedTreeId, type MerkleTreeLeafType, type MerkleTreeWriteOperations, type TreeInfo } from '@aztec/circuit-types/interfaces';
4
+ import { type IndexedTreeId, type MerkleTreeLeafType, type MerkleTreeWriteOperations, type SequentialInsertionResult, type TreeInfo } from '@aztec/circuit-types/interfaces';
5
5
  import { type Header, type StateReference } from '@aztec/circuits.js';
6
6
  import { type IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
7
7
  import { type MerkleTrees } from './merkle_trees.js';
@@ -103,6 +103,14 @@ export declare class MerkleTreeReadOperationsFacade implements MerkleTreeWriteOp
103
103
  * @returns The data for the leaves to be updated when inserting the new ones.
104
104
  */
105
105
  batchInsert<TreeHeight extends number, SubtreeSiblingPathHeight extends number>(treeId: IndexedTreeId, leaves: Buffer[], subtreeHeight: number): Promise<BatchInsertionResult<TreeHeight, SubtreeSiblingPathHeight>>;
106
+ /**
107
+ * Sequentially inserts multiple leaves into the tree.
108
+ * @param treeId - The ID of the tree.
109
+ * @param leaves - Leaves to insert into the tree.
110
+ * @returns Witnesses for the operations performed.
111
+ */
112
+ sequentialInsert<TreeHeight extends number>(_treeId: IndexedTreeId, _leaves: Buffer[]): Promise<SequentialInsertionResult<TreeHeight>>;
113
+ getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(_treeId: ID, _leafIndices: bigint[]): Promise<(bigint | undefined)[]>;
106
114
  close(): Promise<void>;
107
115
  }
108
116
  //# 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,KAAK,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,8BAA+B,YAAW,yBAAyB;IAClE,SAAS,CAAC,KAAK,EAAE,WAAW;IAAE,SAAS,CAAC,kBAAkB,EAAE,OAAO;gBAAzD,KAAK,EAAE,WAAW,EAAY,kBAAkB,EAAE,OAAO;IAE/E;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpD;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAI5C;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlG;;;;;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,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,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;;;;;OAKG;IACG,eAAe,CAAC,EAAE,SAAS,aAAa,EAC5C,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAK/C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9G;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,YAAY,EACxC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,YAAY,EAClC,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,CAAC;IAMzD;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;OAMG;IACI,WAAW,CAAC,UAAU,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EACnF,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAItE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
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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"}
@@ -114,8 +114,20 @@ export class MerkleTreeReadOperationsFacade {
114
114
  batchInsert(treeId, leaves, subtreeHeight) {
115
115
  return this.trees.batchInsert(treeId, leaves, subtreeHeight);
116
116
  }
117
+ /**
118
+ * Sequentially inserts multiple leaves into the tree.
119
+ * @param treeId - The ID of the tree.
120
+ * @param leaves - Leaves to insert into the tree.
121
+ * @returns Witnesses for the operations performed.
122
+ */
123
+ sequentialInsert(_treeId, _leaves) {
124
+ throw new Error('Method not implemented in legacy merkle tree');
125
+ }
126
+ getBlockNumbersForLeafIndices(_treeId, _leafIndices) {
127
+ throw new Error('Method not implemented in legacy merkle tree');
128
+ }
117
129
  close() {
118
130
  return Promise.resolve();
119
131
  }
120
132
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQXNCLEtBQWtCLEVBQVksa0JBQTJCO1FBQXpELFVBQUssR0FBTCxLQUFLLENBQWE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRW5GOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBMEIsTUFBVSxFQUFFLE1BQWdDO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQW1CLE1BQW9CLEVBQUUsS0FBYTtRQUN4RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckYsT0FBTyxJQUFpQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxxQkFBcUIsQ0FDbkIsTUFBVSxFQUNWLEtBQWE7UUFjYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFVLEVBQ1YsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRixPQUFPLFFBQStDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUEwQixNQUFVLEVBQUUsS0FBNkI7UUFDOUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUNoQixNQUFVLEVBQ1YsS0FBNkIsRUFDN0IsVUFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQ1YsTUFBVSxFQUNWLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUVwRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsTUFBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXLENBQ2hCLE1BQXFCLEVBQ3JCLE1BQWdCLEVBQ2hCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLFlBQXNCLEtBQWtCLEVBQVksa0JBQTJCO1FBQXpELFVBQUssR0FBTCxLQUFLLENBQWE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7SUFBRyxDQUFDO0lBRW5GOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBMEIsTUFBVSxFQUFFLE1BQWdDO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQW1CLE1BQW9CLEVBQUUsS0FBYTtRQUN4RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckYsT0FBTyxJQUFpQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxxQkFBcUIsQ0FDbkIsTUFBVSxFQUNWLEtBQWE7UUFjYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUFVLEVBQ1YsS0FBYTtRQUViLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRixPQUFPLFFBQStDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUEwQixNQUFVLEVBQUUsS0FBNkI7UUFDOUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUNoQixNQUFVLEVBQ1YsS0FBNkIsRUFDN0IsVUFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQ1YsTUFBVSxFQUNWLEtBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUVwRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsTUFBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXLENBQ2hCLE1BQXFCLEVBQ3JCLE1BQWdCLEVBQ2hCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQkFBZ0IsQ0FDckIsT0FBc0IsRUFDdEIsT0FBaUI7UUFFakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCw2QkFBNkIsQ0FDM0IsT0FBVyxFQUNYLFlBQXNCO1FBRXRCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9
@@ -25,6 +25,7 @@ export declare class MerkleTreeSnapshotOperationsFacade implements MerkleTreeRea
25
25
  } | undefined>;
26
26
  getSiblingPath<N extends number>(treeId: MerkleTreeId, index: bigint): Promise<SiblingPath<N>>;
27
27
  getTreeInfo(treeId: MerkleTreeId): Promise<TreeInfo>;
28
+ getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(_a: ID, _b: bigint[]): Promise<(bigint | undefined)[]>;
28
29
  getStateReference(): Promise<StateReference>;
29
30
  getInitialHeader(): Header;
30
31
  }
@@ -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,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA8B,KAAK,MAAM,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,kCAAmC,YAAW,wBAAwB;;gBAKrE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM;IAc7C,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,gBAAgB,IAAI,MAAM;CAG3B"}
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,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA8B,KAAK,MAAM,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIvE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,kCAAmC,YAAW,wBAAwB;;gBAKrE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM;IAc7C,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;IAU1D,6BAA6B,CAAC,EAAE,SAAS,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAIvG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IA+BlD,gBAAgB,IAAI,MAAM;CAG3B"}
@@ -49,6 +49,9 @@ export class MerkleTreeSnapshotOperationsFacade {
49
49
  treeId,
50
50
  };
51
51
  }
52
+ getBlockNumbersForLeafIndices(_a, _b) {
53
+ throw new Error('Not implemented');
54
+ }
52
55
  async getStateReference() {
53
56
  const snapshots = await Promise.all([
54
57
  __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_instances, "m", _MerkleTreeSnapshotOperationsFacade_getTreeSnapshot).call(this, MerkleTreeId.NULLIFIER_TREE),
@@ -70,4 +73,4 @@ _MerkleTreeSnapshotOperationsFacade_treesDb = new WeakMap(), _MerkleTreeSnapshot
70
73
  __classPrivateFieldSet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, await __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treesDb, "f").getTreeSnapshots(__classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_blockNumber, "f")), "f");
71
74
  return __classPrivateFieldGet(this, _MerkleTreeSnapshotOperationsFacade_treeSnapshots, "f")[treeId];
72
75
  };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBT3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQWUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPcEg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQVksS0FBa0IsRUFBRSxXQUFtQjs7UUFKbkQsOERBQXNCO1FBQ3RCLGtFQUFxQjtRQUNyQiw0REFBZ0MsRUFBUyxFQUFDO1FBR3hDLHVCQUFBLElBQUksK0NBQVksS0FBSyxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSxtREFBZ0IsV0FBVyxNQUFBLENBQUM7SUFDbEMsQ0FBQztJQVdELEtBQUssQ0FBQyxhQUFhLENBQTBCLE1BQVUsRUFBRSxLQUE2QjtRQUNwRixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFvQixFQUNwQixLQUE2QixFQUM3QixVQUFrQjtRQUVsQixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJ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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ybGQtc3RhdGUtZGIvbWVya2xlX3RyZWVfc25hcHNob3Rfb3BlcmF0aW9uc19mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBT3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEVBQWUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPcEg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDLFlBQVksS0FBa0IsRUFBRSxXQUFtQjs7UUFKbkQsOERBQXNCO1FBQ3RCLGtFQUFxQjtRQUNyQiw0REFBZ0MsRUFBUyxFQUFDO1FBR3hDLHVCQUFBLElBQUksK0NBQVksS0FBSyxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSxtREFBZ0IsV0FBVyxNQUFBLENBQUM7SUFDbEMsQ0FBQztJQVdELEtBQUssQ0FBQyxhQUFhLENBQTBCLE1BQVUsRUFBRSxLQUE2QjtRQUNwRixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixNQUFvQixFQUNwQixLQUE2QixFQUM3QixVQUFrQjtRQUVsQixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFBLElBQUksMEdBQWlCLE1BQXJCLElBQUksRUFBa0IsTUFBTSxDQUFDLENBQUM7UUFDakQsMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJ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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/world-state",
3
- "version": "0.65.1",
3
+ "version": "0.66.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -62,13 +62,13 @@
62
62
  ]
63
63
  },
64
64
  "dependencies": {
65
- "@aztec/circuit-types": "0.65.1",
66
- "@aztec/circuits.js": "0.65.1",
67
- "@aztec/foundation": "0.65.1",
68
- "@aztec/kv-store": "0.65.1",
69
- "@aztec/merkle-tree": "0.65.1",
70
- "@aztec/telemetry-client": "0.65.1",
71
- "@aztec/types": "0.65.1",
65
+ "@aztec/circuit-types": "0.66.0",
66
+ "@aztec/circuits.js": "0.66.0",
67
+ "@aztec/foundation": "0.66.0",
68
+ "@aztec/kv-store": "0.66.0",
69
+ "@aztec/merkle-tree": "0.66.0",
70
+ "@aztec/telemetry-client": "0.66.0",
71
+ "@aztec/types": "0.66.0",
72
72
  "bindings": "^1.5.0",
73
73
  "msgpackr": "^1.10.2",
74
74
  "tslib": "^2.4.0",
@@ -5,6 +5,7 @@ import {
5
5
  type MerkleTreeLeafType,
6
6
  type MerkleTreeReadOperations,
7
7
  type MerkleTreeWriteOperations,
8
+ type SequentialInsertionResult,
8
9
  SiblingPath,
9
10
  type TreeInfo,
10
11
  } from '@aztec/circuit-types';
@@ -165,6 +166,19 @@ export class MerkleTreesFacade implements MerkleTreeReadOperations {
165
166
  treeId,
166
167
  };
167
168
  }
169
+
170
+ async getBlockNumbersForLeafIndices<ID extends MerkleTreeId>(
171
+ treeId: ID,
172
+ leafIndices: bigint[],
173
+ ): Promise<(bigint | undefined)[]> {
174
+ const response = await this.instance.call(WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES, {
175
+ treeId,
176
+ revision: this.revision,
177
+ leafIndices,
178
+ });
179
+
180
+ return response.blockNumbers.map(x => (x === undefined || x === null ? undefined : BigInt(x)));
181
+ }
168
182
  }
169
183
 
170
184
  export class MerkleTreesForkFacade extends MerkleTreesFacade implements MerkleTreeWriteOperations {
@@ -221,6 +235,31 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade implements MerkleTr
221
235
  };
222
236
  }
223
237
 
238
+ async sequentialInsert<TreeHeight extends number, ID extends IndexedTreeId>(
239
+ treeId: ID,
240
+ rawLeaves: Buffer[],
241
+ ): Promise<SequentialInsertionResult<TreeHeight>> {
242
+ const leaves = rawLeaves.map((leaf: Buffer) => hydrateLeaf(treeId, leaf)).map(serializeLeaf);
243
+ const resp = await this.instance.call(WorldStateMessageType.SEQUENTIAL_INSERT, {
244
+ leaves,
245
+ treeId,
246
+ forkId: this.revision.forkId,
247
+ });
248
+
249
+ return {
250
+ lowLeavesWitnessData: resp.low_leaf_witness_data.map(data => ({
251
+ index: BigInt(data.index),
252
+ leafPreimage: deserializeIndexedLeaf(data.leaf),
253
+ siblingPath: new SiblingPath<TreeHeight>(data.path.length as any, data.path),
254
+ })),
255
+ insertionWitnessData: resp.insertion_witness_data.map(data => ({
256
+ index: BigInt(data.index),
257
+ leafPreimage: deserializeIndexedLeaf(data.leaf),
258
+ siblingPath: new SiblingPath<TreeHeight>(data.path.length as any, data.path),
259
+ })),
260
+ };
261
+ }
262
+
224
263
  public async close(): Promise<void> {
225
264
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
226
265
  await this.instance.call(WorldStateMessageType.DELETE_FORK, { forkId: this.revision.forkId });
@@ -54,12 +54,14 @@ export enum WorldStateMessageType {
54
54
  GET_LEAF_VALUE,
55
55
  GET_LEAF_PREIMAGE,
56
56
  GET_SIBLING_PATH,
57
+ GET_BLOCK_NUMBERS_FOR_LEAF_INDICES,
57
58
 
58
59
  FIND_LEAF_INDEX,
59
60
  FIND_LOW_LEAF,
60
61
 
61
62
  APPEND_LEAVES,
62
63
  BATCH_INSERT,
64
+ SEQUENTIAL_INSERT,
63
65
 
64
66
  UPDATE_ARCHIVE,
65
67
 
@@ -138,6 +140,8 @@ export interface TreeDBStats {
138
140
  leafPreimagesDBStats: DBStats;
139
141
  /** Stats for the 'leaf indices' DB */
140
142
  leafIndicesDBStats: DBStats;
143
+ /** Stats for the 'block indices' DB */
144
+ blockIndicesDBStats: DBStats;
141
145
  }
142
146
 
143
147
  export interface WorldStateMeta {
@@ -188,6 +192,7 @@ export function buildEmptyTreeDBStats() {
188
192
  leafIndicesDBStats: buildEmptyDBStats(),
189
193
  leafKeysDBStats: buildEmptyDBStats(),
190
194
  leafPreimagesDBStats: buildEmptyDBStats(),
195
+ blockIndicesDBStats: buildEmptyDBStats(),
191
196
  } as TreeDBStats;
192
197
  }
193
198
 
@@ -270,6 +275,7 @@ export function sanitiseTreeDBStats(stats: TreeDBStats) {
270
275
  stats.blocksDBStats = sanitiseDBStats(stats.blocksDBStats);
271
276
  stats.leafIndicesDBStats = sanitiseDBStats(stats.leafIndicesDBStats);
272
277
  stats.leafPreimagesDBStats = sanitiseDBStats(stats.leafPreimagesDBStats);
278
+ stats.blockIndicesDBStats = sanitiseDBStats(stats.blockIndicesDBStats);
273
279
  stats.nodesDBStats = sanitiseDBStats(stats.nodesDBStats);
274
280
  stats.mapSize = BigInt(stats.mapSize);
275
281
  return stats;
@@ -343,6 +349,14 @@ interface GetTreeInfoResponse {
343
349
  root: Buffer;
344
350
  }
345
351
 
352
+ interface GetBlockNumbersForLeafIndicesRequest extends WithTreeId, WithWorldStateRevision {
353
+ leafIndices: bigint[];
354
+ }
355
+
356
+ interface GetBlockNumbersForLeafIndicesResponse {
357
+ blockNumbers: bigint[];
358
+ }
359
+
346
360
  interface GetSiblingPathRequest extends WithTreeId, WithLeafIndex, WithWorldStateRevision {}
347
361
  type GetSiblingPathResponse = Buffer[];
348
362
 
@@ -375,6 +389,7 @@ interface AppendLeavesRequest extends WithTreeId, WithForkId, WithLeaves {}
375
389
  interface BatchInsertRequest extends WithTreeId, WithForkId, WithLeaves {
376
390
  subtreeDepth: number;
377
391
  }
392
+
378
393
  interface BatchInsertResponse {
379
394
  low_leaf_witness_data: ReadonlyArray<{
380
395
  leaf: SerializedIndexedLeaf;
@@ -385,6 +400,21 @@ interface BatchInsertResponse {
385
400
  subtree_path: Tuple<Buffer, number>;
386
401
  }
387
402
 
403
+ interface SequentialInsertRequest extends WithTreeId, WithForkId, WithLeaves {}
404
+
405
+ interface SequentialInsertResponse {
406
+ low_leaf_witness_data: ReadonlyArray<{
407
+ leaf: SerializedIndexedLeaf;
408
+ index: bigint | number;
409
+ path: Tuple<Buffer, number>;
410
+ }>;
411
+ insertion_witness_data: ReadonlyArray<{
412
+ leaf: SerializedIndexedLeaf;
413
+ index: bigint | number;
414
+ path: Tuple<Buffer, number>;
415
+ }>;
416
+ }
417
+
388
418
  interface UpdateArchiveRequest extends WithForkId {
389
419
  blockStateRef: BlockStateReference;
390
420
  blockHeaderHash: Buffer;
@@ -397,7 +427,7 @@ interface SyncBlockRequest {
397
427
  paddedNoteHashes: readonly SerializedLeafValue[];
398
428
  paddedL1ToL2Messages: readonly SerializedLeafValue[];
399
429
  paddedNullifiers: readonly SerializedLeafValue[];
400
- batchesOfPublicDataWrites: readonly SerializedLeafValue[][];
430
+ publicDataWrites: readonly SerializedLeafValue[];
401
431
  }
402
432
 
403
433
  interface CreateForkRequest {
@@ -429,12 +459,14 @@ export type WorldStateRequest = {
429
459
  [WorldStateMessageType.GET_LEAF_VALUE]: GetLeafRequest;
430
460
  [WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageRequest;
431
461
  [WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathRequest;
462
+ [WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesRequest;
432
463
 
433
464
  [WorldStateMessageType.FIND_LEAF_INDEX]: FindLeafIndexRequest;
434
465
  [WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafRequest;
435
466
 
436
467
  [WorldStateMessageType.APPEND_LEAVES]: AppendLeavesRequest;
437
468
  [WorldStateMessageType.BATCH_INSERT]: BatchInsertRequest;
469
+ [WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertRequest;
438
470
 
439
471
  [WorldStateMessageType.UPDATE_ARCHIVE]: UpdateArchiveRequest;
440
472
 
@@ -463,12 +495,14 @@ export type WorldStateResponse = {
463
495
  [WorldStateMessageType.GET_LEAF_VALUE]: GetLeafResponse;
464
496
  [WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageResponse;
465
497
  [WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathResponse;
498
+ [WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesResponse;
466
499
 
467
500
  [WorldStateMessageType.FIND_LEAF_INDEX]: FindLeafIndexResponse;
468
501
  [WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafResponse;
469
502
 
470
503
  [WorldStateMessageType.APPEND_LEAVES]: void;
471
504
  [WorldStateMessageType.BATCH_INSERT]: BatchInsertResponse;
505
+ [WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertResponse;
472
506
 
473
507
  [WorldStateMessageType.UPDATE_ARCHIVE]: void;
474
508
 
@@ -178,18 +178,14 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
178
178
  .flatMap(txEffect => padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX))
179
179
  .map(nullifier => new NullifierLeaf(nullifier));
180
180
 
181
- // We insert the public data tree leaves with one batch per tx to avoid updating the same key twice
182
- const batchesOfPublicDataWrites: PublicDataTreeLeaf[][] = [];
183
- for (const txEffect of paddedTxEffects) {
184
- batchesOfPublicDataWrites.push(
185
- txEffect.publicDataWrites.map(write => {
186
- if (write.isEmpty()) {
187
- throw new Error('Public data write must not be empty when syncing');
188
- }
189
- return new PublicDataTreeLeaf(write.leafSlot, write.value);
190
- }),
191
- );
192
- }
181
+ const publicDataWrites: PublicDataTreeLeaf[] = paddedTxEffects.flatMap(txEffect => {
182
+ return txEffect.publicDataWrites.map(write => {
183
+ if (write.isEmpty()) {
184
+ throw new Error('Public data write must not be empty when syncing');
185
+ }
186
+ return new PublicDataTreeLeaf(write.leafSlot, write.value);
187
+ });
188
+ });
193
189
 
194
190
  return await this.instance.call(
195
191
  WorldStateMessageType.SYNC_BLOCK,
@@ -199,7 +195,7 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
199
195
  paddedL1ToL2Messages: paddedL1ToL2Messages.map(serializeLeaf),
200
196
  paddedNoteHashes: paddedNoteHashes.map(serializeLeaf),
201
197
  paddedNullifiers: paddedNullifiers.map(serializeLeaf),
202
- batchesOfPublicDataWrites: batchesOfPublicDataWrites.map(batch => batch.map(serializeLeaf)),
198
+ publicDataWrites: publicDataWrites.map(serializeLeaf),
203
199
  blockStateRef: blockStateReference(l2Block.header.state),
204
200
  },
205
201
  this.sanitiseAndCacheSummaryFromFull.bind(this),
@@ -10,7 +10,7 @@ import {
10
10
  NULLIFIER_TREE_HEIGHT,
11
11
  PUBLIC_DATA_TREE_HEIGHT,
12
12
  } from '@aztec/circuits.js';
13
- import { createDebugLogger, fmtLogData } from '@aztec/foundation/log';
13
+ import { createDebugLogger } from '@aztec/foundation/log';
14
14
  import { SerialQueue } from '@aztec/foundation/queue';
15
15
  import { Timer } from '@aztec/foundation/timer';
16
16
 
@@ -200,12 +200,12 @@ export class NativeWorldState implements NativeWorldStateInstance {
200
200
  data['notesCount'] = body.paddedNoteHashes.length;
201
201
  data['nullifiersCount'] = body.paddedNullifiers.length;
202
202
  data['l1ToL2MessagesCount'] = body.paddedL1ToL2Messages.length;
203
- data['publicDataWritesCount'] = body.batchesOfPublicDataWrites.reduce((acc, batch) => acc + batch.length, 0);
203
+ data['publicDataWritesCount'] = body.publicDataWrites.length;
204
204
  }
205
205
 
206
- this.log.debug(`Calling messageId=${messageId} ${WorldStateMessageType[messageType]} with ${fmtLogData(data)}`);
206
+ this.log.trace(`Calling messageId=${messageId} ${WorldStateMessageType[messageType]}`, data);
207
207
  } else {
208
- this.log.debug(`Calling messageId=${messageId} ${WorldStateMessageType[messageType]}`);
208
+ this.log.trace(`Calling messageId=${messageId} ${WorldStateMessageType[messageType]}`);
209
209
  }
210
210
 
211
211
  const timer = new Timer();
@@ -248,14 +248,12 @@ export class NativeWorldState implements NativeWorldStateInstance {
248
248
  const response = TypedMessage.fromMessagePack<T, WorldStateResponse[T]>(decodedResponse);
249
249
  const decodingDuration = timer.ms() - callDuration;
250
250
  const totalDuration = timer.ms();
251
- this.log.debug(
252
- `Call messageId=${messageId} ${WorldStateMessageType[messageType]} took (ms) ${fmtLogData({
253
- totalDuration,
254
- encodingDuration,
255
- callDuration,
256
- decodingDuration,
257
- })}`,
258
- );
251
+ this.log.trace(`Call messageId=${messageId} ${WorldStateMessageType[messageType]} took (ms)`, {
252
+ totalDuration,
253
+ encodingDuration,
254
+ callDuration,
255
+ decodingDuration,
256
+ });
259
257
 
260
258
  if (response.header.requestId !== request.header.messageId) {
261
259
  throw new Error(
@@ -27,6 +27,12 @@ export async function createWorldState(
27
27
  dataDirectory: config.worldStateDataDirectory ?? config.dataDirectory,
28
28
  dataStoreMapSizeKB: config.worldStateDbMapSizeKb ?? config.dataStoreMapSizeKB,
29
29
  } as DataStoreConfig;
30
+
31
+ if (!config.l1Contracts?.rollupAddress) {
32
+ throw new Error('Rollup address is required to create a world state synchronizer.');
33
+ }
34
+
35
+ // If a data directory is provided in config, then create a persistent store.
30
36
  const merkleTrees = ['true', '1'].includes(process.env.USE_LEGACY_WORLD_STATE ?? '')
31
37
  ? await MerkleTrees.new(
32
38
  await createStore('world-state', newConfig, createDebugLogger('aztec:world-state:lmdb')),
@@ -5,7 +5,7 @@ import { type Gauge, type Meter, type TelemetryClient, ValueType } from '@aztec/
5
5
  import { type DBStats, type TreeDBStats, type TreeMeta, type WorldStateStatusFull } from '../native/message.js';
6
6
 
7
7
  type TreeTypeString = 'nullifier' | 'note_hash' | 'archive' | 'message' | 'public_data';
8
- type DBTypeString = 'leaf_preimage' | 'leaf_indices' | 'nodes' | 'blocks';
8
+ type DBTypeString = 'leaf_preimage' | 'leaf_indices' | 'nodes' | 'blocks' | 'block_indices';
9
9
 
10
10
  class TreeDBInstrumentation {
11
11
  private dbNumItems: Gauge;
@@ -70,6 +70,7 @@ class TreeInstrumentation {
70
70
  this.treeDbInstrumentation.set('nodes', new TreeDBInstrumentation(meter, treeName, 'nodes'));
71
71
  this.treeDbInstrumentation.set('leaf_preimage', new TreeDBInstrumentation(meter, treeName, 'leaf_preimage'));
72
72
  this.treeDbInstrumentation.set('leaf_indices', new TreeDBInstrumentation(meter, treeName, 'leaf_indices'));
73
+ this.treeDbInstrumentation.set('block_indices', new TreeDBInstrumentation(meter, treeName, 'block_indices'));
73
74
  }
74
75
 
75
76
  private updateDBMetrics(dbName: DBTypeString, dbStats: DBStats) {
@@ -92,6 +93,7 @@ class TreeInstrumentation {
92
93
  this.updateDBMetrics('leaf_preimage', treeDbStats.leafPreimagesDBStats);
93
94
  this.updateDBMetrics('blocks', treeDbStats.blocksDBStats);
94
95
  this.updateDBMetrics('nodes', treeDbStats.nodesDBStats);
96
+ this.updateDBMetrics('block_indices', treeDbStats.blockIndicesDBStats);
95
97
  }
96
98
  }
97
99
 
@@ -1,5 +1,5 @@
1
1
  import { type L2Block, type MerkleTreeId } from '@aztec/circuit-types';
2
- import { type MerkleTreeReadOperations, type MerkleTreeWriteOperations } from '@aztec/circuit-types/interfaces';
2
+ import { type ForkMerkleTreeOperations, type MerkleTreeReadOperations } from '@aztec/circuit-types/interfaces';
3
3
  import { type Fr, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/circuits.js';
4
4
  import { type IndexedTreeSnapshot, type TreeSnapshot } from '@aztec/merkle-tree';
5
5
 
@@ -32,7 +32,7 @@ export type TreeSnapshots = {
32
32
  [MerkleTreeId.ARCHIVE]: TreeSnapshot<Fr>;
33
33
  };
34
34
 
35
- export interface MerkleTreeAdminDatabase {
35
+ export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
36
36
  /**
37
37
  * Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
38
38
  * @param block - The L2 block to handle.
@@ -45,18 +45,6 @@ export interface MerkleTreeAdminDatabase {
45
45
  */
46
46
  getCommitted(): MerkleTreeReadOperations;
47
47
 
48
- /**
49
- * Gets a handle that allows reading the state as it was at the given block number
50
- * @param blockNumber - The block number to get the snapshot for
51
- */
52
- getSnapshot(blockNumber: number): MerkleTreeReadOperations;
53
-
54
- /**
55
- * Forks the database at its current state.
56
- * @param blockNumber - The block number to fork at. If not provided, the current block number is used.
57
- */
58
- fork(blockNumber?: number): Promise<MerkleTreeWriteOperations>;
59
-
60
48
  /**
61
49
  * Removes all historical snapshots up to but not including the given block number
62
50
  * @param toBlockNumber The block number of the new oldest historical block