@aztec/world-state 0.0.1-commit.2f68f620 → 0.0.1-commit.3100065

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 (57) hide show
  1. package/dest/instrumentation/instrumentation.d.ts +3 -4
  2. package/dest/instrumentation/instrumentation.d.ts.map +1 -1
  3. package/dest/instrumentation/instrumentation.js +9 -4
  4. package/dest/native/ipc_world_state_instance.d.ts +22 -59
  5. package/dest/native/ipc_world_state_instance.d.ts.map +1 -1
  6. package/dest/native/ipc_world_state_instance.js +495 -520
  7. package/dest/native/merkle_trees_facade.d.ts +3 -4
  8. package/dest/native/merkle_trees_facade.d.ts.map +1 -1
  9. package/dest/native/merkle_trees_facade.js +109 -37
  10. package/dest/native/message.d.ts +233 -14
  11. package/dest/native/message.d.ts.map +1 -1
  12. package/dest/native/message.js +42 -0
  13. package/dest/native/native_world_state.d.ts +28 -14
  14. package/dest/native/native_world_state.d.ts.map +1 -1
  15. package/dest/native/native_world_state.js +102 -101
  16. package/dest/native/native_world_state_instance.d.ts +42 -58
  17. package/dest/native/native_world_state_instance.d.ts.map +1 -1
  18. package/dest/native/native_world_state_instance.js +222 -5
  19. package/dest/native/world_state_ops_queue.d.ts +19 -0
  20. package/dest/native/world_state_ops_queue.d.ts.map +1 -0
  21. package/dest/native/world_state_ops_queue.js +146 -0
  22. package/dest/synchronizer/errors.d.ts +8 -1
  23. package/dest/synchronizer/errors.d.ts.map +1 -1
  24. package/dest/synchronizer/errors.js +8 -1
  25. package/dest/synchronizer/factory.d.ts +1 -1
  26. package/dest/synchronizer/factory.d.ts.map +1 -1
  27. package/dest/synchronizer/factory.js +1 -1
  28. package/dest/synchronizer/index.d.ts +2 -1
  29. package/dest/synchronizer/index.d.ts.map +1 -1
  30. package/dest/synchronizer/index.js +1 -0
  31. package/dest/synchronizer/server_world_state_synchronizer.d.ts +11 -6
  32. package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
  33. package/dest/synchronizer/server_world_state_synchronizer.js +55 -43
  34. package/dest/test/utils.d.ts +1 -1
  35. package/dest/test/utils.d.ts.map +1 -1
  36. package/dest/test/utils.js +6 -1
  37. package/dest/testing.d.ts +2 -2
  38. package/dest/testing.d.ts.map +1 -1
  39. package/dest/testing.js +15 -4
  40. package/package.json +10 -12
  41. package/src/instrumentation/instrumentation.ts +18 -6
  42. package/src/native/ipc_world_state_instance.ts +503 -608
  43. package/src/native/merkle_trees_facade.ts +104 -59
  44. package/src/native/message.ts +300 -13
  45. package/src/native/native_world_state.ts +156 -121
  46. package/src/native/native_world_state_instance.ts +307 -96
  47. package/src/native/world_state_ops_queue.ts +190 -0
  48. package/src/synchronizer/errors.ts +8 -0
  49. package/src/synchronizer/factory.ts +1 -0
  50. package/src/synchronizer/index.ts +1 -0
  51. package/src/synchronizer/server_world_state_synchronizer.ts +63 -30
  52. package/src/test/utils.ts +10 -1
  53. package/src/testing.ts +14 -4
  54. package/dest/native/world_state_operation.d.ts +0 -7
  55. package/dest/native/world_state_operation.d.ts.map +0 -1
  56. package/dest/native/world_state_operation.js +0 -5
  57. package/src/native/world_state_operation.ts +0 -33
@@ -5,7 +5,7 @@ import { BlockHash } from '@aztec/stdlib/block';
5
5
  import type { BatchInsertionResult, IndexedTreeId, MerkleTreeLeafType, MerkleTreeReadOperations, MerkleTreeWriteOperations, SequentialInsertionResult, TreeInfo } from '@aztec/stdlib/interfaces/server';
6
6
  import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
7
7
  import { type BlockHeader, StateReference } from '@aztec/stdlib/tx';
