@aztec/world-state 4.0.0-nightly.20260111 → 4.0.0-nightly.20260113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/synchronizer/server_world_state_synchronizer.d.ts +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.js +37 -9
- package/package.json +10 -10
- package/src/synchronizer/server_world_state_synchronizer.ts +22 -5
|
@@ -67,4 +67,4 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
67
67
|
*/
|
|
68
68
|
private setCurrentState;
|
|
69
69
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9zZXJ2ZXJfd29ybGRfc3RhdGVfc3luY2hyb25pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHbEUsT0FBTyxFQUlMLEtBQUssYUFBYSxFQUNsQixhQUFhLEVBQ2IsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyx5QkFBeUIsRUFDOUIsS0FBSyw4QkFBOEIsRUFDbkMsS0FBSyxNQUFNLEVBQ1osTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBR0wsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyw0QkFBNEIsRUFDbEMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFnQixLQUFLLHdCQUF3QixFQUFFLEtBQUsseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdsSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVsRixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3BELFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0FBRWpDOzs7O0dBSUc7QUFDSCxxQkFBYSw0QkFDWCxZQUFXLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLHlCQUF5QjtJQWlCMUYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYTtJQUM5QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLGVBQWU7SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBbkJ0QixPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUEyQjtJQUUvRCxPQUFPLENBQUMsd0JBQXdCLENBQW9CO0lBQ3BELE9BQU8sQ0FBQyxhQUFhLENBQXFCO0lBQzFDLE9BQU8sQ0FBQyxZQUFZLENBQXVEO0lBQzNFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBaUY7SUFFN0csT0FBTyxDQUFDLFdBQVcsQ0FBZ0M7SUFDbkQsU0FBUyxDQUFDLFdBQVcsRUFBRSxhQUFhLEdBQUcsU0FBUyxDQUFDO0lBSWpELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBMEI7SUFFbkQsWUFDbUIsWUFBWSxFQUFFLHVCQUF1QixFQUNyQyxhQUFhLEVBQUUsYUFBYSxHQUFHLG1CQUFtQixFQUNsRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQ2pDLGVBQWUsNEJBQXNELEVBQzVELEdBQUcsR0FBRSxNQUFvQyxFQVMzRDtJQUVNLFlBQVksSUFBSSx3QkFBd0IsQ0FFOUM7SUFFTSxXQUFXLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyx3QkFBd0IsQ0FFckU7SUFFTSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FFM0c7SUFFTSxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FFbEg7SUFFTSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUU1QjtJQUVZLEtBQUssbUZBZ0NqQjtJQUVELFNBQVMsQ0FBQyxpQkFBaUIsSUFBSSxhQUFhLENBUTNDO0lBRVksSUFBSSxrQkFPaEI7SUFFWSxNQUFNLElBQUksT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBYTNEO0lBRVksb0JBQW9CLHlCQUVoQztJQUVZLFFBQVEsa0JBSXBCO0lBRU0sVUFBVSxTQU9oQjtJQUVEOzs7OztPQUtHO0lBQ1UsYUFBYSxDQUN4QixpQkFBaUIsQ0FBQyxFQUFFLFdBQVcsRUFDL0IsMkJBQTJCLENBQUMsRUFBRSxPQUFPLEdBQ3BDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0E2Q3RCO0lBRUQsb0dBQW9HO0lBQ3ZGLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBYTVFO0lBRUQsZ0dBQWdHO0lBQ25GLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBd0J4QztJQUVELG9EQUFvRDtJQUN2QyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWU1RTtZQU9hLGNBQWM7WUF5Q2QsYUFBYTtZQWdCYixvQkFBb0I7SUFlbEMsT0FBTyxDQUFDLGlCQUFpQjtZQU1YLGlCQUFpQjtJQVEvQjs7O09BR0c7SUFDSCxPQUFPLENBQUMsZUFBZTtDQUl4QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":"
|
|
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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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { GENESIS_BLOCK_HEADER_HASH, INITIAL_L2_BLOCK_NUM, INITIAL_L2_CHECKPOINT_NUM } from '@aztec/constants';
|
|
1
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
4
5
|
import { elapsed } from '@aztec/foundation/timer';
|
|
5
|
-
import { L2BlockStream } from '@aztec/stdlib/block';
|
|
6
|
+
import { GENESIS_CHECKPOINT_HEADER_HASH, L2BlockStream } from '@aztec/stdlib/block';
|
|
6
7
|
import { WorldStateRunningState } from '@aztec/stdlib/interfaces/server';
|
|
7
8
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
8
9
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -87,7 +88,8 @@ import { WorldStateSynchronizerError } from './errors.js';
|
|
|
87
88
|
return new L2BlockStream(this.l2BlockSource, this, this, logger, {
|
|
88
89
|
proven: this.config.worldStateProvenBlocksOnly,
|
|
89
90
|
pollIntervalMS: this.config.worldStateBlockCheckIntervalMS,
|
|
90
|
-
batchSize: this.config.worldStateBlockRequestBatchSize
|
|
91
|
+
batchSize: this.config.worldStateBlockRequestBatchSize,
|
|
92
|
+
ignoreCheckpoints: true
|
|
91
93
|
});
|
|
92
94
|
}
|
|
93
95
|
async stop() {
|
|
@@ -113,7 +115,7 @@ import { WorldStateSynchronizerError } from './errors.js';
|
|
|
113
115
|
};
|
|
114
116
|
}
|
|
115
117
|
async getLatestBlockNumber() {
|
|
116
|
-
return (await this.getL2Tips()).
|
|
118
|
+
return (await this.getL2Tips()).proposed.number;
|
|
117
119
|
}
|
|
118
120
|
async stopSync() {
|
|
119
121
|
this.log.debug('Stopping sync...');
|
|
@@ -189,22 +191,48 @@ import { WorldStateSynchronizerError } from './errors.js';
|
|
|
189
191
|
number: status.unfinalizedBlockNumber,
|
|
190
192
|
hash: unfinalizedBlockHash
|
|
191
193
|
};
|
|
194
|
+
// World state doesn't track checkpointed blocks or checkpoints themselves.
|
|
195
|
+
// but we use a block stream so we need to provide 'local' L2Tips.
|
|
196
|
+
// We configure the block stream to ignore checkpoints and set checkpoint values to genesis here.
|
|
197
|
+
const genesisCheckpointHeaderHash = GENESIS_CHECKPOINT_HEADER_HASH.toString();
|
|
192
198
|
return {
|
|
193
|
-
|
|
199
|
+
proposed: latestBlockId,
|
|
200
|
+
checkpointed: {
|
|
201
|
+
block: {
|
|
202
|
+
number: INITIAL_L2_BLOCK_NUM,
|
|
203
|
+
hash: GENESIS_BLOCK_HEADER_HASH.toString()
|
|
204
|
+
},
|
|
205
|
+
checkpoint: {
|
|
206
|
+
number: INITIAL_L2_CHECKPOINT_NUM,
|
|
207
|
+
hash: genesisCheckpointHeaderHash
|
|
208
|
+
}
|
|
209
|
+
},
|
|
194
210
|
finalized: {
|
|
195
|
-
|
|
196
|
-
|
|
211
|
+
block: {
|
|
212
|
+
number: status.finalizedBlockNumber,
|
|
213
|
+
hash: ''
|
|
214
|
+
},
|
|
215
|
+
checkpoint: {
|
|
216
|
+
number: INITIAL_L2_CHECKPOINT_NUM,
|
|
217
|
+
hash: genesisCheckpointHeaderHash
|
|
218
|
+
}
|
|
197
219
|
},
|
|
198
220
|
proven: {
|
|
199
|
-
|
|
200
|
-
|
|
221
|
+
block: {
|
|
222
|
+
number: this.provenBlockNumber ?? status.finalizedBlockNumber,
|
|
223
|
+
hash: ''
|
|
224
|
+
},
|
|
225
|
+
checkpoint: {
|
|
226
|
+
number: INITIAL_L2_CHECKPOINT_NUM,
|
|
227
|
+
hash: genesisCheckpointHeaderHash
|
|
228
|
+
}
|
|
201
229
|
}
|
|
202
230
|
};
|
|
203
231
|
}
|
|
204
232
|
/** Handles an event emitted by the block stream. */ async handleBlockStreamEvent(event) {
|
|
205
233
|
switch(event.type){
|
|
206
234
|
case 'blocks-added':
|
|
207
|
-
await this.handleL2Blocks(event.blocks
|
|
235
|
+
await this.handleL2Blocks(event.blocks);
|
|
208
236
|
break;
|
|
209
237
|
case 'chain-pruned':
|
|
210
238
|
await this.handleChainPruned(event.block.number);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/world-state",
|
|
3
|
-
"version": "4.0.0-nightly.
|
|
3
|
+
"version": "4.0.0-nightly.20260113",
|
|
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": "4.0.0-nightly.
|
|
68
|
-
"@aztec/foundation": "4.0.0-nightly.
|
|
69
|
-
"@aztec/kv-store": "4.0.0-nightly.
|
|
70
|
-
"@aztec/merkle-tree": "4.0.0-nightly.
|
|
71
|
-
"@aztec/native": "4.0.0-nightly.
|
|
72
|
-
"@aztec/protocol-contracts": "4.0.0-nightly.
|
|
73
|
-
"@aztec/stdlib": "4.0.0-nightly.
|
|
74
|
-
"@aztec/telemetry-client": "4.0.0-nightly.
|
|
67
|
+
"@aztec/constants": "4.0.0-nightly.20260113",
|
|
68
|
+
"@aztec/foundation": "4.0.0-nightly.20260113",
|
|
69
|
+
"@aztec/kv-store": "4.0.0-nightly.20260113",
|
|
70
|
+
"@aztec/merkle-tree": "4.0.0-nightly.20260113",
|
|
71
|
+
"@aztec/native": "4.0.0-nightly.20260113",
|
|
72
|
+
"@aztec/protocol-contracts": "4.0.0-nightly.20260113",
|
|
73
|
+
"@aztec/stdlib": "4.0.0-nightly.20260113",
|
|
74
|
+
"@aztec/telemetry-client": "4.0.0-nightly.20260113",
|
|
75
75
|
"tslib": "^2.4.0",
|
|
76
76
|
"zod": "^3.23.8"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
-
"@aztec/archiver": "4.0.0-nightly.
|
|
79
|
+
"@aztec/archiver": "4.0.0-nightly.20260113",
|
|
80
80
|
"@jest/globals": "^30.0.0",
|
|
81
81
|
"@types/jest": "^30.0.0",
|
|
82
82
|
"@types/node": "^22.15.17",
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { GENESIS_BLOCK_HEADER_HASH, INITIAL_L2_BLOCK_NUM, INITIAL_L2_CHECKPOINT_NUM } from '@aztec/constants';
|
|
1
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
5
6
|
import { elapsed } from '@aztec/foundation/timer';
|
|
6
7
|
import {
|
|
8
|
+
GENESIS_CHECKPOINT_HEADER_HASH,
|
|
7
9
|
type L2BlockId,
|
|
8
10
|
type L2BlockNew,
|
|
9
11
|
type L2BlockSource,
|
|
@@ -131,6 +133,7 @@ export class ServerWorldStateSynchronizer
|
|
|
131
133
|
proven: this.config.worldStateProvenBlocksOnly,
|
|
132
134
|
pollIntervalMS: this.config.worldStateBlockCheckIntervalMS,
|
|
133
135
|
batchSize: this.config.worldStateBlockRequestBatchSize,
|
|
136
|
+
ignoreCheckpoints: true,
|
|
134
137
|
});
|
|
135
138
|
}
|
|
136
139
|
|
|
@@ -159,7 +162,7 @@ export class ServerWorldStateSynchronizer
|
|
|
159
162
|
}
|
|
160
163
|
|
|
161
164
|
public async getLatestBlockNumber() {
|
|
162
|
-
return (await this.getL2Tips()).
|
|
165
|
+
return (await this.getL2Tips()).proposed.number;
|
|
163
166
|
}
|
|
164
167
|
|
|
165
168
|
public async stopSync() {
|
|
@@ -255,10 +258,24 @@ export class ServerWorldStateSynchronizer
|
|
|
255
258
|
const unfinalizedBlockHash = await this.getL2BlockHash(status.unfinalizedBlockNumber);
|
|
256
259
|
const latestBlockId: L2BlockId = { number: status.unfinalizedBlockNumber, hash: unfinalizedBlockHash! };
|
|
257
260
|
|
|
261
|
+
// World state doesn't track checkpointed blocks or checkpoints themselves.
|
|
262
|
+
// but we use a block stream so we need to provide 'local' L2Tips.
|
|
263
|
+
// We configure the block stream to ignore checkpoints and set checkpoint values to genesis here.
|
|
264
|
+
const genesisCheckpointHeaderHash = GENESIS_CHECKPOINT_HEADER_HASH.toString();
|
|
258
265
|
return {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
266
|
+
proposed: latestBlockId,
|
|
267
|
+
checkpointed: {
|
|
268
|
+
block: { number: INITIAL_L2_BLOCK_NUM, hash: GENESIS_BLOCK_HEADER_HASH.toString() },
|
|
269
|
+
checkpoint: { number: INITIAL_L2_CHECKPOINT_NUM, hash: genesisCheckpointHeaderHash },
|
|
270
|
+
},
|
|
271
|
+
finalized: {
|
|
272
|
+
block: { number: status.finalizedBlockNumber, hash: '' },
|
|
273
|
+
checkpoint: { number: INITIAL_L2_CHECKPOINT_NUM, hash: genesisCheckpointHeaderHash },
|
|
274
|
+
},
|
|
275
|
+
proven: {
|
|
276
|
+
block: { number: this.provenBlockNumber ?? status.finalizedBlockNumber, hash: '' },
|
|
277
|
+
checkpoint: { number: INITIAL_L2_CHECKPOINT_NUM, hash: genesisCheckpointHeaderHash },
|
|
278
|
+
}, // TODO(palla/reorg): Using finalized as proven for now
|
|
262
279
|
};
|
|
263
280
|
}
|
|
264
281
|
|
|
@@ -266,7 +283,7 @@ export class ServerWorldStateSynchronizer
|
|
|
266
283
|
public async handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void> {
|
|
267
284
|
switch (event.type) {
|
|
268
285
|
case 'blocks-added':
|
|
269
|
-
await this.handleL2Blocks(event.blocks
|
|
286
|
+
await this.handleL2Blocks(event.blocks);
|
|
270
287
|
break;
|
|
271
288
|
case 'chain-pruned':
|
|
272
289
|
await this.handleChainPruned(event.block.number);
|