@aztec/world-state 3.0.0-nightly.20251209 → 3.0.0-nightly.20251210
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/native/merkle_trees_facade.d.ts +2 -2
- package/dest/native/merkle_trees_facade.d.ts.map +1 -1
- package/dest/native/merkle_trees_facade.js +1 -1
- package/dest/native/message.d.ts +2 -2
- package/dest/native/message.d.ts.map +1 -1
- package/dest/native/message.js +1 -1
- package/dest/native/native_world_state.d.ts +3 -3
- package/dest/native/native_world_state.d.ts.map +1 -1
- package/dest/native/native_world_state.js +3 -2
- package/dest/synchronizer/server_world_state_synchronizer.d.ts +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.js +9 -8
- package/dest/test/utils.d.ts +7 -13
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +38 -79
- package/dest/testing.d.ts +2 -2
- package/dest/testing.d.ts.map +1 -1
- package/dest/testing.js +1 -1
- package/dest/world-state-db/merkle_tree_db.d.ts +4 -6
- package/dest/world-state-db/merkle_tree_db.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/native/merkle_trees_facade.ts +1 -1
- package/src/native/message.ts +1 -1
- package/src/native/native_world_state.ts +3 -6
- package/src/synchronizer/server_world_state_synchronizer.ts +16 -13
- package/src/test/utils.ts +67 -126
- package/src/testing.ts +1 -1
- package/src/world-state-db/merkle_tree_db.ts +3 -9
- package/dest/synchronizer/utils.d.ts +0 -11
- package/dest/synchronizer/utils.d.ts.map +0 -1
- package/dest/synchronizer/utils.js +0 -59
- package/src/synchronizer/utils.ts +0 -83
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { type IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
|
|
4
4
|
import type { BatchInsertionResult, IndexedTreeId, MerkleTreeLeafType, MerkleTreeReadOperations, MerkleTreeWriteOperations, SequentialInsertionResult, TreeInfo } from '@aztec/stdlib/interfaces/server';
|
|
5
5
|
import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
@@ -46,4 +46,4 @@ export declare class MerkleTreesForkFacade extends MerkleTreesFacade implements
|
|
|
46
46
|
revertAllCheckpoints(): Promise<void>;
|
|
47
47
|
}
|
|
48
48
|
export declare function serializeLeaf(leaf: Fr | NullifierLeaf | PublicDataTreeLeaf): SerializedLeafValue;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVzX2ZhY2FkZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXJrbGVfdHJlZXNfZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQ1Ysb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsUUFBUSxFQUNULE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBRWIsa0JBQWtCLEVBRW5CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUF5QixjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSWxHLE9BQU8sRUFFTCxLQUFLLG1CQUFtQixFQUl6QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpGLHFCQUFhLGlCQUFrQixZQUFXLHdCQUF3QjtJQUU5RCxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSx3QkFBd0I7SUFDckQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVztJQUM3QyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxrQkFBa0I7SUFIakQsWUFDcUIsUUFBUSxFQUFFLHdCQUF3QixFQUNsQyxhQUFhLEVBQUUsV0FBVyxFQUMxQixRQUFRLEVBQUUsa0JBQWtCLEVBQzdDO0lBRUosZ0JBQWdCLElBQUksV0FBVyxDQUU5QjtJQUVELFdBQVcsSUFBSSw0QkFBNEIsQ0FFMUM7SUFFRCxlQUFlLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUVqSDtJQUVLLGdCQUFnQixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQ3JDLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUN6QyxPQUFPLENBQUMsQ0FBQztRQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0tBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBYWxFO0lBRUssb0JBQW9CLENBQ3hCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUMxQyxVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQWVqQztJQUVLLGVBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQyxDQVE1RztJQUVLLFlBQVksQ0FBQyxFQUFFLFNBQVMsWUFBWSxFQUN4QyxNQUFNLEVBQUUsRUFBRSxFQUNWLFNBQVMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FpQjdDO0lBRUsscUJBQXFCLENBQ3pCLE1BQU0sRUFBRSxhQUFhLEVBQ3JCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUFDLGNBQWMsRUFBRSxPQUFPLENBQUE7S0FBRSxHQUFHLFNBQVMsQ0FBQyxDQVVqRTtJQUVLLGNBQWMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBUXZHO0lBRUssaUJBQWlCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQWFqRDtJQUVLLHdCQUF3QixJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FXeEQ7SUFFSyxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBWXpEO0lBRUssNkJBQTZCLENBQUMsRUFBRSxTQUFTLFlBQVksRUFDekQsTUFBTSxFQUFFLEVBQUUsRUFDVixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLENBUXRDO0NBQ0Y7QUFFRCxxQkFBYSxxQkFBc0IsU0FBUSxpQkFBa0IsWUFBVyx5QkFBeUI7SUFDL0YsWUFBWSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBSXZHO0lBQ0ssYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU10RDtJQUVLLFlBQVksQ0FBQyxFQUFFLFNBQVMsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU12RztJQUVLLFdBQVcsQ0FBQyxVQUFVLFNBQVMsTUFBTSxFQUFFLHdCQUF3QixTQUFTLE1BQU0sRUFBRSxFQUFFLFNBQVMsYUFBYSxFQUM1RyxNQUFNLEVBQUUsRUFBRSxFQUNWLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsYUFBYSxFQUFFLE1BQU0sR0FDcEIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBeUJyRTtJQUVLLGdCQUFnQixDQUFDLFVBQVUsU0FBUyxNQUFNLEVBQUUsRUFBRSxTQUFTLGFBQWEsRUFDeEUsTUFBTSxFQUFFLEVBQUUsRUFDVixTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQ2xCLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQW9CaEQ7SUFFWSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdsQztJQUVZLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHN0M7SUFFWSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRzdDO0lBRVksZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUc3QztJQUVZLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHakQ7SUFFWSxvQkFBb0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBR2pEO0NBQ0Y7QUFjRCx3QkFBZ0IsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsYUFBYSxHQUFHLGtCQUFrQixHQUFHLG1CQUFtQixDQVFoRyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import { SiblingPath } from '@aztec/foundation/trees';
|
|
5
5
|
import { MerkleTreeId, NullifierLeaf, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
|
package/dest/native/message.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
5
5
|
import type { StateReference } from '@aztec/stdlib/tx';
|
|
@@ -349,4 +349,4 @@ export declare function treeStateReferenceToSnapshot([root, size]: TreeStateRefe
|
|
|
349
349
|
export declare function treeStateReference(snapshot: AppendOnlyTreeSnapshot): readonly [Buffer<ArrayBufferLike>, bigint];
|
|
350
350
|
export declare function blockStateReference(state: StateReference): BlockStateReference;
|
|
351
351
|
export {};
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsb0JBQVkscUJBQXFCO0lBQy9CLGFBQWEsTUFBTTtJQUNuQixtQkFBbUIsTUFBQTtJQUNuQiwyQkFBMkIsTUFBQTtJQUUzQixjQUFjLE1BQUE7SUFDZCxpQkFBaUIsTUFBQTtJQUNqQixnQkFBZ0IsTUFBQTtJQUNoQixrQ0FBa0MsTUFBQTtJQUVsQyxpQkFBaUIsTUFBQTtJQUNqQixhQUFhLE1BQUE7SUFDYixrQkFBa0IsTUFBQTtJQUVsQixhQUFhLE1BQUE7SUFDYixZQUFZLE1BQUE7SUFDWixpQkFBaUIsTUFBQTtJQUVqQixjQUFjLE1BQUE7SUFFZCxNQUFNLE1BQUE7SUFDTixRQUFRLE1BQUE7SUFFUixVQUFVLE1BQUE7SUFFVixXQUFXLE1BQUE7SUFDWCxXQUFXLE1BQUE7SUFFWCxlQUFlLE1BQUE7SUFDZixhQUFhLE1BQUE7SUFDYix3QkFBd0IsTUFBQTtJQUV4QixVQUFVLE1BQUE7SUFFVixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNq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
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsb0JBQVkscUJBQXFCO0lBQy9CLGFBQWEsTUFBTTtJQUNuQixtQkFBbUIsTUFBQTtJQUNuQiwyQkFBMkIsTUFBQTtJQUUzQixjQUFjLE1BQUE7SUFDZCxpQkFBaUIsTUFBQTtJQUNqQixnQkFBZ0IsTUFBQTtJQUNoQixrQ0FBa0MsTUFBQTtJQUVsQyxpQkFBaUIsTUFBQTtJQUNqQixhQUFhLE1BQUE7SUFDYixrQkFBa0IsTUFBQTtJQUVsQixhQUFhLE1BQUE7SUFDYixZQUFZLE1BQUE7SUFDWixpQkFBaUIsTUFBQTtJQUVqQixjQUFjLE1BQUE7SUFFZCxNQUFNLE1BQUE7SUFDTixRQUFRLE1BQUE7SUFFUixVQUFVLE1BQUE7SUFFVixXQUFXLE1BQUE7SUFDWCxXQUFXLE1BQUE7SUFFWCxlQUFlLE1BQUE7SUFDZixhQUFhLE1BQUE7SUFDYix3QkFBd0IsTUFBQTtJQUV4QixVQUFVLE1BQUE7SUFFVixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNq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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/native/message.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/native/message.ts"],"names":[],"mappings":"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"}
|
package/dest/native/message.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
4
4
|
export var WorldStateMessageType = /*#__PURE__*/ function(WorldStateMessageType) {
|
|
5
5
|
WorldStateMessageType[WorldStateMessageType["GET_TREE_INFO"] = 100] = "GET_TREE_INFO";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { type Logger } from '@aztec/foundation/log';
|
|
5
5
|
import type { L2BlockNew } from '@aztec/stdlib/block';
|
|
6
6
|
import type { IndexedTreeId, MerkleTreeReadOperations, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
@@ -30,7 +30,7 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
30
30
|
getSnapshot(blockNumber: BlockNumber): MerkleTreeReadOperations;
|
|
31
31
|
fork(blockNumber?: BlockNumber): Promise<MerkleTreeWriteOperations>;
|
|
32
32
|
getInitialHeader(): BlockHeader;
|
|
33
|
-
handleL2BlockAndMessages(l2Block: L2BlockNew, l1ToL2Messages: Fr[]
|
|
33
|
+
handleL2BlockAndMessages(l2Block: L2BlockNew, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull>;
|
|
34
34
|
close(): Promise<void>;
|
|
35
35
|
private buildInitialHeader;
|
|
36
36
|
private sanitizeAndCacheSummaryFromFull;
|
|
@@ -60,4 +60,4 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
60
60
|
backupTo(dstPath: string, compact?: boolean): Promise<Record<Exclude<SnapshotDataKeys, 'archiver'>, string>>;
|
|
61
61
|
}
|
|
62
62
|
export declare const NATIVE_WORLD_STATE_DBS: readonly [readonly ["l1-to-l2-message-tree", "L1ToL2MessageTree"], readonly ["archive-tree", "ArchiveTree"], readonly ["public-data-tree", "PublicDataTree"], readonly ["note-hash-tree", "NoteHashTree"], readonly ["nullifier-tree", "NullifierTree"]];
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlL25hdGl2ZV93b3JsZF9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDMUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBK0IsS0FBSyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxXQUFXLEVBQXlDLE1BQU0sa0JBQWtCLENBQUM7QUFTdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSx1QkFBdUIsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpHLE9BQU8sRUFFTCxLQUFLLG9CQUFvQixFQUN6QixLQUFLLHVCQUF1QixFQUs3QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUlwRSxlQUFPLE1BQU0sc0JBQXNCLElBQUksQ0FBQztBQUV4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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
2
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import { fromEntries, padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
7
7
|
import { createLogger } from '@aztec/foundation/log';
|
|
8
8
|
import { DatabaseVersionManager } from '@aztec/stdlib/database-version';
|
|
@@ -127,7 +127,8 @@ export class NativeWorldStateService {
|
|
|
127
127
|
getInitialHeader() {
|
|
128
128
|
return this.initialHeader;
|
|
129
129
|
}
|
|
130
|
-
async handleL2BlockAndMessages(l2Block, l1ToL2Messages
|
|
130
|
+
async handleL2BlockAndMessages(l2Block, l1ToL2Messages) {
|
|
131
|
+
const isFirstBlock = l2Block.indexWithinCheckpoint === 0;
|
|
131
132
|
if (!isFirstBlock && l1ToL2Messages.length > 0) {
|
|
132
133
|
throw new Error(`L1 to L2 messages must be empty for non-first blocks, but got ${l1ToL2Messages.length} messages for block ${l2Block.number}.`);
|
|
133
134
|
}
|
|
@@ -65,4 +65,4 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
65
65
|
*/
|
|
66
66
|
private setCurrentState;
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9zZXJ2ZXJfd29ybGRfc3RhdGVfc3luY2hyb25pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHbEUsT0FBTyxLQUFLLEVBR1YsYUFBYSxFQUNiLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUM5QixNQUFNLEVBQ1AsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBR0wsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyw0QkFBNEIsRUFDbEMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFnQixLQUFLLHdCQUF3QixFQUFFLEtBQUsseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVsRixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3BELFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0FBRWpDOzs7O0dBSUc7QUFDSCxxQkFBYSw0QkFDWCxZQUFXLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLHlCQUF5QjtJQWlCMUYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBbkJ0QixPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUEyQjtJQUUvRCxPQUFPLENBQUMsd0JBQXdCLENBQW9CO0lBQ3BELE9BQU8sQ0FBQyxhQUFhLENBQXFCO0lBQzFDLE9BQU8sQ0FBQyxZQUFZLENBQXVEO0lBQzNFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBaUY7SUFFN0csT0FBTyxDQUFDLFdBQVcsQ0FBZ0M7SUFDbkQsU0FBUyxDQUFDLFdBQVcsRUFBRSxhQUFhLEdBQUcsU0FBUyxDQUFDO0lBSWpELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBMEI7SUFFbkQsWUFDbUIsWUFBWSxFQUFFLHVCQUF1QixFQUNyQyxhQUFhLEVBQUUsYUFBYSxHQUFHLG1CQUFtQixFQUNsRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQ2pDLGVBQWUsNEJBQXNELEVBQzVELEdBQUcsR0FBRSxNQUFvQyxFQVMzRDtJQUVNLFlBQVksSUFBSSx3QkFBd0IsQ0FFOUM7SUFFTSxXQUFXLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyx3QkFBd0IsQ0FFckU7SUFFTSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUV6RTtJQUVNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUVsSDtJQUVNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRTVCO0lBRVksS0FBSyxtRkFnQ2pCO0lBRUQsU0FBUyxDQUFDLGlCQUFpQixJQUFJLGFBQWEsQ0FRM0M7SUFFWSxJQUFJLGtCQU9oQjtJQUVZLE1BQU0sSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FhM0Q7SUFFWSxvQkFBb0IseUJBRWhDO0lBRVksUUFBUSxrQkFJcEI7SUFFTSxVQUFVLFNBT2hCO0lBRUQ7Ozs7O09BS0c7SUFDVSxhQUFhLENBQ3hCLGlCQUFpQixDQUFDLEVBQUUsV0FBVyxFQUMvQiwyQkFBMkIsQ0FBQyxFQUFFLE9BQU8sR0FDcEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQTZDdEI7SUFFRCxvR0FBb0c7SUFDdkYsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FhNUU7SUFFRCxnR0FBZ0c7SUFDbkYsU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FVeEM7SUFFRCxvREFBb0Q7SUFDdkMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FlNUU7WUFPYSxjQUFjO1lBeUNkLGFBQWE7WUFnQmIsb0JBQW9CO0lBZWxDLE9BQU8sQ0FBQyxpQkFBaUI7WUFNWCxpQkFBaUI7SUFRL0I7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLGVBQWU7Q0FJeEIifQ==
|
|
@@ -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,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,KAAK,EAGV,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,MAAM,EACP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAClC,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAgB,KAAK,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGlH,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
|
7
7
|
import { TraceableL2BlockStream, getTelemetryClient } from '@aztec/telemetry-client';
|
|
8
8
|
import { WorldStateInstrumentation } from '../instrumentation/instrumentation.js';
|
|
9
9
|
import { WorldStateSynchronizerError } from './errors.js';
|
|
10
|
-
import { findFirstBlocksInCheckpoints } from './utils.js';
|
|
11
10
|
/**
|
|
12
11
|
* Synchronizes the world state with the L2 blocks from a L2BlockSource via a block stream.
|
|
13
12
|
* The synchronizer will download the L2 blocks from the L2BlockSource and update the merkle trees.
|
|
@@ -224,12 +223,15 @@ import { findFirstBlocksInCheckpoints } from './utils.js';
|
|
|
224
223
|
* @returns Whether the block handled was produced by this same node.
|
|
225
224
|
*/ async handleL2Blocks(l2Blocks) {
|
|
226
225
|
this.log.trace(`Handling L2 blocks ${l2Blocks[0].number} to ${l2Blocks.at(-1).number}`);
|
|
227
|
-
|
|
226
|
+
// Fetch the L1->L2 messages for the first block in a checkpoint.
|
|
227
|
+
const messagesForBlocks = new Map();
|
|
228
|
+
await Promise.all(l2Blocks.filter((b)=>b.indexWithinCheckpoint === 0).map(async (block)=>{
|
|
229
|
+
const l1ToL2Messages = await this.l2BlockSource.getL1ToL2Messages(block.checkpointNumber);
|
|
230
|
+
messagesForBlocks.set(block.number, l1ToL2Messages);
|
|
231
|
+
}));
|
|
228
232
|
let updateStatus = undefined;
|
|
229
233
|
for (const block of l2Blocks){
|
|
230
|
-
const
|
|
231
|
-
const isFirstBlock = firstBlocksInCheckpoints.has(block.number);
|
|
232
|
-
const [duration, result] = await elapsed(()=>this.handleL2Block(block, l1ToL2Messages, isFirstBlock));
|
|
234
|
+
const [duration, result] = await elapsed(()=>this.handleL2Block(block, messagesForBlocks.get(block.number) ?? []));
|
|
233
235
|
this.log.info(`World state updated with L2 block ${block.number}`, {
|
|
234
236
|
eventName: 'l2-block-handled',
|
|
235
237
|
duration,
|
|
@@ -250,14 +252,13 @@ import { findFirstBlocksInCheckpoints } from './utils.js';
|
|
|
250
252
|
* @param l2Block - The L2 block to handle.
|
|
251
253
|
* @param l1ToL2Messages - The L1 to L2 messages for the block.
|
|
252
254
|
* @returns Whether the block handled was produced by this same node.
|
|
253
|
-
*/ async handleL2Block(l2Block, l1ToL2Messages
|
|
254
|
-
// If the above check succeeds, we can proceed to handle the block.
|
|
255
|
+
*/ async handleL2Block(l2Block, l1ToL2Messages) {
|
|
255
256
|
this.log.trace(`Pushing L2 block ${l2Block.number} to merkle tree db `, {
|
|
256
257
|
blockNumber: l2Block.number,
|
|
257
258
|
blockHash: await l2Block.hash().then((h)=>h.toString()),
|
|
258
259
|
l1ToL2Messages: l1ToL2Messages.map((msg)=>msg.toString())
|
|
259
260
|
});
|
|
260
|
-
const result = await this.merkleTreeDb.handleL2BlockAndMessages(l2Block, l1ToL2Messages
|
|
261
|
+
const result = await this.merkleTreeDb.handleL2BlockAndMessages(l2Block, l1ToL2Messages);
|
|
261
262
|
if (this.currentState === WorldStateRunningState.SYNCHING && l2Block.number >= this.latestBlockNumberAtStart) {
|
|
262
263
|
this.setCurrentState(WorldStateRunningState.RUNNING);
|
|
263
264
|
this.syncPromise.resolve();
|
package/dest/test/utils.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { BlockNumber, type CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { L2BlockNew } from '@aztec/stdlib/block';
|
|
4
|
-
import { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
5
4
|
import type { MerkleTreeReadOperations, MerkleTreeWriteOperations } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
import { mockCheckpointAndMessages } from '@aztec/stdlib/testing';
|
|
6
6
|
import type { NativeWorldStateService } from '../native/native_world_state.js';
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function updateBlockState(block: L2BlockNew, l1ToL2Messages: Fr[], fork: MerkleTreeWriteOperations): Promise<void>;
|
|
8
|
+
export declare function mockBlock(blockNum: BlockNumber, size: number, fork: MerkleTreeWriteOperations, maxEffects?: number | undefined, numL1ToL2Messages?: number, isFirstBlockInCheckpoint?: boolean): Promise<{
|
|
8
9
|
block: L2BlockNew;
|
|
9
10
|
messages: Fr[];
|
|
10
11
|
}>;
|
|
@@ -16,17 +17,10 @@ export declare function mockBlocks(from: BlockNumber, count: number, numTxs: num
|
|
|
16
17
|
blocks: L2BlockNew[];
|
|
17
18
|
messages: Fr[][];
|
|
18
19
|
}>;
|
|
19
|
-
export declare function
|
|
20
|
-
|
|
21
|
-
startBlockNumber?: BlockNumber;
|
|
22
|
-
numBlocks?: number;
|
|
23
|
-
numTxsPerBlock?: number;
|
|
24
|
-
numL1ToL2Messages?: number;
|
|
25
|
-
fork?: MerkleTreeWriteOperations;
|
|
26
|
-
}): Promise<{
|
|
27
|
-
checkpoint: Checkpoint;
|
|
20
|
+
export declare function mockCheckpoint(checkpointNumber: CheckpointNumber, fork: MerkleTreeWriteOperations, options?: Partial<Parameters<typeof mockCheckpointAndMessages>[1]>): Promise<{
|
|
21
|
+
checkpoint: import("../../../stdlib/dest/checkpoint/checkpoint.js").Checkpoint;
|
|
28
22
|
messages: Fr[];
|
|
29
23
|
}>;
|
|
30
24
|
export declare function assertSameState(forkA: MerkleTreeReadOperations, forkB: MerkleTreeReadOperations): Promise<void>;
|
|
31
25
|
export declare function compareChains(left: MerkleTreeReadOperations, right: MerkleTreeReadOperations): Promise<void>;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLEVBRVYsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUMxQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBc0IsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FLHdCQUFzQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLGlCQThDOUc7QUFFRCx3QkFBc0IsU0FBUyxDQUM3QixRQUFRLEVBQUUsV0FBVyxFQUNyQixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSx5QkFBeUIsRUFDL0IsVUFBVSxHQUFFLE1BQU0sR0FBRyxTQUFnQixFQUNyQyxpQkFBaUIsR0FBRSxNQUE0QyxFQUMvRCx3QkFBd0IsR0FBRSxPQUFjOzs7R0FlekM7QUFFRCx3QkFBc0IsY0FBYyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLHlCQUF5Qjs7O0dBWTFGO0FBRUQsd0JBQXNCLFVBQVUsQ0FDOUIsSUFBSSxFQUFFLFdBQVcsRUFDakIsS0FBSyxFQUFFLE1BQU0sRUFDYixNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSx1QkFBdUI7OztHQWVwQztBQUVELHdCQUFzQixjQUFjLENBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxJQUFJLEVBQUUseUJBQXlCLEVBQy9CLE9BQU8sR0FBRSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8seUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBTTs7O0dBT3ZFO0FBRUQsd0JBQXNCLGVBQWUsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixpQkFRckc7QUFFRCx3QkFBc0IsYUFBYSxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLGlCQVlsRyJ9
|
package/dest/test/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAEV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAsB,MAAM,uBAAuB,CAAC;AAGtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,iBA8C9G;AAED,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,yBAAyB,EAC/B,UAAU,GAAE,MAAM,GAAG,SAAgB,EACrC,iBAAiB,GAAE,MAA4C,EAC/D,wBAAwB,GAAE,OAAc;;;GAezC;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB;;;GAY1F;AAED,wBAAsB,UAAU,CAC9B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,uBAAuB;;;GAepC;AAED,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,yBAAyB,EAC/B,OAAO,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAM;;;GAOvE;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,iBAQrG;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,iBAYlG"}
|
package/dest/test/utils.js
CHANGED
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NULLIFIER_SUBTREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
2
|
-
import {
|
|
2
|
+
import { asyncMap } from '@aztec/foundation/async-map';
|
|
3
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
-
import { Fr } from '@aztec/foundation/
|
|
5
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
6
|
import { L2BlockNew } from '@aztec/stdlib/block';
|
|
6
|
-
import {
|
|
7
|
-
import { computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
|
|
7
|
+
import { mockCheckpointAndMessages, mockL1ToL2Messages } from '@aztec/stdlib/testing';
|
|
8
8
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
9
|
-
export async function
|
|
10
|
-
const
|
|
9
|
+
export async function updateBlockState(block, l1ToL2Messages, fork) {
|
|
10
|
+
const insertData = async (treeId, data, subTreeHeight, fork)=>{
|
|
11
|
+
for (const dataBatch of data){
|
|
12
|
+
await fork.batchInsert(treeId, dataBatch, subTreeHeight);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const publicDataInsert = insertData(MerkleTreeId.PUBLIC_DATA_TREE, block.body.txEffects.map((txEffect)=>txEffect.publicDataWrites.map((write)=>write.toBuffer())), 0, fork);
|
|
16
|
+
const nullifierInsert = insertData(MerkleTreeId.NULLIFIER_TREE, block.body.txEffects.map((txEffect)=>padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((nullifier)=>nullifier.toBuffer())), NULLIFIER_SUBTREE_HEIGHT, fork);
|
|
17
|
+
const noteHashesPadded = block.body.txEffects.flatMap((txEffect)=>padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
|
|
18
|
+
const l1ToL2MessagesPadded = block.indexWithinCheckpoint === 0 ? padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) : l1ToL2Messages;
|
|
19
|
+
const noteHashInsert = fork.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, noteHashesPadded);
|
|
20
|
+
const messageInsert = fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2MessagesPadded);
|
|
21
|
+
await Promise.all([
|
|
22
|
+
publicDataInsert,
|
|
23
|
+
nullifierInsert,
|
|
24
|
+
noteHashInsert,
|
|
25
|
+
messageInsert
|
|
26
|
+
]);
|
|
27
|
+
const state = await fork.getStateReference();
|
|
28
|
+
block.header.state = state;
|
|
29
|
+
await fork.updateArchive(block.header);
|
|
30
|
+
const archiveState = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
31
|
+
block.archive = new AppendOnlyTreeSnapshot(Fr.fromBuffer(archiveState.root), Number(archiveState.size));
|
|
32
|
+
}
|
|
33
|
+
export async function mockBlock(blockNum, size, fork, maxEffects = 1000, numL1ToL2Messages = NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, isFirstBlockInCheckpoint = true) {
|
|
34
|
+
const block = await L2BlockNew.random(blockNum, {
|
|
35
|
+
indexWithinCheckpoint: isFirstBlockInCheckpoint ? 0 : 1,
|
|
11
36
|
txsPerBlock: size,
|
|
12
37
|
txOptions: {
|
|
13
38
|
maxEffects
|
|
14
39
|
}
|
|
15
40
|
});
|
|
16
41
|
const l1ToL2Messages = mockL1ToL2Messages(numL1ToL2Messages);
|
|
17
|
-
|
|
18
|
-
const insertData = async (treeId, data, subTreeHeight, fork)=>{
|
|
19
|
-
for (const dataBatch of data){
|
|
20
|
-
await fork.batchInsert(treeId, dataBatch, subTreeHeight);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const publicDataInsert = insertData(MerkleTreeId.PUBLIC_DATA_TREE, l2Block.body.txEffects.map((txEffect)=>txEffect.publicDataWrites.map((write)=>write.toBuffer())), 0, fork);
|
|
24
|
-
const nullifierInsert = insertData(MerkleTreeId.NULLIFIER_TREE, l2Block.body.txEffects.map((txEffect)=>padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map((nullifier)=>nullifier.toBuffer())), NULLIFIER_SUBTREE_HEIGHT, fork);
|
|
25
|
-
const noteHashesPadded = l2Block.body.txEffects.flatMap((txEffect)=>padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
|
|
26
|
-
const l1ToL2MessagesPadded = isFirstBlock ? padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) : l1ToL2Messages;
|
|
27
|
-
const noteHashInsert = fork.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, noteHashesPadded);
|
|
28
|
-
const messageInsert = fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2MessagesPadded);
|
|
29
|
-
await Promise.all([
|
|
30
|
-
publicDataInsert,
|
|
31
|
-
nullifierInsert,
|
|
32
|
-
noteHashInsert,
|
|
33
|
-
messageInsert
|
|
34
|
-
]);
|
|
35
|
-
}
|
|
36
|
-
const state = await fork.getStateReference();
|
|
37
|
-
l2Block.header.state = state;
|
|
38
|
-
await fork.updateArchive(l2Block.header);
|
|
39
|
-
const archiveState = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
40
|
-
l2Block.archive = new AppendOnlyTreeSnapshot(Fr.fromBuffer(archiveState.root), Number(archiveState.size));
|
|
42
|
+
await updateBlockState(block, l1ToL2Messages, fork);
|
|
41
43
|
return {
|
|
42
|
-
block
|
|
44
|
+
block,
|
|
43
45
|
messages: l1ToL2Messages
|
|
44
46
|
};
|
|
45
47
|
}
|
|
@@ -47,27 +49,7 @@ export async function mockEmptyBlock(blockNum, fork) {
|
|
|
47
49
|
const l2Block = L2BlockNew.empty();
|
|
48
50
|
const l1ToL2Messages = Array(16).fill(0).map(Fr.zero);
|
|
49
51
|
l2Block.header.globalVariables.blockNumber = blockNum;
|
|
50
|
-
|
|
51
|
-
{
|
|
52
|
-
const noteHashesPadded = l2Block.body.txEffects.flatMap((txEffect)=>padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX));
|
|
53
|
-
await fork.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, noteHashesPadded);
|
|
54
|
-
const l1ToL2MessagesPadded = padArrayEnd(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
55
|
-
await fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2MessagesPadded);
|
|
56
|
-
}
|
|
57
|
-
// Sync the indexed trees
|
|
58
|
-
{
|
|
59
|
-
// We insert the public data tree leaves with one batch per tx to avoid updating the same key twice
|
|
60
|
-
for (const txEffect of l2Block.body.txEffects){
|
|
61
|
-
await fork.batchInsert(MerkleTreeId.PUBLIC_DATA_TREE, txEffect.publicDataWrites.map((write)=>write.toBuffer()), 0);
|
|
62
|
-
const nullifiersPadded = padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX);
|
|
63
|
-
await fork.batchInsert(MerkleTreeId.NULLIFIER_TREE, nullifiersPadded.map((nullifier)=>nullifier.toBuffer()), NULLIFIER_SUBTREE_HEIGHT);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const state = await fork.getStateReference();
|
|
67
|
-
l2Block.header.state = state;
|
|
68
|
-
await fork.updateArchive(l2Block.header);
|
|
69
|
-
const archiveState = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
70
|
-
l2Block.archive = new AppendOnlyTreeSnapshot(Fr.fromBuffer(archiveState.root), Number(archiveState.size));
|
|
52
|
+
await updateBlockState(l2Block, l1ToL2Messages, fork);
|
|
71
53
|
return {
|
|
72
54
|
block: l2Block,
|
|
73
55
|
messages: l1ToL2Messages
|
|
@@ -88,34 +70,11 @@ export async function mockBlocks(from, count, numTxs, worldState) {
|
|
|
88
70
|
messages: messagesArray
|
|
89
71
|
};
|
|
90
72
|
}
|
|
91
|
-
export function
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const slotNumber = SlotNumber(checkpointNumber * 10);
|
|
96
|
-
const blocksAndMessages = [];
|
|
97
|
-
for(let i = 0; i < numBlocks; i++){
|
|
98
|
-
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
99
|
-
const { block, messages } = fork ? await mockBlock(blockNumber, numTxsPerBlock, fork, blockNumber === startBlockNumber ? numL1ToL2Messages : 0) : {
|
|
100
|
-
block: await L2BlockNew.random(blockNumber, {
|
|
101
|
-
txsPerBlock: numTxsPerBlock,
|
|
102
|
-
slotNumber
|
|
103
|
-
}),
|
|
104
|
-
messages: mockL1ToL2Messages(numL1ToL2Messages)
|
|
105
|
-
};
|
|
106
|
-
blocksAndMessages.push({
|
|
107
|
-
block,
|
|
108
|
-
messages
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
const messages = blocksAndMessages[0].messages;
|
|
112
|
-
const inHash = computeInHashFromL1ToL2Messages(messages);
|
|
113
|
-
const checkpoint = await Checkpoint.random(checkpointNumber, {
|
|
114
|
-
numBlocks: 0,
|
|
115
|
-
slotNumber,
|
|
116
|
-
inHash
|
|
73
|
+
export async function mockCheckpoint(checkpointNumber, fork, options = {}) {
|
|
74
|
+
const { checkpoint, messages } = await mockCheckpointAndMessages(checkpointNumber, options);
|
|
75
|
+
await asyncMap(checkpoint.blocks, async (block, i)=>{
|
|
76
|
+
await updateBlockState(block, i === 0 ? messages : [], fork);
|
|
117
77
|
});
|
|
118
|
-
checkpoint.blocks = blocksAndMessages.map(({ block })=>block);
|
|
119
78
|
return {
|
|
120
79
|
checkpoint,
|
|
121
80
|
messages
|
package/dest/testing.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
4
4
|
export declare const defaultInitialAccountFeeJuice: Fr;
|
|
@@ -7,4 +7,4 @@ export declare function getGenesisValues(initialAccounts: AztecAddress[], initia
|
|
|
7
7
|
prefilledPublicData: PublicDataTreeLeaf[];
|
|
8
8
|
fundingNeeded: bigint;
|
|
9
9
|
}>;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXlCdkUsZUFBTyxNQUFNLDZCQUE2QixJQUFxQixDQUFDO0FBRWhFLHdCQUFzQixnQkFBZ0IsQ0FDcEMsZUFBZSxFQUFFLFlBQVksRUFBRSxFQUMvQixzQkFBc0IsS0FBZ0MsRUFDdEQsaUJBQWlCLEdBQUUsa0JBQWtCLEVBQU87Ozs7R0FxQjdDIn0=
|
package/dest/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAyBvE,eAAO,MAAM,6BAA6B,IAAqB,CAAC;AAEhE,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,YAAY,EAAE,EAC/B,sBAAsB,KAAgC,EACtD,iBAAiB,GAAE,kBAAkB,EAAO;;;;GAqB7C"}
|
package/dest/testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
4
4
|
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
5
5
|
import { NativeWorldStateService } from './native/index.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import type { Fr } from '@aztec/foundation/
|
|
1
|
+
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { IndexedTreeSnapshot, TreeSnapshot } from '@aztec/merkle-tree';
|
|
4
4
|
import type { L2BlockNew } from '@aztec/stdlib/block';
|
|
5
5
|
import type { ForkMerkleTreeOperations, MerkleTreeReadOperations } from '@aztec/stdlib/interfaces/server';
|
|
@@ -34,10 +34,8 @@ export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
|
|
|
34
34
|
* Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
|
|
35
35
|
* @param block - The L2 block to handle.
|
|
36
36
|
* @param l1ToL2Messages - The L1 to L2 messages for the block.
|
|
37
|
-
* @param isFirstBlock - Whether the block is the first block in a checkpoint. The messages are padded and inserted
|
|
38
|
-
* to the tree for the first block in a checkpoint.
|
|
39
37
|
*/
|
|
40
|
-
handleL2BlockAndMessages(block: L2BlockNew, l1ToL2Messages: Fr[]
|
|
38
|
+
handleL2BlockAndMessages(block: L2BlockNew, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull>;
|
|
41
39
|
/**
|
|
42
40
|
* Gets a handle that allows reading the latest committed state
|
|
43
41
|
*/
|
|
@@ -70,4 +68,4 @@ export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
|
|
|
70
68
|
/** Deletes the db. */
|
|
71
69
|
clear(): Promise<void>;
|
|
72
70
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfZGIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JsZC1zdGF0ZS1kYi9tZXJrbGVfdHJlZV9kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFHLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUY7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxlQUFPLE1BQU0sMkJBQTJCLFFBQTRCLENBQUM7QUFFckUsZUFBTyxNQUFNLDZCQUE2QixRQUFtRCxDQUFDO0FBRTlGLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsbUJBQW1CLENBQUM7SUFDbkQsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsbUJBQW1CLENBQUM7SUFDckQsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0NBQzFDLENBQUM7QUFFRixNQUFNLFdBQVcsdUJBQXdCLFNBQVEsd0JBQXdCO0lBQ3ZFOzs7O09BSUc7SUFDSCx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUVqRzs7T0FFRztJQUNILFlBQVksSUFBSSx3QkFBd0IsQ0FBQztJQUV6Qzs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsYUFBYSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUVsRjs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLGFBQWEsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFeEU7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxhQUFhLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRTNFOzs7T0FHRztJQUNILGdCQUFnQixJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJELHlCQUF5QjtJQUN6QixLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCLHNCQUFzQjtJQUN0QixLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3hCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"merkle_tree_db.d.ts","sourceRoot":"","sources":["../../src/world-state-db/merkle_tree_db.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE1F;;;;;;;;;;;;;;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,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjG;;OAEG;IACH,YAAY,IAAI,wBAAwB,CAAC;IAEzC;;;;OAIG;IACH,sBAAsB,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAElF;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAExE;;;;OAIG;IACH,YAAY,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE3E;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAErD,yBAAyB;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,sBAAsB;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/world-state",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251210",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -64,19 +64,19 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
68
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
69
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
70
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
71
|
-
"@aztec/native": "3.0.0-nightly.
|
|
72
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
73
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
74
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
67
|
+
"@aztec/constants": "3.0.0-nightly.20251210",
|
|
68
|
+
"@aztec/foundation": "3.0.0-nightly.20251210",
|
|
69
|
+
"@aztec/kv-store": "3.0.0-nightly.20251210",
|
|
70
|
+
"@aztec/merkle-tree": "3.0.0-nightly.20251210",
|
|
71
|
+
"@aztec/native": "3.0.0-nightly.20251210",
|
|
72
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251210",
|
|
73
|
+
"@aztec/stdlib": "3.0.0-nightly.20251210",
|
|
74
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20251210",
|
|
75
75
|
"tslib": "^2.4.0",
|
|
76
76
|
"zod": "^3.23.8"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
79
|
+
"@aztec/archiver": "3.0.0-nightly.20251210",
|
|
80
80
|
"@jest/globals": "^30.0.0",
|
|
81
81
|
"@types/jest": "^30.0.0",
|
|
82
82
|
"@types/node": "^22.15.17",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import { type IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
|
|
5
5
|
import type {
|
package/src/native/message.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
4
4
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
5
5
|
import type { StateReference } from '@aztec/stdlib/tx';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
2
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import { fromEntries, padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
7
7
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
8
8
|
import type { L2BlockNew } from '@aztec/stdlib/block';
|
|
@@ -180,11 +180,8 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
180
180
|
return this.initialHeader!;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
public async handleL2BlockAndMessages(
|
|
184
|
-
l2Block
|
|
185
|
-
l1ToL2Messages: Fr[],
|
|
186
|
-
isFirstBlock: boolean,
|
|
187
|
-
): Promise<WorldStateStatusFull> {
|
|
183
|
+
public async handleL2BlockAndMessages(l2Block: L2BlockNew, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull> {
|
|
184
|
+
const isFirstBlock = l2Block.indexWithinCheckpoint === 0;
|
|
188
185
|
if (!isFirstBlock && l1ToL2Messages.length > 0) {
|
|
189
186
|
throw new Error(
|
|
190
187
|
`L1 to L2 messages must be empty for non-first blocks, but got ${l1ToL2Messages.length} messages for block ${l2Block.number}.`,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import type { Fr } from '@aztec/foundation/
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
5
5
|
import { elapsed } from '@aztec/foundation/timer';
|
|
@@ -30,7 +30,6 @@ import type { WorldStateStatusFull } from '../native/message.js';
|
|
|
30
30
|
import type { MerkleTreeAdminDatabase } from '../world-state-db/merkle_tree_db.js';
|
|
31
31
|
import type { WorldStateConfig } from './config.js';
|
|
32
32
|
import { WorldStateSynchronizerError } from './errors.js';
|
|
33
|
-
import { findFirstBlocksInCheckpoints } from './utils.js';
|
|
34
33
|
|
|
35
34
|
export type { SnapshotDataKeys };
|
|
36
35
|
|
|
@@ -290,13 +289,22 @@ export class ServerWorldStateSynchronizer
|
|
|
290
289
|
private async handleL2Blocks(l2Blocks: L2BlockNew[]) {
|
|
291
290
|
this.log.trace(`Handling L2 blocks ${l2Blocks[0].number} to ${l2Blocks.at(-1)!.number}`);
|
|
292
291
|
|
|
293
|
-
|
|
292
|
+
// Fetch the L1->L2 messages for the first block in a checkpoint.
|
|
293
|
+
const messagesForBlocks = new Map<BlockNumber, Fr[]>();
|
|
294
|
+
await Promise.all(
|
|
295
|
+
l2Blocks
|
|
296
|
+
.filter(b => b.indexWithinCheckpoint === 0)
|
|
297
|
+
.map(async block => {
|
|
298
|
+
const l1ToL2Messages = await this.l2BlockSource.getL1ToL2Messages(block.checkpointNumber);
|
|
299
|
+
messagesForBlocks.set(block.number, l1ToL2Messages);
|
|
300
|
+
}),
|
|
301
|
+
);
|
|
294
302
|
|
|
295
303
|
let updateStatus: WorldStateStatusFull | undefined = undefined;
|
|
296
304
|
for (const block of l2Blocks) {
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
305
|
+
const [duration, result] = await elapsed(() =>
|
|
306
|
+
this.handleL2Block(block, messagesForBlocks.get(block.number) ?? []),
|
|
307
|
+
);
|
|
300
308
|
this.log.info(`World state updated with L2 block ${block.number}`, {
|
|
301
309
|
eventName: 'l2-block-handled',
|
|
302
310
|
duration,
|
|
@@ -319,18 +327,13 @@ export class ServerWorldStateSynchronizer
|
|
|
319
327
|
* @param l1ToL2Messages - The L1 to L2 messages for the block.
|
|
320
328
|
* @returns Whether the block handled was produced by this same node.
|
|
321
329
|
*/
|
|
322
|
-
private async handleL2Block(
|
|
323
|
-
l2Block: L2BlockNew,
|
|
324
|
-
l1ToL2Messages: Fr[],
|
|
325
|
-
isFirstBlock: boolean,
|
|
326
|
-
): Promise<WorldStateStatusFull> {
|
|
327
|
-
// If the above check succeeds, we can proceed to handle the block.
|
|
330
|
+
private async handleL2Block(l2Block: L2BlockNew, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull> {
|
|
328
331
|
this.log.trace(`Pushing L2 block ${l2Block.number} to merkle tree db `, {
|
|
329
332
|
blockNumber: l2Block.number,
|
|
330
333
|
blockHash: await l2Block.hash().then(h => h.toString()),
|
|
331
334
|
l1ToL2Messages: l1ToL2Messages.map(msg => msg.toString()),
|
|
332
335
|
});
|
|
333
|
-
const result = await this.merkleTreeDb.handleL2BlockAndMessages(l2Block, l1ToL2Messages
|
|
336
|
+
const result = await this.merkleTreeDb.handleL2BlockAndMessages(l2Block, l1ToL2Messages);
|
|
334
337
|
|
|
335
338
|
if (this.currentState === WorldStateRunningState.SYNCHING && l2Block.number >= this.latestBlockNumberAtStart) {
|
|
336
339
|
this.setCurrentState(WorldStateRunningState.RUNNING);
|
package/src/test/utils.ts
CHANGED
|
@@ -4,81 +4,88 @@ import {
|
|
|
4
4
|
NULLIFIER_SUBTREE_HEIGHT,
|
|
5
5
|
NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
|
|
6
6
|
} from '@aztec/constants';
|
|
7
|
-
import {
|
|
7
|
+
import { asyncMap } from '@aztec/foundation/async-map';
|
|
8
|
+
import { BlockNumber, type CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
8
9
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
9
|
-
import { Fr } from '@aztec/foundation/
|
|
10
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
10
11
|
import { L2BlockNew } from '@aztec/stdlib/block';
|
|
11
|
-
import { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
12
12
|
import type {
|
|
13
13
|
IndexedTreeId,
|
|
14
14
|
MerkleTreeReadOperations,
|
|
15
15
|
MerkleTreeWriteOperations,
|
|
16
16
|
} from '@aztec/stdlib/interfaces/server';
|
|
17
|
-
import {
|
|
17
|
+
import { mockCheckpointAndMessages, mockL1ToL2Messages } from '@aztec/stdlib/testing';
|
|
18
18
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
19
19
|
|
|
20
20
|
import type { NativeWorldStateService } from '../native/native_world_state.js';
|
|
21
21
|
|
|
22
|
-
export async function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
) {
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
export async function updateBlockState(block: L2BlockNew, l1ToL2Messages: Fr[], fork: MerkleTreeWriteOperations) {
|
|
23
|
+
const insertData = async (
|
|
24
|
+
treeId: IndexedTreeId,
|
|
25
|
+
data: Buffer[][],
|
|
26
|
+
subTreeHeight: number,
|
|
27
|
+
fork: MerkleTreeWriteOperations,
|
|
28
|
+
) => {
|
|
29
|
+
for (const dataBatch of data) {
|
|
30
|
+
await fork.batchInsert(treeId, dataBatch, subTreeHeight);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
l2Block.body.txEffects.map(txEffect =>
|
|
54
|
-
padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(nullifier => nullifier.toBuffer()),
|
|
55
|
-
),
|
|
56
|
-
NULLIFIER_SUBTREE_HEIGHT,
|
|
57
|
-
fork,
|
|
58
|
-
);
|
|
59
|
-
const noteHashesPadded = l2Block.body.txEffects.flatMap(txEffect =>
|
|
60
|
-
padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
const l1ToL2MessagesPadded = isFirstBlock
|
|
34
|
+
const publicDataInsert = insertData(
|
|
35
|
+
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
36
|
+
block.body.txEffects.map(txEffect => txEffect.publicDataWrites.map(write => write.toBuffer())),
|
|
37
|
+
0,
|
|
38
|
+
fork,
|
|
39
|
+
);
|
|
40
|
+
const nullifierInsert = insertData(
|
|
41
|
+
MerkleTreeId.NULLIFIER_TREE,
|
|
42
|
+
block.body.txEffects.map(txEffect =>
|
|
43
|
+
padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX).map(nullifier => nullifier.toBuffer()),
|
|
44
|
+
),
|
|
45
|
+
NULLIFIER_SUBTREE_HEIGHT,
|
|
46
|
+
fork,
|
|
47
|
+
);
|
|
48
|
+
const noteHashesPadded = block.body.txEffects.flatMap(txEffect =>
|
|
49
|
+
padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
const l1ToL2MessagesPadded =
|
|
53
|
+
block.indexWithinCheckpoint === 0
|
|
64
54
|
? padArrayEnd<Fr, number>(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP)
|
|
65
55
|
: l1ToL2Messages;
|
|
66
56
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
57
|
+
const noteHashInsert = fork.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, noteHashesPadded);
|
|
58
|
+
const messageInsert = fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2MessagesPadded);
|
|
59
|
+
await Promise.all([publicDataInsert, nullifierInsert, noteHashInsert, messageInsert]);
|
|
71
60
|
|
|
72
61
|
const state = await fork.getStateReference();
|
|
73
|
-
|
|
74
|
-
await fork.updateArchive(
|
|
62
|
+
block.header.state = state;
|
|
63
|
+
await fork.updateArchive(block.header);
|
|
75
64
|
|
|
76
65
|
const archiveState = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
77
66
|
|
|
78
|
-
|
|
67
|
+
block.archive = new AppendOnlyTreeSnapshot(Fr.fromBuffer(archiveState.root), Number(archiveState.size));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export async function mockBlock(
|
|
71
|
+
blockNum: BlockNumber,
|
|
72
|
+
size: number,
|
|
73
|
+
fork: MerkleTreeWriteOperations,
|
|
74
|
+
maxEffects: number | undefined = 1000, // Defaults to the maximum tx effects.
|
|
75
|
+
numL1ToL2Messages: number = NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
|
|
76
|
+
isFirstBlockInCheckpoint: boolean = true,
|
|
77
|
+
) {
|
|
78
|
+
const block = await L2BlockNew.random(blockNum, {
|
|
79
|
+
indexWithinCheckpoint: isFirstBlockInCheckpoint ? 0 : 1,
|
|
80
|
+
txsPerBlock: size,
|
|
81
|
+
txOptions: { maxEffects },
|
|
82
|
+
});
|
|
83
|
+
const l1ToL2Messages = mockL1ToL2Messages(numL1ToL2Messages);
|
|
84
|
+
|
|
85
|
+
await updateBlockState(block, l1ToL2Messages, fork);
|
|
79
86
|
|
|
80
87
|
return {
|
|
81
|
-
block
|
|
88
|
+
block,
|
|
82
89
|
messages: l1ToL2Messages,
|
|
83
90
|
};
|
|
84
91
|
}
|
|
@@ -89,44 +96,7 @@ export async function mockEmptyBlock(blockNum: BlockNumber, fork: MerkleTreeWrit
|
|
|
89
96
|
|
|
90
97
|
l2Block.header.globalVariables.blockNumber = blockNum;
|
|
91
98
|
|
|
92
|
-
|
|
93
|
-
{
|
|
94
|
-
const noteHashesPadded = l2Block.body.txEffects.flatMap(txEffect =>
|
|
95
|
-
padArrayEnd(txEffect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
|
|
96
|
-
);
|
|
97
|
-
await fork.appendLeaves(MerkleTreeId.NOTE_HASH_TREE, noteHashesPadded);
|
|
98
|
-
|
|
99
|
-
const l1ToL2MessagesPadded = padArrayEnd<Fr, number>(l1ToL2Messages, Fr.ZERO, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
100
|
-
await fork.appendLeaves(MerkleTreeId.L1_TO_L2_MESSAGE_TREE, l1ToL2MessagesPadded);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Sync the indexed trees
|
|
104
|
-
{
|
|
105
|
-
// We insert the public data tree leaves with one batch per tx to avoid updating the same key twice
|
|
106
|
-
for (const txEffect of l2Block.body.txEffects) {
|
|
107
|
-
await fork.batchInsert(
|
|
108
|
-
MerkleTreeId.PUBLIC_DATA_TREE,
|
|
109
|
-
txEffect.publicDataWrites.map(write => write.toBuffer()),
|
|
110
|
-
0,
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
const nullifiersPadded = padArrayEnd(txEffect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX);
|
|
114
|
-
|
|
115
|
-
await fork.batchInsert(
|
|
116
|
-
MerkleTreeId.NULLIFIER_TREE,
|
|
117
|
-
nullifiersPadded.map(nullifier => nullifier.toBuffer()),
|
|
118
|
-
NULLIFIER_SUBTREE_HEIGHT,
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const state = await fork.getStateReference();
|
|
124
|
-
l2Block.header.state = state;
|
|
125
|
-
await fork.updateArchive(l2Block.header);
|
|
126
|
-
|
|
127
|
-
const archiveState = await fork.getTreeInfo(MerkleTreeId.ARCHIVE);
|
|
128
|
-
|
|
129
|
-
l2Block.archive = new AppendOnlyTreeSnapshot(Fr.fromBuffer(archiveState.root), Number(archiveState.size));
|
|
99
|
+
await updateBlockState(l2Block, l1ToL2Messages, fork);
|
|
130
100
|
|
|
131
101
|
return {
|
|
132
102
|
block: l2Block,
|
|
@@ -155,44 +125,15 @@ export async function mockBlocks(
|
|
|
155
125
|
return { blocks, messages: messagesArray };
|
|
156
126
|
}
|
|
157
127
|
|
|
158
|
-
export function mockL1ToL2Messages(numL1ToL2Messages: number) {
|
|
159
|
-
return Array(numL1ToL2Messages).fill(0).map(Fr.random);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
128
|
export async function mockCheckpoint(
|
|
163
129
|
checkpointNumber: CheckpointNumber,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
numBlocks = 1,
|
|
167
|
-
numTxsPerBlock = 1,
|
|
168
|
-
numL1ToL2Messages = 1,
|
|
169
|
-
fork,
|
|
170
|
-
}: {
|
|
171
|
-
startBlockNumber?: BlockNumber;
|
|
172
|
-
numBlocks?: number;
|
|
173
|
-
numTxsPerBlock?: number;
|
|
174
|
-
numL1ToL2Messages?: number;
|
|
175
|
-
fork?: MerkleTreeWriteOperations;
|
|
176
|
-
} = {},
|
|
130
|
+
fork: MerkleTreeWriteOperations,
|
|
131
|
+
options: Partial<Parameters<typeof mockCheckpointAndMessages>[1]> = {},
|
|
177
132
|
) {
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
const { block, messages } = fork
|
|
183
|
-
? await mockBlock(blockNumber, numTxsPerBlock, fork, blockNumber === startBlockNumber ? numL1ToL2Messages : 0)
|
|
184
|
-
: {
|
|
185
|
-
block: await L2BlockNew.random(blockNumber, { txsPerBlock: numTxsPerBlock, slotNumber }),
|
|
186
|
-
messages: mockL1ToL2Messages(numL1ToL2Messages),
|
|
187
|
-
};
|
|
188
|
-
blocksAndMessages.push({ block, messages });
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
const messages = blocksAndMessages[0].messages;
|
|
192
|
-
const inHash = computeInHashFromL1ToL2Messages(messages);
|
|
193
|
-
const checkpoint = await Checkpoint.random(checkpointNumber, { numBlocks: 0, slotNumber, inHash });
|
|
194
|
-
checkpoint.blocks = blocksAndMessages.map(({ block }) => block);
|
|
195
|
-
|
|
133
|
+
const { checkpoint, messages } = await mockCheckpointAndMessages(checkpointNumber, options);
|
|
134
|
+
await asyncMap(checkpoint.blocks, async (block, i) => {
|
|
135
|
+
await updateBlockState(block, i === 0 ? messages : [], fork);
|
|
136
|
+
});
|
|
196
137
|
return { checkpoint, messages };
|
|
197
138
|
}
|
|
198
139
|
|
package/src/testing.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { computeFeePayerBalanceLeafSlot } from '@aztec/protocol-contracts/fee-juice';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
5
|
import { MerkleTreeId, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
-
import type { Fr } from '@aztec/foundation/
|
|
2
|
+
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import type { IndexedTreeSnapshot, TreeSnapshot } from '@aztec/merkle-tree';
|
|
5
5
|
import type { L2BlockNew } from '@aztec/stdlib/block';
|
|
6
6
|
import type { ForkMerkleTreeOperations, MerkleTreeReadOperations } from '@aztec/stdlib/interfaces/server';
|
|
@@ -40,14 +40,8 @@ export interface MerkleTreeAdminDatabase extends ForkMerkleTreeOperations {
|
|
|
40
40
|
* Handles a single L2 block (i.e. Inserts the new note hashes into the merkle tree).
|
|
41
41
|
* @param block - The L2 block to handle.
|
|
42
42
|
* @param l1ToL2Messages - The L1 to L2 messages for the block.
|
|
43
|
-
* @param isFirstBlock - Whether the block is the first block in a checkpoint. The messages are padded and inserted
|
|
44
|
-
* to the tree for the first block in a checkpoint.
|
|
45
43
|
*/
|
|
46
|
-
handleL2BlockAndMessages(
|
|
47
|
-
block: L2BlockNew,
|
|
48
|
-
l1ToL2Messages: Fr[],
|
|
49
|
-
isFirstBlock: boolean,
|
|
50
|
-
): Promise<WorldStateStatusFull>;
|
|
44
|
+
handleL2BlockAndMessages(block: L2BlockNew, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull>;
|
|
51
45
|
|
|
52
46
|
/**
|
|
53
47
|
* Gets a handle that allows reading the latest committed state
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import type { L2BlockNew, L2BlockSource } from '@aztec/stdlib/block';
|
|
3
|
-
import { type L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
4
|
-
/**
|
|
5
|
-
* Determine which blocks in the given array are the first block in a checkpoint.
|
|
6
|
-
* @param blocks - The candidate blocks, sorted by block number in ascending order.
|
|
7
|
-
* @param l2BlockSource - The L2 block source to use to fetch the checkpoints, block headers and L1->L2 messages.
|
|
8
|
-
* @returns A map of block numbers that begin a checkpoint to the L1->L2 messages for that checkpoint.
|
|
9
|
-
*/
|
|
10
|
-
export declare function findFirstBlocksInCheckpoints(blocks: L2BlockNew[], l2BlockSource: L2BlockSource & L1ToL2MessageSource): Promise<Map<number, Fr[]>>;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUFtQyxNQUFNLHlCQUF5QixDQUFDO0FBRXBHOzs7OztHQUtHO0FBQ0gsd0JBQXNCLDRCQUE0QixDQUNoRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQ3BCLGFBQWEsRUFBRSxhQUFhLEdBQUcsbUJBQW1CLEdBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FtRTVCIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/synchronizer/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,KAAK,mBAAmB,EAAmC,MAAM,yBAAyB,CAAC;AAEpG;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,UAAU,EAAE,EACpB,aAAa,EAAE,aAAa,GAAG,mBAAmB,GACjD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAmE5B"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
|
|
3
|
-
/**
|
|
4
|
-
* Determine which blocks in the given array are the first block in a checkpoint.
|
|
5
|
-
* @param blocks - The candidate blocks, sorted by block number in ascending order.
|
|
6
|
-
* @param l2BlockSource - The L2 block source to use to fetch the checkpoints, block headers and L1->L2 messages.
|
|
7
|
-
* @returns A map of block numbers that begin a checkpoint to the L1->L2 messages for that checkpoint.
|
|
8
|
-
*/ export async function findFirstBlocksInCheckpoints(blocks, l2BlockSource) {
|
|
9
|
-
// Select the blocks that are the final block within each group of identical slot numbers.
|
|
10
|
-
let seenSlot;
|
|
11
|
-
const maybeLastBlocks = [
|
|
12
|
-
...blocks
|
|
13
|
-
].reverse().filter((b)=>{
|
|
14
|
-
if (b.header.globalVariables.slotNumber !== seenSlot) {
|
|
15
|
-
seenSlot = b.header.globalVariables.slotNumber;
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
return false;
|
|
19
|
-
}).reverse();
|
|
20
|
-
// Try to fetch the checkpoints for those blocks. If undefined (which should only occur for blocks.at(-1)),
|
|
21
|
-
// then the block is not the last one in a checkpoint.
|
|
22
|
-
// If we are not checking the inHashes below, only blocks.at(-1) would need its checkpoint header fetched.
|
|
23
|
-
const checkpointedBlocks = (await Promise.all(maybeLastBlocks.map(async (b)=>({
|
|
24
|
-
blockNumber: b.number,
|
|
25
|
-
// A checkpoint's archive root is the archive root of its last block.
|
|
26
|
-
checkpoint: await l2BlockSource.getCheckpointByArchive(b.archive.root)
|
|
27
|
-
})))).filter((b)=>b.checkpoint !== undefined);
|
|
28
|
-
// Verify that the L1->L2 messages hash to the checkpoint's inHash.
|
|
29
|
-
const checkpointedL1ToL2Messages = await Promise.all(checkpointedBlocks.map((b)=>l2BlockSource.getL1ToL2MessagesForCheckpoint(b.checkpoint.number)));
|
|
30
|
-
checkpointedBlocks.forEach((b, i)=>{
|
|
31
|
-
const computedInHash = computeInHashFromL1ToL2Messages(checkpointedL1ToL2Messages[i]);
|
|
32
|
-
const inHash = b.checkpoint.header.contentCommitment.inHash;
|
|
33
|
-
if (!computedInHash.equals(inHash)) {
|
|
34
|
-
throw new Error('Obtained L1 to L2 messages failed to be hashed to the checkpoint inHash');
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
// Compute the first block numbers, which should be right after each checkpointed block. Exclude blocks that haven't
|
|
38
|
-
// been added yet.
|
|
39
|
-
const firstBlockNumbers = checkpointedBlocks.map((b)=>BlockNumber(b.blockNumber + 1)).filter((n)=>n <= blocks.at(-1).number);
|
|
40
|
-
// Check if blocks[0] is the first block in a checkpoint.
|
|
41
|
-
if (blocks[0].number === 1) {
|
|
42
|
-
firstBlockNumbers.push(blocks[0].number);
|
|
43
|
-
} else {
|
|
44
|
-
const lastBlockHeader = await l2BlockSource.getBlockHeader(BlockNumber(blocks[0].number - 1));
|
|
45
|
-
if (!lastBlockHeader) {
|
|
46
|
-
throw new Error(`Failed to get block ${blocks[0].number - 1}`);
|
|
47
|
-
}
|
|
48
|
-
if (lastBlockHeader.globalVariables.slotNumber !== blocks[0].header.globalVariables.slotNumber) {
|
|
49
|
-
firstBlockNumbers.push(blocks[0].number);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Fetch the L1->L2 messages for the first blocks and assign them to the map.
|
|
53
|
-
const messagesByBlockNumber = new Map();
|
|
54
|
-
await Promise.all(firstBlockNumbers.map(async (blockNumber)=>{
|
|
55
|
-
const l1ToL2Messages = await l2BlockSource.getL1ToL2Messages(blockNumber);
|
|
56
|
-
messagesByBlockNumber.set(blockNumber, l1ToL2Messages);
|
|
57
|
-
}));
|
|
58
|
-
return messagesByBlockNumber;
|
|
59
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { BlockNumber, type SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import type { L2BlockNew, L2BlockSource } from '@aztec/stdlib/block';
|
|
4
|
-
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
5
|
-
import { type L1ToL2MessageSource, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Determine which blocks in the given array are the first block in a checkpoint.
|
|
9
|
-
* @param blocks - The candidate blocks, sorted by block number in ascending order.
|
|
10
|
-
* @param l2BlockSource - The L2 block source to use to fetch the checkpoints, block headers and L1->L2 messages.
|
|
11
|
-
* @returns A map of block numbers that begin a checkpoint to the L1->L2 messages for that checkpoint.
|
|
12
|
-
*/
|
|
13
|
-
export async function findFirstBlocksInCheckpoints(
|
|
14
|
-
blocks: L2BlockNew[],
|
|
15
|
-
l2BlockSource: L2BlockSource & L1ToL2MessageSource,
|
|
16
|
-
): Promise<Map<number, Fr[]>> {
|
|
17
|
-
// Select the blocks that are the final block within each group of identical slot numbers.
|
|
18
|
-
let seenSlot: SlotNumber | undefined;
|
|
19
|
-
const maybeLastBlocks = [...blocks]
|
|
20
|
-
.reverse()
|
|
21
|
-
.filter(b => {
|
|
22
|
-
if (b.header.globalVariables.slotNumber !== seenSlot) {
|
|
23
|
-
seenSlot = b.header.globalVariables.slotNumber;
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
return false;
|
|
27
|
-
})
|
|
28
|
-
.reverse();
|
|
29
|
-
|
|
30
|
-
// Try to fetch the checkpoints for those blocks. If undefined (which should only occur for blocks.at(-1)),
|
|
31
|
-
// then the block is not the last one in a checkpoint.
|
|
32
|
-
// If we are not checking the inHashes below, only blocks.at(-1) would need its checkpoint header fetched.
|
|
33
|
-
const checkpointedBlocks = (
|
|
34
|
-
await Promise.all(
|
|
35
|
-
maybeLastBlocks.map(async b => ({
|
|
36
|
-
blockNumber: b.number,
|
|
37
|
-
// A checkpoint's archive root is the archive root of its last block.
|
|
38
|
-
checkpoint: await l2BlockSource.getCheckpointByArchive(b.archive.root),
|
|
39
|
-
})),
|
|
40
|
-
)
|
|
41
|
-
).filter(b => b.checkpoint !== undefined) as { blockNumber: BlockNumber; checkpoint: Checkpoint }[];
|
|
42
|
-
|
|
43
|
-
// Verify that the L1->L2 messages hash to the checkpoint's inHash.
|
|
44
|
-
const checkpointedL1ToL2Messages: Fr[][] = await Promise.all(
|
|
45
|
-
checkpointedBlocks.map(b => l2BlockSource.getL1ToL2MessagesForCheckpoint(b.checkpoint!.number)),
|
|
46
|
-
);
|
|
47
|
-
checkpointedBlocks.forEach((b, i) => {
|
|
48
|
-
const computedInHash = computeInHashFromL1ToL2Messages(checkpointedL1ToL2Messages[i]);
|
|
49
|
-
const inHash = b.checkpoint.header.contentCommitment.inHash;
|
|
50
|
-
if (!computedInHash.equals(inHash)) {
|
|
51
|
-
throw new Error('Obtained L1 to L2 messages failed to be hashed to the checkpoint inHash');
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
// Compute the first block numbers, which should be right after each checkpointed block. Exclude blocks that haven't
|
|
56
|
-
// been added yet.
|
|
57
|
-
const firstBlockNumbers = checkpointedBlocks
|
|
58
|
-
.map(b => BlockNumber(b.blockNumber + 1))
|
|
59
|
-
.filter(n => n <= blocks.at(-1)!.number);
|
|
60
|
-
// Check if blocks[0] is the first block in a checkpoint.
|
|
61
|
-
if (blocks[0].number === 1) {
|
|
62
|
-
firstBlockNumbers.push(blocks[0].number);
|
|
63
|
-
} else {
|
|
64
|
-
const lastBlockHeader = await l2BlockSource.getBlockHeader(BlockNumber(blocks[0].number - 1));
|
|
65
|
-
if (!lastBlockHeader) {
|
|
66
|
-
throw new Error(`Failed to get block ${blocks[0].number - 1}`);
|
|
67
|
-
}
|
|
68
|
-
if (lastBlockHeader.globalVariables.slotNumber !== blocks[0].header.globalVariables.slotNumber) {
|
|
69
|
-
firstBlockNumbers.push(blocks[0].number);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Fetch the L1->L2 messages for the first blocks and assign them to the map.
|
|
74
|
-
const messagesByBlockNumber = new Map<BlockNumber, Fr[]>();
|
|
75
|
-
await Promise.all(
|
|
76
|
-
firstBlockNumbers.map(async blockNumber => {
|
|
77
|
-
const l1ToL2Messages = await l2BlockSource.getL1ToL2Messages(blockNumber);
|
|
78
|
-
messagesByBlockNumber.set(blockNumber, l1ToL2Messages);
|
|
79
|
-
}),
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
return messagesByBlockNumber;
|
|
83
|
-
}
|