@aztec/archiver 0.0.1-commit.d3ec352c → 0.0.1-commit.fcb71a6
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/archiver/archiver.d.ts +84 -70
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +439 -228
- package/dest/archiver/archiver_store.d.ts +95 -43
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +1847 -366
- package/dest/archiver/config.d.ts +5 -4
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +10 -3
- package/dest/archiver/errors.d.ts +25 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/errors.js +37 -0
- package/dest/archiver/index.d.ts +2 -2
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/instrumentation.d.ts +3 -1
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +11 -0
- package/dest/archiver/kv_archiver_store/block_store.d.ts +50 -18
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +320 -84
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.js +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +40 -51
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +65 -48
- package/dest/archiver/kv_archiver_store/log_store.d.ts +12 -16
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +148 -84
- package/dest/archiver/kv_archiver_store/message_store.d.ts +6 -5
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +15 -14
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
- package/dest/archiver/l1/bin/retrieve-calldata.js +149 -0
- package/dest/archiver/l1/calldata_retriever.d.ts +112 -0
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/archiver/l1/calldata_retriever.js +471 -0
- package/dest/archiver/l1/data_retrieval.d.ts +90 -0
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
- package/dest/archiver/{data_retrieval.js → l1/data_retrieval.js} +50 -106
- package/dest/archiver/l1/debug_tx.d.ts +19 -0
- package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
- package/dest/archiver/l1/debug_tx.js +73 -0
- package/dest/archiver/l1/spire_proposer.d.ts +70 -0
- package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
- package/dest/archiver/l1/spire_proposer.js +157 -0
- package/dest/archiver/l1/trace_tx.d.ts +97 -0
- package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
- package/dest/archiver/l1/trace_tx.js +91 -0
- package/dest/archiver/l1/types.d.ts +12 -0
- package/dest/archiver/l1/types.d.ts.map +1 -0
- package/dest/archiver/l1/types.js +3 -0
- package/dest/archiver/l1/validate_trace.d.ts +29 -0
- package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
- package/dest/archiver/l1/validate_trace.js +150 -0
- package/dest/archiver/structs/inbox_message.d.ts +4 -4
- package/dest/archiver/structs/inbox_message.d.ts.map +1 -1
- package/dest/archiver/structs/inbox_message.js +6 -6
- package/dest/archiver/structs/published.d.ts +1 -2
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/factory.d.ts +1 -1
- package/dest/factory.js +1 -1
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/test/mock_archiver.d.ts +4 -5
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +5 -9
- package/dest/test/mock_l1_to_l2_message_source.d.ts +5 -6
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +7 -11
- package/dest/test/mock_l2_block_source.d.ts +11 -4
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +18 -17
- package/dest/test/mock_structs.d.ts +3 -2
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +9 -9
- package/package.json +15 -14
- package/src/archiver/archiver.ts +567 -290
- package/src/archiver/archiver_store.ts +104 -42
- package/src/archiver/archiver_store_test_suite.ts +1895 -347
- package/src/archiver/config.ts +15 -10
- package/src/archiver/errors.ts +64 -0
- package/src/archiver/index.ts +1 -1
- package/src/archiver/instrumentation.ts +14 -0
- package/src/archiver/kv_archiver_store/block_store.ts +435 -95
- package/src/archiver/kv_archiver_store/contract_class_store.ts +1 -1
- package/src/archiver/kv_archiver_store/contract_instance_store.ts +1 -1
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +81 -66
- package/src/archiver/kv_archiver_store/log_store.ts +208 -99
- package/src/archiver/kv_archiver_store/message_store.ts +21 -18
- package/src/archiver/l1/README.md +98 -0
- package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
- package/src/archiver/l1/calldata_retriever.ts +641 -0
- package/src/archiver/{data_retrieval.ts → l1/data_retrieval.ts} +96 -161
- package/src/archiver/l1/debug_tx.ts +99 -0
- package/src/archiver/l1/spire_proposer.ts +160 -0
- package/src/archiver/l1/trace_tx.ts +128 -0
- package/src/archiver/l1/types.ts +13 -0
- package/src/archiver/l1/validate_trace.ts +211 -0
- package/src/archiver/structs/inbox_message.ts +7 -8
- package/src/archiver/structs/published.ts +0 -1
- package/src/factory.ts +1 -1
- package/src/index.ts +1 -1
- package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
- package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
- package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
- package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
- package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
- package/src/test/fixtures/trace_transaction-proxied.json +128 -0
- package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
- package/src/test/mock_archiver.ts +6 -11
- package/src/test/mock_l1_to_l2_message_source.ts +6 -11
- package/src/test/mock_l2_block_source.ts +22 -18
- package/src/test/mock_structs.ts +10 -10
- package/dest/archiver/data_retrieval.d.ts +0 -80
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { toArray } from '@aztec/foundation/iterable';
|
|
3
3
|
import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type { L1BlockId } from '@aztec/ethereum';
|
|
2
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
-
import type { Fr } from '@aztec/foundation/
|
|
1
|
+
import type { L1BlockId } from '@aztec/ethereum/l1-types';
|
|
2
|
+
import type { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { toArray } from '@aztec/foundation/iterable';
|
|
5
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
6
6
|
import type { AztecAsyncKVStore, CustomRange, StoreSize } from '@aztec/kv-store';
|
|
7
7
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
8
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
9
|
-
import {
|
|
9
|
+
import { CheckpointedL2Block, L2BlockHash, L2BlockNew, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
10
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
11
|
import type {
|
|
11
12
|
ContractClassPublic,
|
|
12
13
|
ContractDataSource,
|
|
@@ -16,7 +17,7 @@ import type {
|
|
|
16
17
|
UtilityFunctionWithMembershipProof,
|
|
17
18
|
} from '@aztec/stdlib/contract';
|
|
18
19
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
19
|
-
import {
|
|
20
|
+
import type { LogFilter, SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
20
21
|
import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
21
22
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
22
23
|
|
|
@@ -24,14 +25,13 @@ import { join } from 'path';
|
|
|
24
25
|
|
|
25
26
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
26
27
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
27
|
-
import type
|
|
28
|
-
import { BlockStore } from './block_store.js';
|
|
28
|
+
import { BlockStore, type CheckpointData } from './block_store.js';
|
|
29
29
|
import { ContractClassStore } from './contract_class_store.js';
|
|
30
30
|
import { ContractInstanceStore } from './contract_instance_store.js';
|
|
31
31
|
import { LogStore } from './log_store.js';
|
|
32
32
|
import { MessageStore } from './message_store.js';
|
|
33
33
|
|
|
34
|
-
export const ARCHIVER_DB_VERSION =
|
|
34
|
+
export const ARCHIVER_DB_VERSION = 5;
|
|
35
35
|
export const MAX_FUNCTION_SIGNATURES = 1000;
|
|
36
36
|
export const MAX_FUNCTION_NAME_LEN = 256;
|
|
37
37
|
|
|
@@ -67,7 +67,7 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
public getBlockNumber(): Promise<BlockNumber> {
|
|
70
|
-
return this.
|
|
70
|
+
return this.#blockStore.getLatestL2BlockNumber();
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
public async getContract(
|
|
@@ -186,42 +186,52 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
186
186
|
* @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
|
|
187
187
|
* @returns True if the operation is successful.
|
|
188
188
|
*/
|
|
189
|
-
addBlocks(blocks:
|
|
189
|
+
addBlocks(blocks: L2BlockNew[], opts: { force?: boolean; checkpointNumber?: number } = {}): Promise<boolean> {
|
|
190
190
|
return this.#blockStore.addBlocks(blocks, opts);
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
getRangeOfCheckpoints(from: CheckpointNumber, limit: number): Promise<CheckpointData[]> {
|
|
194
|
+
return this.#blockStore.getRangeOfCheckpoints(from, limit);
|
|
195
|
+
}
|
|
196
|
+
getLatestBlockNumber(): Promise<BlockNumber> {
|
|
197
|
+
return this.#blockStore.getLatestBlockNumber();
|
|
198
|
+
}
|
|
199
|
+
|
|
193
200
|
/**
|
|
194
|
-
* Unwinds
|
|
201
|
+
* Unwinds checkpoints from the database
|
|
195
202
|
* @param from - The tip of the chain, passed for verification purposes,
|
|
196
203
|
* ensuring that we don't end up deleting something we did not intend
|
|
197
|
-
* @param
|
|
204
|
+
* @param checkpointsToUnwind - The number of checkpoints we are to unwind
|
|
198
205
|
* @returns True if the operation is successful
|
|
199
206
|
*/
|
|
200
|
-
|
|
201
|
-
return this.#blockStore.
|
|
207
|
+
unwindCheckpoints(from: CheckpointNumber, checkpointsToUnwind: number): Promise<boolean> {
|
|
208
|
+
return this.#blockStore.unwindCheckpoints(from, checkpointsToUnwind);
|
|
202
209
|
}
|
|
203
210
|
|
|
204
|
-
|
|
205
|
-
return this.#blockStore.
|
|
211
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[]): Promise<boolean> {
|
|
212
|
+
return this.#blockStore.addCheckpoints(checkpoints);
|
|
206
213
|
}
|
|
207
214
|
|
|
208
|
-
|
|
215
|
+
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined> {
|
|
216
|
+
return this.#blockStore.getCheckpointedBlock(number);
|
|
217
|
+
}
|
|
218
|
+
getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined> {
|
|
219
|
+
return this.#blockStore.getCheckpointedBlockByHash(blockHash);
|
|
220
|
+
}
|
|
221
|
+
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined> {
|
|
222
|
+
return this.#blockStore.getCheckpointedBlockByArchive(archive);
|
|
223
|
+
}
|
|
224
|
+
getBlock(number: BlockNumber): Promise<L2BlockNew | undefined> {
|
|
225
|
+
return this.#blockStore.getBlock(number);
|
|
226
|
+
}
|
|
227
|
+
getBlockByHash(blockHash: Fr): Promise<L2BlockNew | undefined> {
|
|
209
228
|
return this.#blockStore.getBlockByHash(L2BlockHash.fromField(blockHash));
|
|
210
229
|
}
|
|
211
|
-
|
|
212
|
-
getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined> {
|
|
230
|
+
getBlockByArchive(archive: Fr): Promise<L2BlockNew | undefined> {
|
|
213
231
|
return this.#blockStore.getBlockByArchive(archive);
|
|
214
232
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
218
|
-
*
|
|
219
|
-
* @param start - Number of the first block to return (inclusive).
|
|
220
|
-
* @param limit - The number of blocks to return.
|
|
221
|
-
* @returns The requested L2 blocks
|
|
222
|
-
*/
|
|
223
|
-
getPublishedBlocks(start: BlockNumber, limit: number): Promise<PublishedL2Block[]> {
|
|
224
|
-
return toArray(this.#blockStore.getBlocks(start, limit));
|
|
233
|
+
getBlocks(from: BlockNumber, limit: BlockNumber): Promise<L2BlockNew[]> {
|
|
234
|
+
return toArray(this.#blockStore.getBlocks(from, limit));
|
|
225
235
|
}
|
|
226
236
|
|
|
227
237
|
/**
|
|
@@ -266,11 +276,11 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
266
276
|
* @param blocks - The blocks for which to add the logs.
|
|
267
277
|
* @returns True if the operation is successful.
|
|
268
278
|
*/
|
|
269
|
-
addLogs(blocks:
|
|
279
|
+
addLogs(blocks: L2BlockNew[]): Promise<boolean> {
|
|
270
280
|
return this.#logStore.addLogs(blocks);
|
|
271
281
|
}
|
|
272
282
|
|
|
273
|
-
deleteLogs(blocks:
|
|
283
|
+
deleteLogs(blocks: L2BlockNew[]): Promise<boolean> {
|
|
274
284
|
return this.#logStore.deleteLogs(blocks);
|
|
275
285
|
}
|
|
276
286
|
|
|
@@ -300,34 +310,25 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
300
310
|
}
|
|
301
311
|
|
|
302
312
|
/**
|
|
303
|
-
* Gets L1 to L2 message (to be) included in a given
|
|
304
|
-
* @param
|
|
313
|
+
* Gets L1 to L2 message (to be) included in a given checkpoint.
|
|
314
|
+
* @param checkpointNumber - Checkpoint number to get messages for.
|
|
305
315
|
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
306
316
|
*/
|
|
307
|
-
getL1ToL2Messages(
|
|
308
|
-
return this.#messageStore.getL1ToL2Messages(
|
|
317
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
318
|
+
return this.#messageStore.getL1ToL2Messages(checkpointNumber);
|
|
309
319
|
}
|
|
310
320
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
getPrivateLogs(from: BlockNumber, limit: number): Promise<PrivateLog[]> {
|
|
318
|
-
return this.#logStore.getPrivateLogs(from, limit);
|
|
321
|
+
getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]> {
|
|
322
|
+
try {
|
|
323
|
+
return this.#logStore.getPrivateLogsByTags(tags);
|
|
324
|
+
} catch (err) {
|
|
325
|
+
return Promise.reject(err);
|
|
326
|
+
}
|
|
319
327
|
}
|
|
320
328
|
|
|
321
|
-
|
|
322
|
-
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
323
|
-
* @param tags - The tags to filter the logs by.
|
|
324
|
-
* @param logsPerTag - How many logs to return per tag. Default returns everything
|
|
325
|
-
* @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
|
|
326
|
-
* that tag.
|
|
327
|
-
*/
|
|
328
|
-
getLogsByTags(tags: Fr[], logsPerTag?: number): Promise<TxScopedL2Log[][]> {
|
|
329
|
+
getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]> {
|
|
329
330
|
try {
|
|
330
|
-
return this.#logStore.
|
|
331
|
+
return this.#logStore.getPublicLogsByTagsFromContract(contractAddress, tags);
|
|
331
332
|
} catch (err) {
|
|
332
333
|
return Promise.reject(err);
|
|
333
334
|
}
|
|
@@ -359,20 +360,12 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
359
360
|
}
|
|
360
361
|
}
|
|
361
362
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
* @returns The number of the latest L2 block processed.
|
|
365
|
-
*/
|
|
366
|
-
getSynchedL2BlockNumber(): Promise<BlockNumber> {
|
|
367
|
-
return this.#blockStore.getSynchedL2BlockNumber();
|
|
363
|
+
getProvenCheckpointNumber(): Promise<CheckpointNumber> {
|
|
364
|
+
return this.#blockStore.getProvenCheckpointNumber();
|
|
368
365
|
}
|
|
369
366
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
async setProvenL2BlockNumber(blockNumber: BlockNumber) {
|
|
375
|
-
await this.#blockStore.setProvenL2BlockNumber(blockNumber);
|
|
367
|
+
async setProvenCheckpointNumber(checkpointNumber: CheckpointNumber) {
|
|
368
|
+
await this.#blockStore.setProvenCheckpointNumber(checkpointNumber);
|
|
376
369
|
}
|
|
377
370
|
|
|
378
371
|
async setBlockSynchedL1BlockNumber(l1BlockNumber: bigint) {
|
|
@@ -383,6 +376,10 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
383
376
|
await this.#messageStore.setSynchedL1Block(l1Block);
|
|
384
377
|
}
|
|
385
378
|
|
|
379
|
+
getProvenBlockNumber(): Promise<BlockNumber> {
|
|
380
|
+
return this.#blockStore.getProvenBlockNumber();
|
|
381
|
+
}
|
|
382
|
+
|
|
386
383
|
/**
|
|
387
384
|
* Gets the last L1 block number processed by the archiver
|
|
388
385
|
*/
|
|
@@ -401,8 +398,8 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
401
398
|
return this.db.estimateSize();
|
|
402
399
|
}
|
|
403
400
|
|
|
404
|
-
public
|
|
405
|
-
return this.#messageStore.
|
|
401
|
+
public rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber: CheckpointNumber): Promise<void> {
|
|
402
|
+
return this.#messageStore.rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber);
|
|
406
403
|
}
|
|
407
404
|
|
|
408
405
|
public iterateL1ToL2Messages(range: CustomRange<bigint> = {}): AsyncIterableIterator<InboxMessage> {
|
|
@@ -420,4 +417,22 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
420
417
|
public setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void> {
|
|
421
418
|
return this.#blockStore.setPendingChainValidationStatus(status);
|
|
422
419
|
}
|
|
420
|
+
|
|
421
|
+
public getCheckpointedL2BlockNumber(): Promise<BlockNumber> {
|
|
422
|
+
return this.#blockStore.getCheckpointedL2BlockNumber();
|
|
423
|
+
}
|
|
424
|
+
public getSynchedCheckpointNumber(): Promise<CheckpointNumber> {
|
|
425
|
+
return this.#blockStore.getLatestCheckpointNumber();
|
|
426
|
+
}
|
|
427
|
+
async setCheckpointSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void> {
|
|
428
|
+
await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<L2BlockNew[] | undefined> {
|
|
432
|
+
return this.#blockStore.getBlocksForCheckpoint(checkpointNumber);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
getCheckpointData(checkpointNumber: CheckpointNumber): Promise<CheckpointData | undefined> {
|
|
436
|
+
return this.#blockStore.getCheckpointData(checkpointNumber);
|
|
437
|
+
}
|
|
423
438
|
}
|