@aztec/world-state 0.64.0 → 0.65.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/native/native_world_state.d.ts +7 -3
- package/dest/native/native_world_state.d.ts.map +1 -1
- package/dest/native/native_world_state.js +27 -15
- package/dest/native/native_world_state_instance.d.ts +3 -1
- package/dest/native/native_world_state_instance.d.ts.map +1 -1
- package/dest/native/native_world_state_instance.js +16 -4
- package/dest/native/world_state_version.d.ts +12 -3
- package/dest/native/world_state_version.d.ts.map +1 -1
- package/dest/native/world_state_version.js +12 -20
- package/dest/synchronizer/config.d.ts +2 -0
- package/dest/synchronizer/config.d.ts.map +1 -1
- package/dest/synchronizer/config.js +7 -2
- package/dest/synchronizer/server_world_state_synchronizer.d.ts +2 -0
- package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/server_world_state_synchronizer.js +28 -6
- package/package.json +10 -9
- package/src/native/native_world_state.ts +62 -24
- package/src/native/native_world_state_instance.ts +14 -2
- package/src/native/world_state_version.ts +12 -21
- package/src/synchronizer/config.ts +14 -1
- package/src/synchronizer/server_world_state_synchronizer.ts +32 -5
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { type IndexedTreeId, type L2Block, type MerkleTreeReadOperations, type MerkleTreeWriteOperations } from '@aztec/circuit-types';
|
|
4
4
|
import { EthAddress, Fr, Header, type NullifierLeafPreimage } from '@aztec/circuits.js';
|
|
5
5
|
import { type MerkleTreeAdminDatabase as MerkleTreeDatabase } from '../world-state-db/merkle_tree_db.js';
|
|
6
|
-
import { type WorldStateStatusFull } from './message.js';
|
|
6
|
+
import { type WorldStateStatusFull, type WorldStateStatusSummary } from './message.js';
|
|
7
7
|
import { NativeWorldState } from './native_world_state_instance.js';
|
|
8
8
|
export declare const WORLD_STATE_VERSION_FILE = "version";
|
|
9
9
|
export declare const WORLD_STATE_DB_VERSION = 1;
|
|
@@ -12,6 +12,7 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
12
12
|
protected readonly log: import("@aztec/foundation/log").Logger;
|
|
13
13
|
private readonly cleanup;
|
|
14
14
|
protected initialHeader: Header | undefined;
|
|
15
|
+
private cachedStatusSummary;
|
|
15
16
|
protected constructor(instance: NativeWorldState, log?: import("@aztec/foundation/log").Logger, cleanup?: () => Promise<void>);
|
|
16
17
|
static new(rollupAddress: EthAddress, dataDir: string, dbMapSizeKb: number, log?: import("@aztec/foundation/log").Logger, cleanup?: () => Promise<void>): Promise<NativeWorldStateService>;
|
|
17
18
|
static tmp(rollupAddress?: EthAddress, cleanupTmpDir?: boolean): Promise<NativeWorldStateService>;
|
|
@@ -23,12 +24,15 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
23
24
|
handleL2BlockAndMessages(l2Block: L2Block, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull>;
|
|
24
25
|
close(): Promise<void>;
|
|
25
26
|
private buildInitialHeader;
|
|
27
|
+
private sanitiseAndCacheSummaryFromFull;
|
|
28
|
+
private sanitiseAndCacheSummary;
|
|
29
|
+
private deleteCachedSummary;
|
|
26
30
|
/**
|
|
27
31
|
* Advances the finalised block number to be the number provided
|
|
28
32
|
* @param toBlockNumber The block number that is now the tip of the finalised chain
|
|
29
33
|
* @returns The new WorldStateStatus
|
|
30
34
|
*/
|
|
31
|
-
setFinalised(toBlockNumber: bigint): Promise<
|
|
35
|
+
setFinalised(toBlockNumber: bigint): Promise<WorldStateStatusSummary>;
|
|
32
36
|
/**
|
|
33
37
|
* Removes all historical snapshots up to but not including the given block number
|
|
34
38
|
* @param toBlockNumber The block number of the new oldest historical block
|
|
@@ -41,7 +45,7 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
41
45
|
* @returns The new WorldStateStatus
|
|
42
46
|
*/
|
|
43
47
|
unwindBlocks(toBlockNumber: bigint): Promise<WorldStateStatusFull>;
|
|
44
|
-
getStatusSummary(): Promise<
|
|
48
|
+
getStatusSummary(): Promise<WorldStateStatusSummary>;
|
|
45
49
|
updateLeaf<ID extends IndexedTreeId>(_treeId: ID, _leaf: NullifierLeafPreimage | Buffer, _index: bigint): Promise<void>;
|
|
46
50
|
private getInitialStateReference;
|
|
47
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,OAAO,EAEZ,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,EAAE,EACF,MAAM,EAKN,KAAK,qBAAqB,EAI3B,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,KAAK,uBAAuB,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzG,OAAO,EAEL,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,OAAO,EAEZ,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,EAAE,EACF,MAAM,EAKN,KAAK,qBAAqB,EAI3B,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,KAAK,uBAAuB,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzG,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAM7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAOlD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,qBAAa,uBAAwB,YAAW,kBAAkB;IAM9D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IAC7C,SAAS,CAAC,QAAQ,CAAC,GAAG;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5C,OAAO,CAAC,mBAAmB,CAAsC;IAEjE,SAAS,aACY,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,yCAAkD,EACvD,OAAO,sBAA0B;WAGvC,GAAG,CACd,aAAa,EAAE,UAAU,EACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,GAAG,yCAAkD,EACrD,OAAO,sBAA0B,GAChC,OAAO,CAAC,uBAAuB,CAAC;WAiCtB,GAAG,CAAC,aAAa,aAAkB,EAAE,aAAa,UAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;cAmBzF,IAAI;IAoBb,YAAY,IAAI,wBAAwB;IAIxC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB;IAIpD,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAQpE,gBAAgB,IAAI,MAAM;IAIpB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+C/F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAKrB,kBAAkB;IAKhC,OAAO,CAAC,+BAA+B;IAMvC,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACU,YAAY,CAAC,aAAa,EAAE,MAAM;IAY/C;;;;OAIG;IACU,sBAAsB,CAAC,aAAa,EAAE,MAAM;IAWzD;;;;OAIG;IACU,YAAY,CAAC,aAAa,EAAE,MAAM;IAWlC,gBAAgB;IAO7B,UAAU,CAAC,EAAE,SAAS,aAAa,EACjC,OAAO,EAAE,EAAE,EACX,KAAK,EAAE,qBAAqB,GAAG,MAAM,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;YAIF,wBAAwB;CAYvC"}
|
|
@@ -122,7 +122,7 @@ export class NativeWorldStateService {
|
|
|
122
122
|
return new PublicDataTreeLeaf(write.leafSlot, write.value);
|
|
123
123
|
}));
|
|
124
124
|
}
|
|
125
|
-
|
|
125
|
+
return await this.instance.call(WorldStateMessageType.SYNC_BLOCK, {
|
|
126
126
|
blockNumber: l2Block.number,
|
|
127
127
|
blockHeaderHash: l2Block.header.hash(),
|
|
128
128
|
paddedL1ToL2Messages: paddedL1ToL2Messages.map(serializeLeaf),
|
|
@@ -130,8 +130,7 @@ export class NativeWorldStateService {
|
|
|
130
130
|
paddedNullifiers: paddedNullifiers.map(serializeLeaf),
|
|
131
131
|
batchesOfPublicDataWrites: batchesOfPublicDataWrites.map(batch => batch.map(serializeLeaf)),
|
|
132
132
|
blockStateRef: blockStateReference(l2Block.header.state),
|
|
133
|
-
});
|
|
134
|
-
return sanitiseFullStatus(response);
|
|
133
|
+
}, this.sanitiseAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
|
|
135
134
|
}
|
|
136
135
|
async close() {
|
|
137
136
|
await this.instance.close();
|
|
@@ -141,16 +140,29 @@ export class NativeWorldStateService {
|
|
|
141
140
|
const state = await this.getInitialStateReference();
|
|
142
141
|
return Header.empty({ state });
|
|
143
142
|
}
|
|
143
|
+
sanitiseAndCacheSummaryFromFull(response) {
|
|
144
|
+
const sanitised = sanitiseFullStatus(response);
|
|
145
|
+
this.cachedStatusSummary = { ...sanitised.summary };
|
|
146
|
+
return sanitised;
|
|
147
|
+
}
|
|
148
|
+
sanitiseAndCacheSummary(response) {
|
|
149
|
+
const sanitised = sanitiseSummary(response);
|
|
150
|
+
this.cachedStatusSummary = { ...sanitised };
|
|
151
|
+
return sanitised;
|
|
152
|
+
}
|
|
153
|
+
deleteCachedSummary(_) {
|
|
154
|
+
this.cachedStatusSummary = undefined;
|
|
155
|
+
}
|
|
144
156
|
/**
|
|
145
157
|
* Advances the finalised block number to be the number provided
|
|
146
158
|
* @param toBlockNumber The block number that is now the tip of the finalised chain
|
|
147
159
|
* @returns The new WorldStateStatus
|
|
148
160
|
*/
|
|
149
161
|
async setFinalised(toBlockNumber) {
|
|
150
|
-
|
|
162
|
+
await this.instance.call(WorldStateMessageType.FINALISE_BLOCKS, {
|
|
151
163
|
toBlockNumber,
|
|
152
|
-
});
|
|
153
|
-
return
|
|
164
|
+
}, this.sanitiseAndCacheSummary.bind(this), this.deleteCachedSummary.bind(this));
|
|
165
|
+
return this.getStatusSummary();
|
|
154
166
|
}
|
|
155
167
|
/**
|
|
156
168
|
* Removes all historical snapshots up to but not including the given block number
|
|
@@ -158,10 +170,9 @@ export class NativeWorldStateService {
|
|
|
158
170
|
* @returns The new WorldStateStatus
|
|
159
171
|
*/
|
|
160
172
|
async removeHistoricalBlocks(toBlockNumber) {
|
|
161
|
-
|
|
173
|
+
return await this.instance.call(WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS, {
|
|
162
174
|
toBlockNumber,
|
|
163
|
-
});
|
|
164
|
-
return sanitiseFullStatus(response);
|
|
175
|
+
}, this.sanitiseAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
|
|
165
176
|
}
|
|
166
177
|
/**
|
|
167
178
|
* Removes all pending blocks down to but not including the given block number
|
|
@@ -169,14 +180,15 @@ export class NativeWorldStateService {
|
|
|
169
180
|
* @returns The new WorldStateStatus
|
|
170
181
|
*/
|
|
171
182
|
async unwindBlocks(toBlockNumber) {
|
|
172
|
-
|
|
183
|
+
return await this.instance.call(WorldStateMessageType.UNWIND_BLOCKS, {
|
|
173
184
|
toBlockNumber,
|
|
174
|
-
});
|
|
175
|
-
return sanitiseFullStatus(response);
|
|
185
|
+
}, this.sanitiseAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
|
|
176
186
|
}
|
|
177
187
|
async getStatusSummary() {
|
|
178
|
-
|
|
179
|
-
|
|
188
|
+
if (this.cachedStatusSummary !== undefined) {
|
|
189
|
+
return { ...this.cachedStatusSummary };
|
|
190
|
+
}
|
|
191
|
+
return await this.instance.call(WorldStateMessageType.GET_STATUS, void 0, this.sanitiseAndCacheSummary.bind(this));
|
|
180
192
|
}
|
|
181
193
|
updateLeaf(_treeId, _leaf, _index) {
|
|
182
194
|
return Promise.reject(new Error('Method not implemented'));
|
|
@@ -186,4 +198,4 @@ export class NativeWorldStateService {
|
|
|
186
198
|
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])));
|
|
187
199
|
}
|
|
188
200
|
}
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9uYXRpdmVfd29ybGRfc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFlBQVksRUFHWixRQUFRLEdBQ1QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsVUFBVSxFQUNWLEVBQUUsRUFDRixNQUFNLEVBQ04sc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixtQ0FBbUMsRUFDbkMsYUFBYSxFQUViLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUM1QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLDRCQUE0QixFQUM1QixrQkFBa0IsR0FDbkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsU0FBUyxD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
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9uYXRpdmVfd29ybGRfc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFlBQVksRUFHWixRQUFRLEdBQ1QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsVUFBVSxFQUNWLEVBQUUsRUFDRixNQUFNLEVBQ04sc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixtQ0FBbUMsRUFDbkMsYUFBYSxFQUViLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsY0FBYyxHQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztBQUM1QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRyxPQUFPLEVBQ0wscUJBQXFCLEVBR3JCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLDRCQUE0QixFQUM1QixrQkFBa0IsR0FDbkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsU0FBUyxD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
|
|
@@ -29,9 +29,11 @@ export declare class NativeWorldState implements NativeWorldStateInstance {
|
|
|
29
29
|
* Sends a message to the native instance and returns the response.
|
|
30
30
|
* @param messageType - The type of message to send
|
|
31
31
|
* @param body - The message body
|
|
32
|
+
* @param responseHandler - A callback accepting the response, executed on the job queue
|
|
33
|
+
* @param errorHandler - A callback called on request error, executed on the job queue
|
|
32
34
|
* @returns The response to the message
|
|
33
35
|
*/
|
|
34
|
-
call<T extends WorldStateMessageType>(messageType: T, body: WorldStateRequest[T]): Promise<WorldStateResponse[T]>;
|
|
36
|
+
call<T extends WorldStateMessageType>(messageType: T, body: WorldStateRequest[T], responseHandler?: (response: WorldStateResponse[T]) => WorldStateResponse[T], errorHandler?: (_: string) => void): Promise<WorldStateResponse[T]>;
|
|
35
37
|
/**
|
|
36
38
|
* Stops the native instance.
|
|
37
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_world_state_instance.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state_instance.ts"],"names":[],"mappings":";;AAsBA,OAAO,EAGL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AAYtB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9C;AAQD,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,CAAC,SAAS,qBAAqB,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CACnH;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,wBAAwB;IA2Bb,OAAO,CAAC,GAAG;IA1B7D,OAAO,CAAC,IAAI,CAAQ;IAEpB,qCAAqC;IACrC,OAAO,CAAC,aAAa,CAAK;IAE1B,mCAAmC;IACnC,OAAO,CAAC,OAAO,CAKZ;IAEH,mCAAmC;IACnC,OAAO,CAAC,OAAO,CAGZ;IAEH,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAM;IAEtB,gDAAgD;IAChD,OAAO,CAAC,KAAK,CAAqB;IAElC,+CAA+C;gBACnC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAU,GAAG,yCAAkD;IAsB/G
|
|
1
|
+
{"version":3,"file":"native_world_state_instance.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state_instance.ts"],"names":[],"mappings":";;AAsBA,OAAO,EAGL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AAYtB,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9C;AAQD,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,CAAC,SAAS,qBAAqB,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CACnH;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,wBAAwB;IA2Bb,OAAO,CAAC,GAAG;IA1B7D,OAAO,CAAC,IAAI,CAAQ;IAEpB,qCAAqC;IACrC,OAAO,CAAC,aAAa,CAAK;IAE1B,mCAAmC;IACnC,OAAO,CAAC,OAAO,CAKZ;IAEH,mCAAmC;IACnC,OAAO,CAAC,OAAO,CAGZ;IAEH,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAM;IAEtB,gDAAgD;IAChD,OAAO,CAAC,KAAK,CAAqB;IAElC,+CAA+C;gBACnC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAU,GAAG,yCAAkD;IAsB/G;;;;;;;OAOG;IACI,IAAI,CAAC,CAAC,SAAS,qBAAqB,EACzC,WAAW,EAAE,CAAC,EACd,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAE1B,eAAe,cAAc,kBAAkB,CAAC,CAAC,CAAC,KAAG,kBAAkB,CAAC,CAAC,CAAa,EACtF,YAAY,OAAO,MAAM,SAAO,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAejC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YASrB,YAAY;CA4H3B"}
|
|
@@ -63,13 +63,25 @@ export class NativeWorldState {
|
|
|
63
63
|
* Sends a message to the native instance and returns the response.
|
|
64
64
|
* @param messageType - The type of message to send
|
|
65
65
|
* @param body - The message body
|
|
66
|
+
* @param responseHandler - A callback accepting the response, executed on the job queue
|
|
67
|
+
* @param errorHandler - A callback called on request error, executed on the job queue
|
|
66
68
|
* @returns The response to the message
|
|
67
69
|
*/
|
|
68
|
-
call(messageType, body
|
|
69
|
-
|
|
70
|
+
call(messageType, body,
|
|
71
|
+
// allows for the pre-processing of responses on the job queue before being passed back
|
|
72
|
+
responseHandler = (response) => response, errorHandler = (_) => { }) {
|
|
73
|
+
return this.queue.put(async () => {
|
|
70
74
|
assert.notEqual(messageType, WorldStateMessageType.CLOSE, 'Use close() to close the native instance');
|
|
71
75
|
assert.equal(this.open, true, 'Native instance is closed');
|
|
72
|
-
|
|
76
|
+
let response;
|
|
77
|
+
try {
|
|
78
|
+
response = await this._sendMessage(messageType, body);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
errorHandler(error.message);
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
return responseHandler(response);
|
|
73
85
|
});
|
|
74
86
|
}
|
|
75
87
|
/**
|
|
@@ -180,4 +192,4 @@ export class NativeWorldState {
|
|
|
180
192
|
return response.value;
|
|
181
193
|
}
|
|
182
194
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlX2luc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS9uYXRpdmVfd29ybGRfc3RhdGVfaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxjQUFjLEVBQ2QsRUFBRSxFQUNGLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLDRDQUE0QyxFQUM1QyxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsWUFBWSxFQUNaLHFCQUFxQixHQUd0QixNQUFNLGNBQWMsQ0FBQztBQUV0QixxR0FBcUc7QUFDckcsc0dBQXNHO0FBQ3RHLHlGQUF5RjtBQUN6RiwyR0FBMkc7QUFDM0csNkNBQTZDO0FBQzdDLFlBQVksQ0FBQztJQUNYLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUMzQixDQUFDLENBQUM7QUFNSCxNQUFNLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO0FBQy9DLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRXZDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3BELE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBTW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQTBCM0IsK0NBQStDO0lBQy9DLFlBQVksT0FBZSxFQUFFLFdBQW1CLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQyw0QkFBNEIsQ0FBQztRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFrRDtRQTFCdkcsU0FBSSxHQUFHLElBQUksQ0FBQztRQUVwQixxQ0FBcUM7UUFDN0Isa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFMUIsbUNBQW1DO1FBQzNCLFlBQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztZQUM1QiwrQ0FBK0M7WUFDL0MsMkRBQTJEO1lBQzNELFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxRQUFRO1NBQ3RCLENBQUMsQ0FBQztRQUVILG1DQUFtQztRQUMzQixZQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDNUIsVUFBVSxFQUFFLEtBQUs7WUFDakIsV0FBVyxFQUFFLFFBQVE7U0FDdEIsQ0FBQyxDQUFDO1FBS0gsZ0RBQWdEO1FBQ3hDLFVBQUssR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBSWhDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0RBQWdELE9BQU8sa0JBQWtCLFdBQVcsS0FBSyxDQUFDLENBQUM7UUFDcEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNsRCxPQUFPLEVBQ1A7WUFDRSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxxQkFBcUI7WUFDcEQsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUscUJBQXFCO1lBQ3BELENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsdUJBQXVCO1lBQ3hELENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsd0JBQXdCO1lBQzlELENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGNBQWM7U0FDdkMsRUFDRDtZQUNFLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsR0FBRyxxQkFBcUI7WUFDeEQsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEdBQUcsNENBQTRDO1NBQ2xGLEVBQ0QsY0FBYyxDQUFDLFVBQVUsRUFDekIsV0FBVyxFQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksSUFBSSxDQUNULFdBQWMsRUFDZCxJQUEwQjtJQUMxQix1RkFBdUY7SUFDdkYsa0JBQWtCLENBQUMsUUFBK0IsRUFBeUIsRUFBRSxDQUFDLFFBQVEsRUFDdEYsZUFBZSxDQUFDLENBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUVoQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLEtBQUssRUFBRSwwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3RHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztZQUMzRCxJQUFJLFFBQStCLENBQUM7WUFDcEMsSUFBSSxDQUFDO2dCQUNILFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO2dCQUNwQixZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QixNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEUsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUN4QixXQUFjLEVBQ2QsSUFBMEI7UUFFMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLElBQUksR0FBd0IsRUFBRSxDQUFDO1lBQ25DLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBRUQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFFRCxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0IsQ0FBQztZQUVELElBQUksYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN6QyxDQUFDO1lBRUQsSUFBSSxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzdDLENBQUM7WUFFRCxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDckMsQ0FBQztZQUVELElBQUksaUJBQWlCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBRUQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25CLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztxQkFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDM0MsQ0FBQztZQUVELGlCQUFpQjtZQUNqQixJQUFJLGtCQUFrQixJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztnQkFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztnQkFDdkQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztnQkFDL0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9HLENBQUM7WUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsU0FBUyxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxTQUFTLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEgsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsU0FBUyxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUUxQixNQUFNLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxhQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXBDLElBQUksZUFBb0IsQ0FBQztRQUN6QixJQUFJLENBQUM7WUFDSCxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixTQUFTLElBQUkscUJBQXFCLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRyxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLEdBQUcsZ0JBQWdCLENBQUM7UUFFbkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7WUFDMUMsQ0FBQyxDQUFDLGVBQWU7WUFDakIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUM5QixDQUFDLENBQUMsZUFBZSxDQUFDO1FBRXBCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLFNBQVMsQ0FDakIsZ0VBQWdFO2dCQUM5RCxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxlQUFlLENBQUMsQ0FDL0QsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLFNBQVMsQ0FDakIsbURBQW1EO2dCQUNqRCxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxlQUFlLENBQUMsQ0FDL0QsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUEyQixlQUFlLENBQUMsQ0FBQztRQUN6RixNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNaLGtCQUFrQixTQUFTLElBQUkscUJBQXFCLENBQUMsV0FBVyxDQUFDLGNBQWMsVUFBVSxDQUFDO1lBQ3hGLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGdCQUFnQjtTQUNqQixDQUFDLEVBQUUsQ0FDTCxDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNELE1BQU0sSUFBSSxLQUFLLENBQ2Isc0NBQXNDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUN2RyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDeEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { z } from 'zod';
|
|
2
3
|
export declare class WorldStateVersion {
|
|
3
4
|
readonly version: number;
|
|
4
5
|
readonly rollupAddress: EthAddress;
|
|
5
6
|
constructor(version: number, rollupAddress: EthAddress);
|
|
6
7
|
static readVersion(filename: string): Promise<WorldStateVersion | undefined>;
|
|
7
8
|
writeVersionFile(filename: string): Promise<void>;
|
|
8
|
-
|
|
9
|
+
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
10
|
+
version: z.ZodNumber;
|
|
11
|
+
rollupAddress: z.ZodType<EthAddress, any, string>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
version: number;
|
|
14
|
+
rollupAddress: EthAddress;
|
|
15
|
+
}, {
|
|
16
|
+
version: number;
|
|
17
|
+
rollupAddress: string;
|
|
18
|
+
}>, WorldStateVersion, {
|
|
9
19
|
version: number;
|
|
10
20
|
rollupAddress: string;
|
|
11
|
-
}
|
|
12
|
-
static fromJSON(obj: any): WorldStateVersion;
|
|
21
|
+
}>;
|
|
13
22
|
static empty(): WorldStateVersion;
|
|
14
23
|
}
|
|
15
24
|
//# sourceMappingURL=world_state_version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world_state_version.d.ts","sourceRoot":"","sources":["../../src/native/world_state_version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"world_state_version.d.ts","sourceRoot":"","sources":["../../src/native/world_state_version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qBAAa,iBAAiB;aACA,OAAO,EAAE,MAAM;aAAkB,aAAa,EAAE,UAAU;gBAA1D,OAAO,EAAE,MAAM,EAAkB,aAAa,EAAE,UAAU;WAEzE,WAAW,CAAC,QAAQ,EAAE,MAAM;IAK5B,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAK9C,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;CAGb"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
3
|
import { readFile, writeFile } from 'fs/promises';
|
|
4
|
+
import { z } from 'zod';
|
|
3
5
|
export class WorldStateVersion {
|
|
4
6
|
constructor(version, rollupAddress) {
|
|
5
7
|
this.version = version;
|
|
@@ -7,32 +9,22 @@ export class WorldStateVersion {
|
|
|
7
9
|
}
|
|
8
10
|
static async readVersion(filename) {
|
|
9
11
|
const versionData = await readFile(filename, 'utf-8').catch(() => undefined);
|
|
10
|
-
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
const versionJSON = JSON.parse(versionData);
|
|
14
|
-
if (versionJSON.version === undefined || versionJSON.rollupAddress === undefined) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
return WorldStateVersion.fromJSON(versionJSON);
|
|
12
|
+
return versionData === undefined ? undefined : jsonParseWithSchema(versionData, WorldStateVersion.schema);
|
|
18
13
|
}
|
|
19
14
|
async writeVersionFile(filename) {
|
|
20
|
-
const data =
|
|
15
|
+
const data = jsonStringify(this);
|
|
21
16
|
await writeFile(filename, data, 'utf-8');
|
|
22
17
|
}
|
|
23
|
-
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const version = obj.version;
|
|
31
|
-
const rollupAddress = EthAddress.fromString(obj.rollupAddress);
|
|
32
|
-
return new WorldStateVersion(version, rollupAddress);
|
|
18
|
+
static get schema() {
|
|
19
|
+
return z
|
|
20
|
+
.object({
|
|
21
|
+
version: z.number(),
|
|
22
|
+
rollupAddress: EthAddress.schema,
|
|
23
|
+
})
|
|
24
|
+
.transform(({ version, rollupAddress }) => new WorldStateVersion(version, rollupAddress));
|
|
33
25
|
}
|
|
34
26
|
static empty() {
|
|
35
27
|
return new WorldStateVersion(0, EthAddress.ZERO);
|
|
36
28
|
}
|
|
37
29
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ybGRfc3RhdGVfdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uYXRpdmUvd29ybGRfc3RhdGVfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUE0QixPQUFlLEVBQWtCLGFBQXlCO1FBQTFELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBa0Isa0JBQWEsR0FBYixhQUFhLENBQVk7SUFBRyxDQUFDO0lBRTFGLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sUUFBUSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0UsT0FBTyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQWdCO1FBQzVDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxNQUFNLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLEtBQUssTUFBTTtRQUNmLE9BQU8sQ0FBQzthQUNMLE1BQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25CLGFBQWEsRUFBRSxVQUFVLENBQUMsTUFBTTtTQUNqQyxDQUFDO2FBQ0QsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsT0FBTyxJQUFJLGlCQUFpQixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIn0=
|
|
@@ -11,6 +11,8 @@ export interface WorldStateConfig {
|
|
|
11
11
|
worldStateDbMapSizeKb?: number;
|
|
12
12
|
/** Optional directory for the world state DB, if unspecified will default to the general data directory */
|
|
13
13
|
worldStateDataDirectory?: string;
|
|
14
|
+
/** The number of historic blocks to maintain */
|
|
15
|
+
worldStateBlockHistory: number;
|
|
14
16
|
}
|
|
15
17
|
export declare const worldStateConfigMappings: ConfigMappingsType<WorldStateConfig>;
|
|
16
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/synchronizer/config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/synchronizer/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,8BAA8B,EAAE,MAAM,CAAC;IAEvC,+CAA+C;IAC/C,0BAA0B,EAAE,OAAO,CAAC;IAEpC,2FAA2F;IAC3F,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC,mJAAmJ;IACnJ,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,2GAA2G;IAC3G,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CA+BzE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,gBAAgB,CAE7D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
|
|
1
|
+
import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, } from '@aztec/foundation/config';
|
|
2
2
|
export const worldStateConfigMappings = {
|
|
3
3
|
worldStateBlockCheckIntervalMS: {
|
|
4
4
|
env: 'WS_BLOCK_CHECK_INTERVAL_MS',
|
|
@@ -25,6 +25,11 @@ export const worldStateConfigMappings = {
|
|
|
25
25
|
env: 'WS_DATA_DIRECTORY',
|
|
26
26
|
description: 'Optional directory for the world state database',
|
|
27
27
|
},
|
|
28
|
+
worldStateBlockHistory: {
|
|
29
|
+
env: 'WS_NUM_HISTORIC_BLOCKS',
|
|
30
|
+
description: 'The number of historic blocks to maintain. Values less than 1 mean all history is maintained',
|
|
31
|
+
...numberConfigHelper(64),
|
|
32
|
+
},
|
|
28
33
|
};
|
|
29
34
|
/**
|
|
30
35
|
* Returns the configuration values for the world state synchronizer.
|
|
@@ -33,4 +38,4 @@ export const worldStateConfigMappings = {
|
|
|
33
38
|
export function getWorldStateConfigFromEnv() {
|
|
34
39
|
return getConfigFromMappings(worldStateConfigMappings);
|
|
35
40
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEdBQ25CLE1BQU0sMEJBQTBCLENBQUM7QUF1QmxDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUF5QztJQUM1RSw4QkFBOEIsRUFBRTtRQUM5QixHQUFHLEVBQUUsNEJBQTRCO1FBQ2pDLFFBQVEsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHO1FBQy9CLFlBQVksRUFBRSxHQUFHO1FBQ2pCLFdBQVcsRUFBRSxrQ0FBa0M7S0FDaEQ7SUFDRCwwQkFBMEIsRUFBRTtRQUMxQixHQUFHLEVBQUUsdUJBQXVCO1FBQzVCLFdBQVcsRUFBRSwwQ0FBMEM7UUFDdkQsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELCtCQUErQixFQUFFO1FBQy9CLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsUUFBUSxFQUFFLENBQUMsR0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0QsV0FBVyxFQUFFLHNGQUFzRjtLQUNwRztJQUNELHFCQUFxQixFQUFFO1FBQ3JCLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsUUFBUSxFQUFFLENBQUMsR0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDL0QsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRDtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRDtJQUNELHNCQUFzQixFQUFFO1FBQ3RCLEdBQUcsRUFBRSx3QkFBd0I7UUFDN0IsV0FBVyxFQUFFLDhGQUE4RjtRQUMzRyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztLQUMxQjtDQUNGLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE9BQU8scUJBQXFCLENBQW1CLHdCQUF3QixDQUFDLENBQUM7QUFDM0UsQ0FBQyJ9
|
|
@@ -17,7 +17,9 @@ export declare class ServerWorldStateSynchronizer implements WorldStateSynchroni
|
|
|
17
17
|
private readonly log;
|
|
18
18
|
private readonly merkleTreeCommitted;
|
|
19
19
|
private latestBlockNumberAtStart;
|
|
20
|
+
private historyToKeep;
|
|
20
21
|
private currentState;
|
|
22
|
+
private latestBlockHashQuery;
|
|
21
23
|
private syncPromise;
|
|
22
24
|
protected blockStream: L2BlockStream | undefined;
|
|
23
25
|
private instrumentation;
|
|
@@ -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,EACL,KAAK,mBAAmB,EAGxB,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,MAAM,EAEX,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,4BACX,YAAW,sBAAsB,EAAE,8BAA8B,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"server_world_state_synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/server_world_state_synchronizer.ts"],"names":[],"mappings":";;AAAA,OAAO,EACL,KAAK,mBAAmB,EAGxB,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,MAAM,EAEX,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE9B,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,4BACX,YAAW,sBAAsB,EAAE,8BAA8B,EAAE,yBAAyB;IAc1F,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAhBtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAE/D,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAuD;IAC3E,OAAO,CAAC,oBAAoB,CAA4E;IAExG,OAAO,CAAC,WAAW,CAAgC;IACnD,SAAS,CAAC,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,eAAe,CAA4B;gBAGhC,YAAY,EAAE,uBAAuB,EACrC,aAAa,EAAE,aAAa,GAAG,mBAAmB,EAClD,MAAM,EAAE,gBAAgB,EACzC,SAAS,EAAE,eAAe,EACT,GAAG,yCAAyC;IAYxD,YAAY,IAAI,wBAAwB;IAIxC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB;IAI1D,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAIxD,KAAK;IAgClB,SAAS,CAAC,iBAAiB;IAQd,IAAI;IASJ,MAAM,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAO/C,oBAAoB;IAIjC;;;;OAIG;IACU,aAAa,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBvE,oGAAoG;IACvF,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAexE,gGAAgG;IACnF,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAYzC,oDAAoD;IACvC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7E;;;;OAIG;YACW,cAAc;IAwB5B;;;;;OAKG;YACW,aAAa;YAkBb,oBAAoB;IAclC,OAAO,CAAC,iBAAiB;YAKX,iBAAiB;IAO/B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM;CAa1E"}
|
|
@@ -19,9 +19,12 @@ export class ServerWorldStateSynchronizer {
|
|
|
19
19
|
this.log = log;
|
|
20
20
|
this.latestBlockNumberAtStart = 0;
|
|
21
21
|
this.currentState = WorldStateRunningState.IDLE;
|
|
22
|
+
this.latestBlockHashQuery = undefined;
|
|
22
23
|
this.syncPromise = promiseWithResolvers();
|
|
23
24
|
this.instrumentation = new WorldStateInstrumentation(telemetry);
|
|
24
25
|
this.merkleTreeCommitted = this.merkleTreeDb.getCommitted();
|
|
26
|
+
this.historyToKeep = config.worldStateBlockHistory < 1 ? undefined : config.worldStateBlockHistory;
|
|
27
|
+
this.log.info(`Created world state synchroniser with block history of ${this.historyToKeep === undefined ? 'infinity' : this.historyToKeep}`);
|
|
25
28
|
}
|
|
26
29
|
getCommitted() {
|
|
27
30
|
return this.merkleTreeDb.getCommitted();
|
|
@@ -109,10 +112,19 @@ export class ServerWorldStateSynchronizer {
|
|
|
109
112
|
return updatedBlockNumber;
|
|
110
113
|
}
|
|
111
114
|
/** Returns the L2 block hash for a given number. Used by the L2BlockStream for detecting reorgs. */
|
|
112
|
-
getL2BlockHash(number) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
async getL2BlockHash(number) {
|
|
116
|
+
if (number === 0) {
|
|
117
|
+
return Promise.resolve(this.merkleTreeCommitted.getInitialHeader().hash().toString());
|
|
118
|
+
}
|
|
119
|
+
if (this.latestBlockHashQuery?.hash === undefined || number !== this.latestBlockHashQuery.blockNumber) {
|
|
120
|
+
this.latestBlockHashQuery = {
|
|
121
|
+
hash: await this.merkleTreeCommitted
|
|
122
|
+
.getLeafValue(MerkleTreeId.ARCHIVE, BigInt(number))
|
|
123
|
+
.then(leaf => leaf?.toString()),
|
|
124
|
+
blockNumber: number,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return this.latestBlockHashQuery.hash;
|
|
116
128
|
}
|
|
117
129
|
/** Returns the latest L2 block number for each tip of the chain (latest, proven, finalized). */
|
|
118
130
|
async getL2Tips() {
|
|
@@ -196,7 +208,16 @@ export class ServerWorldStateSynchronizer {
|
|
|
196
208
|
}
|
|
197
209
|
async handleChainFinalized(blockNumber) {
|
|
198
210
|
this.log.verbose(`Chain finalized at block ${blockNumber}`);
|
|
199
|
-
await this.merkleTreeDb.setFinalised(BigInt(blockNumber));
|
|
211
|
+
const summary = await this.merkleTreeDb.setFinalised(BigInt(blockNumber));
|
|
212
|
+
if (this.historyToKeep === undefined) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const newHistoricBlock = summary.finalisedBlockNumber - BigInt(this.historyToKeep) + 1n;
|
|
216
|
+
if (newHistoricBlock <= 1) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
this.log.verbose(`Pruning historic blocks to ${newHistoricBlock}`);
|
|
220
|
+
await this.merkleTreeDb.removeHistoricalBlocks(newHistoricBlock);
|
|
200
221
|
}
|
|
201
222
|
handleChainProven(blockNumber) {
|
|
202
223
|
this.log.verbose(`Chain proven at block ${blockNumber}`);
|
|
@@ -205,6 +226,7 @@ export class ServerWorldStateSynchronizer {
|
|
|
205
226
|
async handleChainPruned(blockNumber) {
|
|
206
227
|
this.log.info(`Chain pruned to block ${blockNumber}`);
|
|
207
228
|
const status = await this.merkleTreeDb.unwindBlocks(BigInt(blockNumber));
|
|
229
|
+
this.latestBlockHashQuery = undefined;
|
|
208
230
|
this.instrumentation.updateWorldStateMetrics(status);
|
|
209
231
|
}
|
|
210
232
|
/**
|
|
@@ -229,4 +251,4 @@ export class ServerWorldStateSynchronizer {
|
|
|
229
251
|
}
|
|
230
252
|
}
|
|
231
253
|
}
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0wsYUFBYSxFQUtiLFlBQVksRUFHWixzQkFBc0IsR0FHdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBWXZDLFlBQ21CLFlBQXFDLEVBQ3JDLGFBQWtELEVBQ2xELE1BQXdCLEVBQ3pDLFNBQTBCLEVBQ1QsTUFBTSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQztRQUo1QyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXFDO1FBQ2xELFdBQU0sR0FBTixNQUFNLENBQWtCO1FBRXhCLFFBQUcsR0FBSCxHQUFHLENBQXlDO1FBWnZELDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUM3QixpQkFBWSxHQUEyQixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFFbkUsZ0JBQVcsR0FBRyxvQkFBb0IsRUFBUSxDQUFDO1FBV2pELElBQUksQ0FBQyxlQUFl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
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jaHJvbml6ZXIvc2VydmVyX3dvcmxkX3N0YXRlX3N5bmNocm9uaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0wsYUFBYSxFQUtiLFlBQVksRUFHWixzQkFBc0IsR0FHdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBY3ZDLFlBQ21CLFlBQXFDLEVBQ3JDLGFBQWtELEVBQ2xELE1BQXdCLEVBQ3pDLFNBQTBCLEVBQ1QsTUFBTSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQztRQUo1QyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXFDO1FBQ2xELFdBQU0sR0FBTixNQUFNLENBQWtCO1FBRXhCLFFBQUcsR0FBSCxHQUFHLENBQXlDO1FBZHZELDZCQUF3QixHQUFHLENBQUMsQ0FBQztRQUU3QixpQkFBWSxHQUEyQixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFDbkUseUJBQW9CLEdBQWtFLFNBQVMsQ0FBQztRQUVoRyxnQkFBVyxHQUFHLG9CQUFvQixF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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/world-state",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.65.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -62,16 +62,17 @@
|
|
|
62
62
|
]
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@aztec/circuit-types": "0.
|
|
66
|
-
"@aztec/circuits.js": "0.
|
|
67
|
-
"@aztec/foundation": "0.
|
|
68
|
-
"@aztec/kv-store": "0.
|
|
69
|
-
"@aztec/merkle-tree": "0.
|
|
70
|
-
"@aztec/telemetry-client": "0.
|
|
71
|
-
"@aztec/types": "0.
|
|
65
|
+
"@aztec/circuit-types": "0.65.1",
|
|
66
|
+
"@aztec/circuits.js": "0.65.1",
|
|
67
|
+
"@aztec/foundation": "0.65.1",
|
|
68
|
+
"@aztec/kv-store": "0.65.1",
|
|
69
|
+
"@aztec/merkle-tree": "0.65.1",
|
|
70
|
+
"@aztec/telemetry-client": "0.65.1",
|
|
71
|
+
"@aztec/types": "0.65.1",
|
|
72
72
|
"bindings": "^1.5.0",
|
|
73
73
|
"msgpackr": "^1.10.2",
|
|
74
|
-
"tslib": "^2.4.0"
|
|
74
|
+
"tslib": "^2.4.0",
|
|
75
|
+
"zod": "^3.23.8"
|
|
75
76
|
},
|
|
76
77
|
"devDependencies": {
|
|
77
78
|
"@aztec/archiver": "workspace:^",
|
|
@@ -32,6 +32,7 @@ import { MerkleTreesFacade, MerkleTreesForkFacade, serializeLeaf } from './merkl
|
|
|
32
32
|
import {
|
|
33
33
|
WorldStateMessageType,
|
|
34
34
|
type WorldStateStatusFull,
|
|
35
|
+
type WorldStateStatusSummary,
|
|
35
36
|
blockStateReference,
|
|
36
37
|
sanitiseFullStatus,
|
|
37
38
|
sanitiseSummary,
|
|
@@ -52,6 +53,8 @@ export const WORLD_STATE_DB_VERSION = 1; // The initial version
|
|
|
52
53
|
|
|
53
54
|
export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
54
55
|
protected initialHeader: Header | undefined;
|
|
56
|
+
// This is read heavily and only changes when data is persisted, so we cache it
|
|
57
|
+
private cachedStatusSummary: WorldStateStatusSummary | undefined;
|
|
55
58
|
|
|
56
59
|
protected constructor(
|
|
57
60
|
protected readonly instance: NativeWorldState,
|
|
@@ -188,16 +191,20 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
188
191
|
);
|
|
189
192
|
}
|
|
190
193
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
return await this.instance.call(
|
|
195
|
+
WorldStateMessageType.SYNC_BLOCK,
|
|
196
|
+
{
|
|
197
|
+
blockNumber: l2Block.number,
|
|
198
|
+
blockHeaderHash: l2Block.header.hash(),
|
|
199
|
+
paddedL1ToL2Messages: paddedL1ToL2Messages.map(serializeLeaf),
|
|
200
|
+
paddedNoteHashes: paddedNoteHashes.map(serializeLeaf),
|
|
201
|
+
paddedNullifiers: paddedNullifiers.map(serializeLeaf),
|
|
202
|
+
batchesOfPublicDataWrites: batchesOfPublicDataWrites.map(batch => batch.map(serializeLeaf)),
|
|
203
|
+
blockStateRef: blockStateReference(l2Block.header.state),
|
|
204
|
+
},
|
|
205
|
+
this.sanitiseAndCacheSummaryFromFull.bind(this),
|
|
206
|
+
this.deleteCachedSummary.bind(this),
|
|
207
|
+
);
|
|
201
208
|
}
|
|
202
209
|
|
|
203
210
|
public async close(): Promise<void> {
|
|
@@ -210,16 +217,37 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
210
217
|
return Header.empty({ state });
|
|
211
218
|
}
|
|
212
219
|
|
|
220
|
+
private sanitiseAndCacheSummaryFromFull(response: WorldStateStatusFull) {
|
|
221
|
+
const sanitised = sanitiseFullStatus(response);
|
|
222
|
+
this.cachedStatusSummary = { ...sanitised.summary };
|
|
223
|
+
return sanitised;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
private sanitiseAndCacheSummary(response: WorldStateStatusSummary) {
|
|
227
|
+
const sanitised = sanitiseSummary(response);
|
|
228
|
+
this.cachedStatusSummary = { ...sanitised };
|
|
229
|
+
return sanitised;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
private deleteCachedSummary(_: string) {
|
|
233
|
+
this.cachedStatusSummary = undefined;
|
|
234
|
+
}
|
|
235
|
+
|
|
213
236
|
/**
|
|
214
237
|
* Advances the finalised block number to be the number provided
|
|
215
238
|
* @param toBlockNumber The block number that is now the tip of the finalised chain
|
|
216
239
|
* @returns The new WorldStateStatus
|
|
217
240
|
*/
|
|
218
241
|
public async setFinalised(toBlockNumber: bigint) {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
242
|
+
await this.instance.call(
|
|
243
|
+
WorldStateMessageType.FINALISE_BLOCKS,
|
|
244
|
+
{
|
|
245
|
+
toBlockNumber,
|
|
246
|
+
},
|
|
247
|
+
this.sanitiseAndCacheSummary.bind(this),
|
|
248
|
+
this.deleteCachedSummary.bind(this),
|
|
249
|
+
);
|
|
250
|
+
return this.getStatusSummary();
|
|
223
251
|
}
|
|
224
252
|
|
|
225
253
|
/**
|
|
@@ -228,10 +256,14 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
228
256
|
* @returns The new WorldStateStatus
|
|
229
257
|
*/
|
|
230
258
|
public async removeHistoricalBlocks(toBlockNumber: bigint) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
259
|
+
return await this.instance.call(
|
|
260
|
+
WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS,
|
|
261
|
+
{
|
|
262
|
+
toBlockNumber,
|
|
263
|
+
},
|
|
264
|
+
this.sanitiseAndCacheSummaryFromFull.bind(this),
|
|
265
|
+
this.deleteCachedSummary.bind(this),
|
|
266
|
+
);
|
|
235
267
|
}
|
|
236
268
|
|
|
237
269
|
/**
|
|
@@ -240,15 +272,21 @@ export class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
240
272
|
* @returns The new WorldStateStatus
|
|
241
273
|
*/
|
|
242
274
|
public async unwindBlocks(toBlockNumber: bigint) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
275
|
+
return await this.instance.call(
|
|
276
|
+
WorldStateMessageType.UNWIND_BLOCKS,
|
|
277
|
+
{
|
|
278
|
+
toBlockNumber,
|
|
279
|
+
},
|
|
280
|
+
this.sanitiseAndCacheSummaryFromFull.bind(this),
|
|
281
|
+
this.deleteCachedSummary.bind(this),
|
|
282
|
+
);
|
|
247
283
|
}
|
|
248
284
|
|
|
249
285
|
public async getStatusSummary() {
|
|
250
|
-
|
|
251
|
-
|
|
286
|
+
if (this.cachedStatusSummary !== undefined) {
|
|
287
|
+
return { ...this.cachedStatusSummary };
|
|
288
|
+
}
|
|
289
|
+
return await this.instance.call(WorldStateMessageType.GET_STATUS, void 0, this.sanitiseAndCacheSummary.bind(this));
|
|
252
290
|
}
|
|
253
291
|
|
|
254
292
|
updateLeaf<ID extends IndexedTreeId>(
|
|
@@ -108,16 +108,28 @@ export class NativeWorldState implements NativeWorldStateInstance {
|
|
|
108
108
|
* Sends a message to the native instance and returns the response.
|
|
109
109
|
* @param messageType - The type of message to send
|
|
110
110
|
* @param body - The message body
|
|
111
|
+
* @param responseHandler - A callback accepting the response, executed on the job queue
|
|
112
|
+
* @param errorHandler - A callback called on request error, executed on the job queue
|
|
111
113
|
* @returns The response to the message
|
|
112
114
|
*/
|
|
113
115
|
public call<T extends WorldStateMessageType>(
|
|
114
116
|
messageType: T,
|
|
115
117
|
body: WorldStateRequest[T],
|
|
118
|
+
// allows for the pre-processing of responses on the job queue before being passed back
|
|
119
|
+
responseHandler = (response: WorldStateResponse[T]): WorldStateResponse[T] => response,
|
|
120
|
+
errorHandler = (_: string) => {},
|
|
116
121
|
): Promise<WorldStateResponse[T]> {
|
|
117
|
-
return this.queue.put(() => {
|
|
122
|
+
return this.queue.put(async () => {
|
|
118
123
|
assert.notEqual(messageType, WorldStateMessageType.CLOSE, 'Use close() to close the native instance');
|
|
119
124
|
assert.equal(this.open, true, 'Native instance is closed');
|
|
120
|
-
|
|
125
|
+
let response: WorldStateResponse[T];
|
|
126
|
+
try {
|
|
127
|
+
response = await this._sendMessage(messageType, body);
|
|
128
|
+
} catch (error: any) {
|
|
129
|
+
errorHandler(error.message);
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
return responseHandler(response);
|
|
121
133
|
});
|
|
122
134
|
}
|
|
123
135
|
|
|
@@ -1,38 +1,29 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/circuits.js';
|
|
2
|
+
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
2
3
|
|
|
3
4
|
import { readFile, writeFile } from 'fs/promises';
|
|
5
|
+
import { z } from 'zod';
|
|
4
6
|
|
|
5
7
|
export class WorldStateVersion {
|
|
6
|
-
constructor(readonly version: number, readonly rollupAddress: EthAddress) {}
|
|
8
|
+
constructor(public readonly version: number, public readonly rollupAddress: EthAddress) {}
|
|
7
9
|
|
|
8
10
|
static async readVersion(filename: string) {
|
|
9
11
|
const versionData = await readFile(filename, 'utf-8').catch(() => undefined);
|
|
10
|
-
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
const versionJSON = JSON.parse(versionData);
|
|
14
|
-
if (versionJSON.version === undefined || versionJSON.rollupAddress === undefined) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
return WorldStateVersion.fromJSON(versionJSON);
|
|
12
|
+
return versionData === undefined ? undefined : jsonParseWithSchema(versionData, WorldStateVersion.schema);
|
|
18
13
|
}
|
|
19
14
|
|
|
20
15
|
public async writeVersionFile(filename: string) {
|
|
21
|
-
const data =
|
|
16
|
+
const data = jsonStringify(this);
|
|
22
17
|
await writeFile(filename, data, 'utf-8');
|
|
23
18
|
}
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
static fromJSON(obj: any): WorldStateVersion {
|
|
33
|
-
const version = obj.version;
|
|
34
|
-
const rollupAddress = EthAddress.fromString(obj.rollupAddress);
|
|
35
|
-
return new WorldStateVersion(version, rollupAddress);
|
|
20
|
+
static get schema() {
|
|
21
|
+
return z
|
|
22
|
+
.object({
|
|
23
|
+
version: z.number(),
|
|
24
|
+
rollupAddress: EthAddress.schema,
|
|
25
|
+
})
|
|
26
|
+
.transform(({ version, rollupAddress }) => new WorldStateVersion(version, rollupAddress));
|
|
36
27
|
}
|
|
37
28
|
|
|
38
29
|
static empty() {
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
type ConfigMappingsType,
|
|
3
|
+
booleanConfigHelper,
|
|
4
|
+
getConfigFromMappings,
|
|
5
|
+
numberConfigHelper,
|
|
6
|
+
} from '@aztec/foundation/config';
|
|
2
7
|
|
|
3
8
|
/** World State synchronizer configuration values. */
|
|
4
9
|
export interface WorldStateConfig {
|
|
@@ -16,6 +21,9 @@ export interface WorldStateConfig {
|
|
|
16
21
|
|
|
17
22
|
/** Optional directory for the world state DB, if unspecified will default to the general data directory */
|
|
18
23
|
worldStateDataDirectory?: string;
|
|
24
|
+
|
|
25
|
+
/** The number of historic blocks to maintain */
|
|
26
|
+
worldStateBlockHistory: number;
|
|
19
27
|
}
|
|
20
28
|
|
|
21
29
|
export const worldStateConfigMappings: ConfigMappingsType<WorldStateConfig> = {
|
|
@@ -44,6 +52,11 @@ export const worldStateConfigMappings: ConfigMappingsType<WorldStateConfig> = {
|
|
|
44
52
|
env: 'WS_DATA_DIRECTORY',
|
|
45
53
|
description: 'Optional directory for the world state database',
|
|
46
54
|
},
|
|
55
|
+
worldStateBlockHistory: {
|
|
56
|
+
env: 'WS_NUM_HISTORIC_BLOCKS',
|
|
57
|
+
description: 'The number of historic blocks to maintain. Values less than 1 mean all history is maintained',
|
|
58
|
+
...numberConfigHelper(64),
|
|
59
|
+
},
|
|
47
60
|
};
|
|
48
61
|
|
|
49
62
|
/**
|
|
@@ -41,7 +41,9 @@ export class ServerWorldStateSynchronizer
|
|
|
41
41
|
private readonly merkleTreeCommitted: MerkleTreeReadOperations;
|
|
42
42
|
|
|
43
43
|
private latestBlockNumberAtStart = 0;
|
|
44
|
+
private historyToKeep: number | undefined;
|
|
44
45
|
private currentState: WorldStateRunningState = WorldStateRunningState.IDLE;
|
|
46
|
+
private latestBlockHashQuery: { blockNumber: number; hash: string | undefined } | undefined = undefined;
|
|
45
47
|
|
|
46
48
|
private syncPromise = promiseWithResolvers<void>();
|
|
47
49
|
protected blockStream: L2BlockStream | undefined;
|
|
@@ -56,6 +58,12 @@ export class ServerWorldStateSynchronizer
|
|
|
56
58
|
) {
|
|
57
59
|
this.instrumentation = new WorldStateInstrumentation(telemetry);
|
|
58
60
|
this.merkleTreeCommitted = this.merkleTreeDb.getCommitted();
|
|
61
|
+
this.historyToKeep = config.worldStateBlockHistory < 1 ? undefined : config.worldStateBlockHistory;
|
|
62
|
+
this.log.info(
|
|
63
|
+
`Created world state synchroniser with block history of ${
|
|
64
|
+
this.historyToKeep === undefined ? 'infinity' : this.historyToKeep
|
|
65
|
+
}`,
|
|
66
|
+
);
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
public getCommitted(): MerkleTreeReadOperations {
|
|
@@ -160,10 +168,19 @@ export class ServerWorldStateSynchronizer
|
|
|
160
168
|
}
|
|
161
169
|
|
|
162
170
|
/** Returns the L2 block hash for a given number. Used by the L2BlockStream for detecting reorgs. */
|
|
163
|
-
public getL2BlockHash(number: number): Promise<string | undefined> {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
171
|
+
public async getL2BlockHash(number: number): Promise<string | undefined> {
|
|
172
|
+
if (number === 0) {
|
|
173
|
+
return Promise.resolve(this.merkleTreeCommitted.getInitialHeader().hash().toString());
|
|
174
|
+
}
|
|
175
|
+
if (this.latestBlockHashQuery?.hash === undefined || number !== this.latestBlockHashQuery.blockNumber) {
|
|
176
|
+
this.latestBlockHashQuery = {
|
|
177
|
+
hash: await this.merkleTreeCommitted
|
|
178
|
+
.getLeafValue(MerkleTreeId.ARCHIVE, BigInt(number))
|
|
179
|
+
.then(leaf => leaf?.toString()),
|
|
180
|
+
blockNumber: number,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return this.latestBlockHashQuery.hash;
|
|
167
184
|
}
|
|
168
185
|
|
|
169
186
|
/** Returns the latest L2 block number for each tip of the chain (latest, proven, finalized). */
|
|
@@ -256,7 +273,16 @@ export class ServerWorldStateSynchronizer
|
|
|
256
273
|
|
|
257
274
|
private async handleChainFinalized(blockNumber: number) {
|
|
258
275
|
this.log.verbose(`Chain finalized at block ${blockNumber}`);
|
|
259
|
-
await this.merkleTreeDb.setFinalised(BigInt(blockNumber));
|
|
276
|
+
const summary = await this.merkleTreeDb.setFinalised(BigInt(blockNumber));
|
|
277
|
+
if (this.historyToKeep === undefined) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
const newHistoricBlock = summary.finalisedBlockNumber - BigInt(this.historyToKeep) + 1n;
|
|
281
|
+
if (newHistoricBlock <= 1) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
this.log.verbose(`Pruning historic blocks to ${newHistoricBlock}`);
|
|
285
|
+
await this.merkleTreeDb.removeHistoricalBlocks(newHistoricBlock);
|
|
260
286
|
}
|
|
261
287
|
|
|
262
288
|
private handleChainProven(blockNumber: number) {
|
|
@@ -267,6 +293,7 @@ export class ServerWorldStateSynchronizer
|
|
|
267
293
|
private async handleChainPruned(blockNumber: number) {
|
|
268
294
|
this.log.info(`Chain pruned to block ${blockNumber}`);
|
|
269
295
|
const status = await this.merkleTreeDb.unwindBlocks(BigInt(blockNumber));
|
|
296
|
+
this.latestBlockHashQuery = undefined;
|
|
270
297
|
this.instrumentation.updateWorldStateMetrics(status);
|
|
271
298
|
}
|
|
272
299
|
|