8
- import type { WorldStateRevision } from '@aztec/stdlib/world-state';
8
+ import { type WorldStateRevision, WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
9
9
  import { type SerializedLeafValue } from './message.js';
10
10
  import type { NativeWorldStateInstance } from './native_world_state_instance.js';
11
11
  export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
@@ -14,8 +14,7 @@ export declare class MerkleTreesFacade implements MerkleTreeReadOperations {
14
14
  protected readonly revision: WorldStateRevision;
15
15
  constructor(instance: NativeWorldStateInstance, initialHeader: BlockHeader, revision: WorldStateRevision);
16
16
  getInitialHeader(): BlockHeader;
17
- getRevision(): WorldStateRevision;
18
- getIpcPath(): string;
17
+ getRevision(): WorldStateRevisionWithHandle;
19
18
  findLeafIndices(treeId: MerkleTreeId, values: MerkleTreeLeafType<MerkleTreeId>[]): Promise<(bigint | undefined)[]>;
20
19
  findSiblingPaths<N extends number>(treeId: MerkleTreeId, values: MerkleTreeLeafType<MerkleTreeId>[]): Promise<({
21
20
  path: SiblingPath<N>;
@@ -55,4 +54,4 @@ export declare class MerkleTreesForkFacade extends MerkleTreesFacade implements
55
54
  revertAllCheckpointsTo(depth: number): Promise<void>;
56
55
  }
57
56
  export declare function serializeLeaf(leaf: Fr | BlockHash | NullifierLeaf | PublicDataTreeLeaf): SerializedLeafValue;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVzX2ZhY2FkZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXJrbGVfdHJlZXNfZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUNWLG9CQUFvQixFQUNwQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLFFBQVEsRUFDVCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUViLGtCQUFrQixFQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUlwRSxPQUFPLEVBRUwsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixxQkFBYSxpQkFBa0IsWUFBVyx3QkFBd0I7SUFFOUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVc7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCO0lBSGpELFlBQ3FCLFFBQVEs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
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVzX2ZhY2FkZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXJrbGVfdHJlZXNfZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUNWLG9CQUFvQixFQUNwQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLFFBQVEsRUFDVCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUViLGtCQUFrQixFQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUlsRyxPQUFPLEVBRUwsS0FBSyxtQkFBbUIsRUFJekIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixxQkFBYSxpQkFBa0IsWUFBVyx3QkFBd0I7SUFFOUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFdBQVc7SUFDN0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCO0lBSGpE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
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merkle_trees_facade.d.ts","sourceRoot":"","sources":["../../src/native/merkle_trees_facade.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import { SiblingPath } from '@aztec/foundation/trees';
8
8
  import { BlockHash } from '@aztec/stdlib/block';
9
9
  import { MerkleTreeId, NullifierLeaf, NullifierLeafPreimage, PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '@aztec/stdlib/trees';
10
10
  import { PartialStateReference, StateReference } from '@aztec/stdlib/tx';
11
+ import { WorldStateRevisionWithHandle } from '@aztec/stdlib/world-state';
11
12
  import assert from 'assert';
12
- import { blockStateReference, treeStateReferenceToSnapshot } from './message.js';
13
+ import { WorldStateMessageType, blockStateReference, treeStateReferenceToSnapshot } from './message.js';
13
14
  export class MerkleTreesFacade {
14
15
  instance;
15
16
  initialHeader;
@@ -23,17 +24,18 @@ export class MerkleTreesFacade {
23
24
  return this.initialHeader;
24
25
  }
25
26
  getRevision() {
26
- return this.revision;
27
- }
28
- getIpcPath() {
29
- return this.instance.getIpcPath();
27
+ return WorldStateRevisionWithHandle.fromWorldStateRevision(this.revision, this.instance.getHandle());
30
28
  }
31
29
  findLeafIndices(treeId, values) {
32
30
  return this.findLeafIndicesAfter(treeId, values, 0n);
33
31
  }
34
32
  async findSiblingPaths(treeId, values) {
35
- const paths = await this.instance.findSiblingPaths(treeId, this.revision, values.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))));
36
- return paths.map((path)=>{
33
+ const response = await this.instance.call(WorldStateMessageType.FIND_SIBLING_PATHS, {
34
+ leaves: values.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
35
+ revision: this.revision,
36
+ treeId
37
+ });
38
+ return response.paths.map((path)=>{
37
39
  if (!path) {
38
40
  return undefined;
39
41
  }
@@ -44,8 +46,13 @@ export class MerkleTreesFacade {
44
46
  });
45
47
  }
46
48
  async findLeafIndicesAfter(treeId, leaves, startIndex) {
47
- const indices = await this.instance.findLeafIndices(treeId, this.revision, leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))), startIndex);
48
- return indices.map((index)=>{
49
+ const response = await this.instance.call(WorldStateMessageType.FIND_LEAF_INDICES, {
50
+ leaves: leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
51
+ revision: this.revision,
52
+ treeId,
53
+ startIndex
54
+ });
55
+ return response.indices.map((index)=>{
49
56
  if (typeof index === 'number' || typeof index === 'bigint') {
50
57
  return BigInt(index);
51
58
  } else {
@@ -54,11 +61,19 @@ export class MerkleTreesFacade {
54
61
  });
55
62
  }
56
63
  async getLeafPreimage(treeId, leafIndex) {
57
- const resp = await this.instance.getLeafPreimage(treeId, this.revision, leafIndex);
64
+ const resp = await this.instance.call(WorldStateMessageType.GET_LEAF_PREIMAGE, {
65
+ leafIndex,
66
+ revision: this.revision,
67
+ treeId
68
+ });
58
69
  return resp ? deserializeIndexedLeaf(resp) : undefined;
59
70
  }
60
71
  async getLeafValue(treeId, leafIndex) {
61
- const resp = await this.instance.getLeafValue(treeId, this.revision, leafIndex);
72
+ const resp = await this.instance.call(WorldStateMessageType.GET_LEAF_VALUE, {
73
+ leafIndex,
74
+ revision: this.revision,
75
+ treeId
76
+ });
62
77
  if (!resp) {
63
78
  return undefined;
64
79
  }
@@ -70,30 +85,55 @@ export class MerkleTreesFacade {
70
85
  }
71
86
  }
72
87
  async getPreviousValueIndex(treeId, value) {
73
- const resp = await this.instance.findLowLeaf(treeId, this.revision, new Fr(value));
88
+ const resp = await this.instance.call(WorldStateMessageType.FIND_LOW_LEAF, {
89
+ key: new Fr(value),
90
+ revision: this.revision,
91
+ treeId
92
+ });
74
93
  return {
75
94
  alreadyPresent: resp.alreadyPresent,
76
95
  index: BigInt(resp.index)
77
96
  };
78
97
  }
79
98
  async getSiblingPath(treeId, leafIndex) {
80
- const siblingPath = await this.instance.getSiblingPath(treeId, this.revision, leafIndex);
99
+ const siblingPath = await this.instance.call(WorldStateMessageType.GET_SIBLING_PATH, {
100
+ leafIndex,
101
+ revision: this.revision,
102
+ treeId
103
+ });
81
104
  return new SiblingPath(siblingPath.length, siblingPath);
82
105
  }
83
106
  async getStateReference() {
84
- const state = await this.instance.getStateReference(this.revision);
85
- return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
107
+ const resp = await this.instance.call(WorldStateMessageType.GET_STATE_REFERENCE, {
108
+ revision: this.revision
109
+ });
110
+ return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
86
111
  }
87
112
  async getInitialStateReference() {
88
- const state = await this.instance.getInitialStateReference();
89
- return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
113
+ const resp = await this.instance.call(WorldStateMessageType.GET_INITIAL_STATE_REFERENCE, {
114
+ canonical: true
115
+ });
116
+ return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
90
117
  }
91
118
  async getTreeInfo(treeId) {
92
- return await this.instance.getTreeInfo(treeId, this.revision);
119
+ const resp = await this.instance.call(WorldStateMessageType.GET_TREE_INFO, {
120
+ treeId: treeId,
121
+ revision: this.revision
122
+ });
123
+ return {
124
+ depth: resp.depth,
125
+ root: resp.root,
126
+ size: BigInt(resp.size),
127
+ treeId
128
+ };
93
129
  }
94
130
  async getBlockNumbersForLeafIndices(treeId, leafIndices) {
95
- const blockNumbers = await this.instance.getBlockNumbersForLeafIndices(treeId, this.revision, leafIndices);
96
- return blockNumbers.map((x)=>x === undefined || x === null ? undefined : BlockNumber(Number(x)));
131
+ const response = await this.instance.call(WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES, {
132
+ treeId,
133
+ revision: this.revision,
134
+ leafIndices
135
+ });
136
+ return response.blockNumbers.map((x)=>x === undefined || x === null ? undefined : BlockNumber(Number(x)));
97
137
  }
98
138
  }
99
139
  _computedKey = Symbol.asyncDispose;
@@ -107,19 +147,32 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
107
147
  super(instance, initialHeader, revision), this.opts = opts, this.log = createLogger('world-state:merkle-trees-fork-facade');
108
148
  }
109
149
  async updateArchive(header) {
110
- await this.instance.updateArchive(this.revision.forkId, blockStateReference(header.state), (await header.hash()).toBuffer());
150
+ await this.instance.call(WorldStateMessageType.UPDATE_ARCHIVE, {
151
+ forkId: this.revision.forkId,
152
+ blockHeaderHash: (await header.hash()).toBuffer(),
153
+ blockStateRef: blockStateReference(header.state)
154
+ });
111
155
  }
112
156
  async appendLeaves(treeId, leaves) {
113
- await this.instance.appendLeaves(treeId, this.revision.forkId, leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))));
157
+ await this.instance.call(WorldStateMessageType.APPEND_LEAVES, {
158
+ leaves: leaves.map((leaf)=>serializeLeaf(hydrateLeaf(treeId, leaf))),
159
+ forkId: this.revision.forkId,
160
+ treeId
161
+ });
114
162
  }
115
163
  async batchInsert(treeId, rawLeaves, subtreeHeight) {
116
164
  const leaves = rawLeaves.map((leaf)=>hydrateLeaf(treeId, leaf)).map(serializeLeaf);
117
- const resp = await this.instance.batchInsert(treeId, this.revision.forkId, leaves, subtreeHeight);
165
+ const resp = await this.instance.call(WorldStateMessageType.BATCH_INSERT, {
166
+ leaves,
167
+ treeId,
168
+ forkId: this.revision.forkId,
169
+ subtreeDepth: subtreeHeight
170
+ });
118
171
  return {
119
- newSubtreeSiblingPath: new SiblingPath(resp.subtreePath.length, resp.subtreePath),
120
- sortedNewLeaves: resp.sortedLeaves.map(([leaf])=>leaf).map(deserializeLeafValue).map(serializeToBuffer),
121
- sortedNewLeavesIndexes: resp.sortedLeaves.map(([, index])=>index),
122
- lowLeavesWitnessData: resp.lowLeafWitnessData.map((data)=>({
172
+ newSubtreeSiblingPath: new SiblingPath(resp.subtree_path.length, resp.subtree_path),
173
+ sortedNewLeaves: resp.sorted_leaves.map(([leaf])=>leaf).map(deserializeLeafValue).map(serializeToBuffer),
174
+ sortedNewLeavesIndexes: resp.sorted_leaves.map(([, index])=>index),
175
+ lowLeavesWitnessData: resp.low_leaf_witness_data.map((data)=>({
123
176
  index: BigInt(data.index),
124
177
  leafPreimage: deserializeIndexedLeaf(data.leaf),
125
178
  siblingPath: new SiblingPath(data.path.length, data.path)
@@ -128,14 +181,18 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
128
181
  }
129
182
  async sequentialInsert(treeId, rawLeaves) {
130
183
  const leaves = rawLeaves.map((leaf)=>hydrateLeaf(treeId, leaf)).map(serializeLeaf);
131
- const resp = await this.instance.sequentialInsert(treeId, this.revision.forkId, leaves);
184
+ const resp = await this.instance.call(WorldStateMessageType.SEQUENTIAL_INSERT, {
185
+ leaves,
186
+ treeId,
187
+ forkId: this.revision.forkId
188
+ });
132
189
  return {
133
- lowLeavesWitnessData: resp.lowLeafWitnessData.map((data)=>({
190
+ lowLeavesWitnessData: resp.low_leaf_witness_data.map((data)=>({
134
191
  index: BigInt(data.index),
135
192
  leafPreimage: deserializeIndexedLeaf(data.leaf),
136
193
  siblingPath: new SiblingPath(data.path.length, data.path)
137
194
  })),
138
- insertionWitnessData: resp.insertionWitnessData.map((data)=>({
195
+ insertionWitnessData: resp.insertion_witness_data.map((data)=>({
139
196
  index: BigInt(data.index),
140
197
  leafPreimage: deserializeIndexedLeaf(data.leaf),
141
198
  siblingPath: new SiblingPath(data.path.length, data.path)
@@ -153,11 +210,13 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
153
210
  }
154
211
  async doClose() {
155
212
  try {
156
- await this.instance.deleteFork(this.revision.forkId);
213
+ await this.instance.call(WorldStateMessageType.DELETE_FORK, {
214
+ forkId: this.revision.forkId
215
+ });
157
216
  } catch (err) {
158
217
  // Ignore errors due to native instance being closed during shutdown.
159
218
  // This can happen when validators are still processing block proposals while the node is stopping.
160
- if (err?.message === 'Native instance is closed' || err?.message === 'IPC instance is closed') {
219
+ if (err?.message === 'Native instance is closed') {
161
220
  return;
162
221
  }
163
222
  // Ignore "Fork not found": the native fork was already destroyed by a pending-chain unwind or a
@@ -182,23 +241,36 @@ export class MerkleTreesForkFacade extends MerkleTreesFacade {
182
241
  }
183
242
  async createCheckpoint() {
184
243
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
185
- return await this.instance.createCheckpoint(this.revision.forkId);
244
+ const resp = await this.instance.call(WorldStateMessageType.CREATE_CHECKPOINT, {
245
+ forkId: this.revision.forkId
246
+ });
247
+ return resp.depth;
186
248
  }
187
249
  async commitCheckpoint() {
188
250
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
189
- await this.instance.commitCheckpoint(this.revision.forkId);
251
+ await this.instance.call(WorldStateMessageType.COMMIT_CHECKPOINT, {
252
+ forkId: this.revision.forkId
253
+ });
190
254
  }
191
255
  async revertCheckpoint() {
192
256
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
193
- await this.instance.revertCheckpoint(this.revision.forkId);
257
+ await this.instance.call(WorldStateMessageType.REVERT_CHECKPOINT, {
258
+ forkId: this.revision.forkId
259
+ });
194
260
  }
195
261
  async commitAllCheckpointsTo(depth) {
196
262
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
197
- await this.instance.commitAllCheckpoints(this.revision.forkId, depth);
263
+ await this.instance.call(WorldStateMessageType.COMMIT_ALL_CHECKPOINTS, {
264
+ forkId: this.revision.forkId,
265
+ depth
266
+ });
198
267
  }
199
268
  async revertAllCheckpointsTo(depth) {
200
269
  assert.notEqual(this.revision.forkId, 0, 'Fork ID must be set');
201
- await this.instance.revertAllCheckpoints(this.revision.forkId, depth);
270
+ await this.instance.call(WorldStateMessageType.REVERT_ALL_CHECKPOINTS, {
271
+ forkId: this.revision.forkId,
272
+ depth
273
+ });
202
274
  }
203
275
  }
204
276
  function hydrateLeaf(treeId, leaf) {
@@ -1,7 +1,45 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import type { Tuple } from '@aztec/foundation/serialize';
3
4
  import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
4
5
  import type { StateReference } from '@aztec/stdlib/tx';
6
+ import type { UInt32 } from '@aztec/stdlib/types';
7
+ import type { WorldStateRevision } from '@aztec/stdlib/world-state';
8
+ export declare enum WorldStateMessageType {
9
+ GET_TREE_INFO = 100,
10
+ GET_STATE_REFERENCE = 101,
11
+ GET_INITIAL_STATE_REFERENCE = 102,
12
+ GET_LEAF_VALUE = 103,
13
+ GET_LEAF_PREIMAGE = 104,
14
+ GET_SIBLING_PATH = 105,
15
+ GET_BLOCK_NUMBERS_FOR_LEAF_INDICES = 106,
16
+ FIND_LEAF_INDICES = 107,
17
+ FIND_LOW_LEAF = 108,
18
+ FIND_SIBLING_PATHS = 109,
19
+ APPEND_LEAVES = 110,
20
+ BATCH_INSERT = 111,
21
+ SEQUENTIAL_INSERT = 112,
22
+ UPDATE_ARCHIVE = 113,
23
+ COMMIT = 114,
24
+ ROLLBACK = 115,
25
+ SYNC_BLOCK = 116,
26
+ CREATE_FORK = 117,
27
+ DELETE_FORK = 118,
28
+ FINALIZE_BLOCKS = 119,
29
+ UNWIND_BLOCKS = 120,
30
+ REMOVE_HISTORICAL_BLOCKS = 121,
31
+ GET_STATUS = 122,
32
+ CREATE_CHECKPOINT = 123,
33
+ COMMIT_CHECKPOINT = 124,
34
+ REVERT_CHECKPOINT = 125,
35
+ COMMIT_ALL_CHECKPOINTS = 126,
36
+ REVERT_ALL_CHECKPOINTS = 127,
37
+ COPY_STORES = 128,
38
+ CLOSE = 999
39
+ }
40
+ interface WithTreeId {
41
+ treeId: MerkleTreeId;
42
+ }
5
43
  export interface WorldStateStatusSummary {
6
44
  /** Last block number that can still be unwound. */
7
45
  unfinalizedBlockNumber: BlockNumber;
@@ -101,6 +139,26 @@ export declare function sanitizeTreeDBStats(stats: TreeDBStats): TreeDBStats;
101
139
  export declare function sanitizeWorldStateDBStats(stats: WorldStateDBStats): WorldStateDBStats;
102
140
  export declare function sanitizeWorldStateTreeMeta(meta: WorldStateMeta): WorldStateMeta;
103
141
  export declare function sanitizeFullStatus(status: WorldStateStatusFull): WorldStateStatusFull;
142
+ interface WithForkId {
143
+ forkId: number;
144
+ }
145
+ interface CreateCheckpointResponse {
146
+ depth: number;
147
+ }
148
+ /** Request to commit/revert all checkpoints down to a target depth. The resulting depth after the operation equals the given depth. */
149
+ interface CheckpointDepthRequest extends WithForkId {
150
+ /** The target depth after the operation. All checkpoints above this depth are committed/reverted. */
151
+ depth: number;
152
+ }
153
+ interface WithWorldStateRevision {
154
+ revision: WorldStateRevision;
155
+ }
156
+ interface WithCanonicalForkId {
157
+ canonical: true;
158
+ }
159
+ interface WithLeafIndex {
160
+ leafIndex: bigint;
161
+ }
104
162
  export type SerializedLeafValue = Buffer | {
105
163
  nullifier: Buffer;
106
164
  } | {
@@ -112,34 +170,195 @@ export type SerializedIndexedLeaf = {
112
170
  nextIndex: bigint | number;
113
171
  nextKey: Buffer;
114
172
  };
115
- export interface SerializedSiblingPathAndIndex {
173
+ interface WithLeafValues {
174
+ leaves: SerializedLeafValue[];
175
+ }
176
+ interface BlockShiftRequest extends WithCanonicalForkId {
177
+ toBlockNumber: BlockNumber;
178
+ }
179
+ interface WithLeaves {
180
+ leaves: SerializedLeafValue[];
181
+ }
182
+ interface GetTreeInfoRequest extends WithTreeId, WithWorldStateRevision {
183
+ }
184
+ interface GetTreeInfoResponse {
185
+ treeId: MerkleTreeId;
186
+ depth: UInt32;
187
+ size: bigint | number;
188
+ root: Buffer;
189
+ }
190
+ interface GetBlockNumbersForLeafIndicesRequest extends WithTreeId, WithWorldStateRevision {
191
+ leafIndices: bigint[];
192
+ }
193
+ interface GetBlockNumbersForLeafIndicesResponse {
194
+ blockNumbers: bigint[];
195
+ }
196
+ interface GetSiblingPathRequest extends WithTreeId, WithLeafIndex, WithWorldStateRevision {
197
+ }
198
+ type GetSiblingPathResponse = Buffer[];
199
+ interface GetStateReferenceRequest extends WithWorldStateRevision {
200
+ }
201
+ interface GetStateReferenceResponse {
202
+ state: Record<MerkleTreeId, TreeStateReference>;
203
+ }
204
+ interface GetLeafRequest extends WithTreeId, WithWorldStateRevision, WithLeafIndex {
205
+ }
206
+ type GetLeafResponse = SerializedLeafValue | undefined;
207
+ interface GetLeafPreImageRequest extends WithTreeId, WithLeafIndex, WithWorldStateRevision {
208
+ }
209
+ type GetLeafPreImageResponse = SerializedIndexedLeaf | undefined;
210
+ interface FindLeafIndicesRequest extends WithTreeId, WithLeafValues, WithWorldStateRevision {
211
+ startIndex: bigint;
212
+ }
213
+ interface FindLeafIndicesResponse {
214
+ indices: bigint[];
215
+ }
216
+ interface FindSiblingPathsRequest extends WithTreeId, WithLeafValues, WithWorldStateRevision {
217
+ }
218
+ interface SiblingPathAndIndex {
116
219
  index: bigint;
117
220
  path: Buffer[];
118
221
  }
119
- export interface SerializedBatchInsertionResult {
120
- lowLeafWitnessData: ReadonlyArray<{
222
+ interface FindSiblingPathsResponse {
223
+ paths: (SiblingPathAndIndex | undefined)[];
224
+ }
225
+ interface FindLowLeafRequest extends WithTreeId, WithWorldStateRevision {
226
+ key: Fr;
227
+ }
228
+ interface FindLowLeafResponse {
229
+ index: bigint | number;
230
+ alreadyPresent: boolean;
231
+ }
232
+ interface AppendLeavesRequest extends WithTreeId, WithForkId, WithLeaves {
233
+ }
234
+ interface BatchInsertRequest extends WithTreeId, WithForkId, WithLeaves {
235
+ subtreeDepth: number;
236
+ }
237
+ interface BatchInsertResponse {
238
+ low_leaf_witness_data: ReadonlyArray<{
121
239
  leaf: SerializedIndexedLeaf;
122
240
  index: bigint | number;
123
- path: Buffer[];
241
+ path: Tuple<Buffer, number>;
124
242
  }>;
125
- sortedLeaves: ReadonlyArray<readonly [SerializedLeafValue, number]>;
126
- subtreePath: Buffer[];
243
+ sorted_leaves: ReadonlyArray<[SerializedLeafValue, UInt32]>;
244
+ subtree_path: Tuple<Buffer, number>;
127
245
  }
128
- export interface SerializedSequentialInsertionResult {
129
- lowLeafWitnessData: ReadonlyArray<{
246
+ interface SequentialInsertRequest extends WithTreeId, WithForkId, WithLeaves {
247
+ }
248
+ interface SequentialInsertResponse {
249
+ low_leaf_witness_data: ReadonlyArray<{
130
250
  leaf: SerializedIndexedLeaf;
131
251
  index: bigint | number;
132
- path: Buffer[];
252
+ path: Tuple<Buffer, number>;
133
253
  }>;
134
- insertionWitnessData: ReadonlyArray<{
254
+ insertion_witness_data: ReadonlyArray<{
135
255
  leaf: SerializedIndexedLeaf;
136
256
  index: bigint | number;
137
- path: Buffer[];
257
+ path: Tuple<Buffer, number>;
138
258
  }>;
139
259
  }
140
- export type TreeStateReference = readonly [Buffer, number | bigint];
141
- export type BlockStateReference = Map<Exclude<MerkleTreeId, MerkleTreeId.ARCHIVE>, TreeStateReference>;
260
+ interface UpdateArchiveRequest extends WithForkId {
261
+ blockStateRef: BlockStateReference;
262
+ blockHeaderHash: Buffer;
263
+ }
264
+ interface SyncBlockRequest extends WithCanonicalForkId {
265
+ blockNumber: BlockNumber;
266
+ blockStateRef: BlockStateReference;
267
+ blockHeaderHash: Buffer;
268
+ /** Canonical archive root after this block; world state rejects the sync if its computed root differs. */
269
+ expectedArchiveRoot: Buffer;
270
+ /** Canonical archive root before this block (the block's lastArchive); verified against the local root. */
271
+ expectedPreviousArchiveRoot: Buffer;
272
+ paddedNoteHashes: readonly SerializedLeafValue[];
273
+ paddedL1ToL2Messages: readonly SerializedLeafValue[];
274
+ paddedNullifiers: readonly SerializedLeafValue[];
275
+ publicDataWrites: readonly SerializedLeafValue[];
276
+ }
277
+ interface CreateForkRequest extends WithCanonicalForkId {
278
+ latest: boolean;
279
+ blockNumber: BlockNumber;
280
+ }
281
+ interface CreateForkResponse {
282
+ forkId: number;
283
+ }
284
+ interface DeleteForkRequest extends WithForkId {
285
+ }
286
+ interface CopyStoresRequest extends WithCanonicalForkId {
287
+ dstPath: string;
288
+ compact: boolean;
289
+ }
290
+ export type WorldStateRequestCategories = WithForkId | WithWorldStateRevision | WithCanonicalForkId;
291
+ export declare function isWithForkId(body: WorldStateRequestCategories): body is WithForkId;
292
+ export declare function isWithRevision(body: WorldStateRequestCategories): body is WithWorldStateRevision;
293
+ export declare function isWithCanonical(body: WorldStateRequestCategories): body is WithCanonicalForkId;
294
+ export type WorldStateRequest = {
295
+ [WorldStateMessageType.GET_TREE_INFO]: GetTreeInfoRequest;
296
+ [WorldStateMessageType.GET_STATE_REFERENCE]: GetStateReferenceRequest;
297
+ [WorldStateMessageType.GET_INITIAL_STATE_REFERENCE]: WithCanonicalForkId;
298
+ [WorldStateMessageType.GET_LEAF_VALUE]: GetLeafRequest;
299
+ [WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageRequest;
300
+ [WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathRequest;
301
+ [WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesRequest;
302
+ [WorldStateMessageType.FIND_LEAF_INDICES]: FindLeafIndicesRequest;
303
+ [WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafRequest;
304
+ [WorldStateMessageType.FIND_SIBLING_PATHS]: FindSiblingPathsRequest;
305
+ [WorldStateMessageType.APPEND_LEAVES]: AppendLeavesRequest;
306
+ [WorldStateMessageType.BATCH_INSERT]: BatchInsertRequest;
307
+ [WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertRequest;
308
+ [WorldStateMessageType.UPDATE_ARCHIVE]: UpdateArchiveRequest;
309
+ [WorldStateMessageType.COMMIT]: WithCanonicalForkId;
310
+ [WorldStateMessageType.ROLLBACK]: WithCanonicalForkId;
311
+ [WorldStateMessageType.SYNC_BLOCK]: SyncBlockRequest;
312
+ [WorldStateMessageType.CREATE_FORK]: CreateForkRequest;
313
+ [WorldStateMessageType.DELETE_FORK]: DeleteForkRequest;
314
+ [WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS]: BlockShiftRequest;
315
+ [WorldStateMessageType.UNWIND_BLOCKS]: BlockShiftRequest;
316
+ [WorldStateMessageType.FINALIZE_BLOCKS]: BlockShiftRequest;
317
+ [WorldStateMessageType.GET_STATUS]: WithCanonicalForkId;
318
+ [WorldStateMessageType.CREATE_CHECKPOINT]: WithForkId;
319
+ [WorldStateMessageType.COMMIT_CHECKPOINT]: WithForkId;
320
+ [WorldStateMessageType.REVERT_CHECKPOINT]: WithForkId;
321
+ [WorldStateMessageType.COMMIT_ALL_CHECKPOINTS]: CheckpointDepthRequest;
322
+ [WorldStateMessageType.REVERT_ALL_CHECKPOINTS]: CheckpointDepthRequest;
323
+ [WorldStateMessageType.COPY_STORES]: CopyStoresRequest;
324
+ [WorldStateMessageType.CLOSE]: WithCanonicalForkId;
325
+ };
326
+ export type WorldStateResponse = {
327
+ [WorldStateMessageType.GET_TREE_INFO]: GetTreeInfoResponse;
328
+ [WorldStateMessageType.GET_STATE_REFERENCE]: GetStateReferenceResponse;
329
+ [WorldStateMessageType.GET_INITIAL_STATE_REFERENCE]: GetStateReferenceResponse;
330
+ [WorldStateMessageType.GET_LEAF_VALUE]: GetLeafResponse;
331
+ [WorldStateMessageType.GET_LEAF_PREIMAGE]: GetLeafPreImageResponse;
332
+ [WorldStateMessageType.GET_SIBLING_PATH]: GetSiblingPathResponse;
333
+ [WorldStateMessageType.GET_BLOCK_NUMBERS_FOR_LEAF_INDICES]: GetBlockNumbersForLeafIndicesResponse;
334
+ [WorldStateMessageType.FIND_LEAF_INDICES]: FindLeafIndicesResponse;
335
+ [WorldStateMessageType.FIND_LOW_LEAF]: FindLowLeafResponse;
336
+ [WorldStateMessageType.FIND_SIBLING_PATHS]: FindSiblingPathsResponse;
337
+ [WorldStateMessageType.APPEND_LEAVES]: void;
338
+ [WorldStateMessageType.BATCH_INSERT]: BatchInsertResponse;
339
+ [WorldStateMessageType.SEQUENTIAL_INSERT]: SequentialInsertResponse;
340
+ [WorldStateMessageType.UPDATE_ARCHIVE]: void;
341
+ [WorldStateMessageType.COMMIT]: void;
342
+ [WorldStateMessageType.ROLLBACK]: void;
343
+ [WorldStateMessageType.SYNC_BLOCK]: WorldStateStatusFull;
344
+ [WorldStateMessageType.CREATE_FORK]: CreateForkResponse;
345
+ [WorldStateMessageType.DELETE_FORK]: void;
346
+ [WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS]: WorldStateStatusFull;
347
+ [WorldStateMessageType.UNWIND_BLOCKS]: WorldStateStatusFull;
348
+ [WorldStateMessageType.FINALIZE_BLOCKS]: WorldStateStatusSummary;
349
+ [WorldStateMessageType.GET_STATUS]: WorldStateStatusSummary;
350
+ [WorldStateMessageType.CREATE_CHECKPOINT]: CreateCheckpointResponse;
351
+ [WorldStateMessageType.COMMIT_CHECKPOINT]: void;
352
+ [WorldStateMessageType.REVERT_CHECKPOINT]: void;
353
+ [WorldStateMessageType.COMMIT_ALL_CHECKPOINTS]: void;
354
+ [WorldStateMessageType.REVERT_ALL_CHECKPOINTS]: void;
355
+ [WorldStateMessageType.COPY_STORES]: void;
356
+ [WorldStateMessageType.CLOSE]: void;
357
+ };
358
+ type TreeStateReference = readonly [Buffer, number | bigint];
359
+ type BlockStateReference = Map<Exclude<MerkleTreeId, MerkleTreeId.ARCHIVE>, TreeStateReference>;
142
360
  export declare function treeStateReferenceToSnapshot([root, size]: TreeStateReference): AppendOnlyTreeSnapshot;
143
361
  export declare function treeStateReference(snapshot: AppendOnlyTreeSnapshot): readonly [Buffer<ArrayBufferLike>, bigint];
144
362
  export declare function blockStateReference(state: StateReference): BlockStateReference;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE1BQU0sV0FBVyx1QkFBdUI7SUFDdEMsbURBQW1EO0lBQ25ELHNCQUFzQixFQUFFLFdBQVcsQ0FBQztJQUNwQyxpRUFBaUU7SUFDakUsb0JBQW9CLEVBQUUsV0FBVyxDQUFDO0lBQ2xDLHFFQUFxRTtJQUNyRSxxQkFBcUIsRUFBRSxXQUFXLENBQUM7SUFDbkMsb0RBQW9EO0lBQ3BELGVBQWUsRUFBRSxPQUFPLENBQUM7Q0FDMUI7QUFFRCxNQUFNLFdBQVcsUUFBUTtJQUN2QiwyQkFBMkI7SUFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLDRCQUE0QjtJQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2Qsc0RBQXNEO0lBQ3RELElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixxQ0FBcUM7SUFDckMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixtQ0FBbUM7SUFDbkMsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULDhCQUE4QjtJQUM5QixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLHFDQUFxQztJQUNyQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ2hCLDZEQUE2RDtJQUM3RCxtQkFBbUIsRUFBRSxXQUFXLENBQUM7SUFDakMsdURBQXVEO0lBQ3ZELHNCQUFzQixFQUFFLFdBQVcsQ0FBQztJQUNwQyxxREFBcUQ7SUFDckQsb0JBQW9CLEVBQUUsV0FB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
363
+ export {};
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsb0JBQVkscUJBQXFCO0lBQy9CLGFBQWEsTUFBTTtJQUNuQixtQkFBbUIsTUFBQTtJQUNuQiwyQkFBMkIsTUFBQTtJQUUzQixjQUFjLE1BQUE7SUFDZCxpQkFBaUIsTUFBQTtJQUNqQixnQkFBZ0IsTUFBQTtJQUNoQixrQ0FBa0MsTUFBQTtJQUVsQyxpQkFBaUIsTUFBQTtJQUNqQixhQUFhLE1BQUE7SUFDYixrQkFBa0IsTUFBQTtJQUVsQixhQUFhLE1BQUE7SUFDYixZQUFZLE1BQUE7SUFDWixpQkFBaUIsTUFBQTtJQUVqQixjQUFjLE1BQUE7SUFFZCxNQUFNLE1BQUE7SUFDTixRQUFRLE1BQUE7SUFFUixVQUFVLE1BQUE7SUFFVixXQUFXLE1BQUE7SUFDWCxXQUFXLE1BQUE7SUFFWCxlQUFlLE1BQUE7SUFDZixhQUFhLE1BQUE7SUFDYix3QkFBd0IsTUFBQTtJQUV4QixVQUFVLE1BQUE7SUFFVixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNqQixpQkFBaUIsTUFBQTtJQUNq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