@aztec/archiver 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
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/README.md +27 -6
- package/dest/archiver/archiver.d.ts +127 -84
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +1128 -380
- package/dest/archiver/archiver_store.d.ts +122 -45
- 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 +2013 -343
- package/dest/archiver/config.d.ts +7 -20
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +21 -5
- 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 +5 -3
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +14 -0
- package/dest/archiver/kv_archiver_store/block_store.d.ts +83 -15
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +396 -73
- 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 +51 -55
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +82 -46
- 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 +149 -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/l1/data_retrieval.js +331 -0
- 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/data_retrieval.d.ts +1 -1
- 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 -5
- package/dest/archiver/structs/published.d.ts +2 -2
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/archiver/validation.d.ts +10 -4
- package/dest/archiver/validation.d.ts.map +1 -1
- package/dest/archiver/validation.js +66 -44
- package/dest/factory.d.ts +4 -6
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +5 -4
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/rpc/index.d.ts +2 -2
- package/dest/test/index.d.ts +1 -1
- package/dest/test/mock_archiver.d.ts +16 -8
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +19 -14
- package/dest/test/mock_l1_to_l2_message_source.d.ts +7 -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 +10 -9
- package/dest/test/mock_l2_block_source.d.ts +31 -20
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +85 -18
- 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 -8
- package/package.json +18 -17
- package/src/archiver/archiver.ts +971 -475
- package/src/archiver/archiver_store.ts +141 -44
- package/src/archiver/archiver_store_test_suite.ts +2114 -331
- package/src/archiver/config.ts +30 -35
- package/src/archiver/errors.ts +64 -0
- package/src/archiver/index.ts +1 -1
- package/src/archiver/instrumentation.ts +19 -2
- package/src/archiver/kv_archiver_store/block_store.ts +541 -83
- 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 +107 -67
- package/src/archiver/kv_archiver_store/log_store.ts +209 -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/l1/data_retrieval.ts +512 -0
- 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 +8 -8
- package/src/archiver/structs/published.ts +1 -1
- package/src/archiver/validation.ts +86 -32
- package/src/factory.ts +6 -7
- 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 +22 -16
- package/src/test/mock_l1_to_l2_message_source.ts +10 -9
- package/src/test/mock_l2_block_source.ts +114 -27
- package/src/test/mock_structs.ts +10 -9
- package/dest/archiver/data_retrieval.d.ts +0 -78
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/data_retrieval.js +0 -354
- package/src/archiver/data_retrieval.ts +0 -535
|
@@ -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,11 +1,13 @@
|
|
|
1
|
-
import type { L1BlockId } from '@aztec/ethereum';
|
|
2
|
-
import type {
|
|
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';
|
|
3
4
|
import { toArray } from '@aztec/foundation/iterable';
|
|
4
5
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
6
|
import type { AztecAsyncKVStore, CustomRange, StoreSize } from '@aztec/kv-store';
|
|
6
7
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
7
8
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import type
|
|
9
|
+
import { CheckpointedL2Block, L2BlockHash, L2BlockNew, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
10
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
9
11
|
import type {
|
|
10
12
|
ContractClassPublic,
|
|
11
13
|
ContractDataSource,
|
|
@@ -15,7 +17,7 @@ import type {
|
|
|
15
17
|
UtilityFunctionWithMembershipProof,
|
|
16
18
|
} from '@aztec/stdlib/contract';
|
|
17
19
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
18
|
-
import {
|
|
20
|
+
import type { LogFilter, SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
19
21
|
import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
20
22
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
21
23
|
|
|
@@ -23,14 +25,13 @@ import { join } from 'path';
|
|
|
23
25
|
|
|
24
26
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
25
27
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
26
|
-
import type
|
|
27
|
-
import { BlockStore } from './block_store.js';
|
|
28
|
+
import { BlockStore, type CheckpointData } from './block_store.js';
|
|
28
29
|
import { ContractClassStore } from './contract_class_store.js';
|
|
29
30
|
import { ContractInstanceStore } from './contract_instance_store.js';
|
|
30
31
|
import { LogStore } from './log_store.js';
|
|
31
32
|
import { MessageStore } from './message_store.js';
|
|
32
33
|
|
|
33
|
-
export const ARCHIVER_DB_VERSION =
|
|
34
|
+
export const ARCHIVER_DB_VERSION = 5;
|
|
34
35
|
export const MAX_FUNCTION_SIGNATURES = 1000;
|
|
35
36
|
export const MAX_FUNCTION_NAME_LEN = 256;
|
|
36
37
|
|
|
@@ -65,8 +66,8 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
65
66
|
return this.db.transactionAsync(callback);
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
public getBlockNumber(): Promise<
|
|
69
|
-
return this.
|
|
69
|
+
public getBlockNumber(): Promise<BlockNumber> {
|
|
70
|
+
return this.#blockStore.getLatestL2BlockNumber();
|
|
70
71
|
}
|
|
71
72
|
|
|
72
73
|
public async getContract(
|
|
@@ -124,7 +125,7 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
124
125
|
async addContractClasses(
|
|
125
126
|
data: ContractClassPublic[],
|
|
126
127
|
bytecodeCommitments: Fr[],
|
|
127
|
-
blockNumber:
|
|
128
|
+
blockNumber: BlockNumber,
|
|
128
129
|
): Promise<boolean> {
|
|
129
130
|
return (
|
|
130
131
|
await Promise.all(
|
|
@@ -133,7 +134,7 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
133
134
|
).every(Boolean);
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
async deleteContractClasses(data: ContractClassPublic[], blockNumber:
|
|
137
|
+
async deleteContractClasses(data: ContractClassPublic[], blockNumber: BlockNumber): Promise<boolean> {
|
|
137
138
|
return (await Promise.all(data.map(c => this.#contractClassStore.deleteContractClasses(c, blockNumber)))).every(
|
|
138
139
|
Boolean,
|
|
139
140
|
);
|
|
@@ -151,13 +152,13 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
151
152
|
return this.#contractClassStore.addFunctions(contractClassId, privateFunctions, utilityFunctions);
|
|
152
153
|
}
|
|
153
154
|
|
|
154
|
-
async addContractInstances(data: ContractInstanceWithAddress[], blockNumber:
|
|
155
|
+
async addContractInstances(data: ContractInstanceWithAddress[], blockNumber: BlockNumber): Promise<boolean> {
|
|
155
156
|
return (await Promise.all(data.map(c => this.#contractInstanceStore.addContractInstance(c, blockNumber)))).every(
|
|
156
157
|
Boolean,
|
|
157
158
|
);
|
|
158
159
|
}
|
|
159
160
|
|
|
160
|
-
async deleteContractInstances(data: ContractInstanceWithAddress[], _blockNumber:
|
|
161
|
+
async deleteContractInstances(data: ContractInstanceWithAddress[], _blockNumber: BlockNumber): Promise<boolean> {
|
|
161
162
|
return (await Promise.all(data.map(c => this.#contractInstanceStore.deleteContractInstance(c)))).every(Boolean);
|
|
162
163
|
}
|
|
163
164
|
|
|
@@ -185,34 +186,52 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
185
186
|
* @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
|
|
186
187
|
* @returns True if the operation is successful.
|
|
187
188
|
*/
|
|
188
|
-
addBlocks(blocks:
|
|
189
|
+
addBlocks(blocks: L2BlockNew[], opts: { force?: boolean; checkpointNumber?: number } = {}): Promise<boolean> {
|
|
189
190
|
return this.#blockStore.addBlocks(blocks, opts);
|
|
190
191
|
}
|
|
191
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
|
+
|
|
192
200
|
/**
|
|
193
|
-
* Unwinds
|
|
201
|
+
* Unwinds checkpoints from the database
|
|
194
202
|
* @param from - The tip of the chain, passed for verification purposes,
|
|
195
203
|
* ensuring that we don't end up deleting something we did not intend
|
|
196
|
-
* @param
|
|
204
|
+
* @param checkpointsToUnwind - The number of checkpoints we are to unwind
|
|
197
205
|
* @returns True if the operation is successful
|
|
198
206
|
*/
|
|
199
|
-
|
|
200
|
-
return this.#blockStore.
|
|
207
|
+
unwindCheckpoints(from: CheckpointNumber, checkpointsToUnwind: number): Promise<boolean> {
|
|
208
|
+
return this.#blockStore.unwindCheckpoints(from, checkpointsToUnwind);
|
|
201
209
|
}
|
|
202
210
|
|
|
203
|
-
|
|
204
|
-
return this.#blockStore.
|
|
211
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[]): Promise<boolean> {
|
|
212
|
+
return this.#blockStore.addCheckpoints(checkpoints);
|
|
205
213
|
}
|
|
206
214
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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> {
|
|
228
|
+
return this.#blockStore.getBlockByHash(L2BlockHash.fromField(blockHash));
|
|
229
|
+
}
|
|
230
|
+
getBlockByArchive(archive: Fr): Promise<L2BlockNew | undefined> {
|
|
231
|
+
return this.#blockStore.getBlockByArchive(archive);
|
|
232
|
+
}
|
|
233
|
+
getBlocks(from: BlockNumber, limit: BlockNumber): Promise<L2BlockNew[]> {
|
|
234
|
+
return toArray(this.#blockStore.getBlocks(from, limit));
|
|
216
235
|
}
|
|
217
236
|
|
|
218
237
|
/**
|
|
@@ -222,10 +241,18 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
222
241
|
* @param limit - The number of blocks to return.
|
|
223
242
|
* @returns The requested L2 blocks
|
|
224
243
|
*/
|
|
225
|
-
getBlockHeaders(start:
|
|
244
|
+
getBlockHeaders(start: BlockNumber, limit: number): Promise<BlockHeader[]> {
|
|
226
245
|
return toArray(this.#blockStore.getBlockHeaders(start, limit));
|
|
227
246
|
}
|
|
228
247
|
|
|
248
|
+
getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined> {
|
|
249
|
+
return this.#blockStore.getBlockHeaderByHash(L2BlockHash.fromField(blockHash));
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined> {
|
|
253
|
+
return this.#blockStore.getBlockHeaderByArchive(archive);
|
|
254
|
+
}
|
|
255
|
+
|
|
229
256
|
/**
|
|
230
257
|
* Gets a tx effect.
|
|
231
258
|
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
@@ -249,11 +276,11 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
249
276
|
* @param blocks - The blocks for which to add the logs.
|
|
250
277
|
* @returns True if the operation is successful.
|
|
251
278
|
*/
|
|
252
|
-
addLogs(blocks:
|
|
279
|
+
addLogs(blocks: L2BlockNew[]): Promise<boolean> {
|
|
253
280
|
return this.#logStore.addLogs(blocks);
|
|
254
281
|
}
|
|
255
282
|
|
|
256
|
-
deleteLogs(blocks:
|
|
283
|
+
deleteLogs(blocks: L2BlockNew[]): Promise<boolean> {
|
|
257
284
|
return this.#logStore.deleteLogs(blocks);
|
|
258
285
|
}
|
|
259
286
|
|
|
@@ -283,34 +310,25 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
283
310
|
}
|
|
284
311
|
|
|
285
312
|
/**
|
|
286
|
-
* Gets L1 to L2 message (to be) included in a given
|
|
287
|
-
* @param
|
|
313
|
+
* Gets L1 to L2 message (to be) included in a given checkpoint.
|
|
314
|
+
* @param checkpointNumber - Checkpoint number to get messages for.
|
|
288
315
|
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
289
316
|
*/
|
|
290
|
-
getL1ToL2Messages(
|
|
291
|
-
return this.#messageStore.getL1ToL2Messages(
|
|
317
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
318
|
+
return this.#messageStore.getL1ToL2Messages(checkpointNumber);
|
|
292
319
|
}
|
|
293
320
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
getPrivateLogs(from: number, limit: number): Promise<PrivateLog[]> {
|
|
301
|
-
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
|
+
}
|
|
302
327
|
}
|
|
303
328
|
|
|
304
|
-
|
|
305
|
-
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
306
|
-
* @param tags - The tags to filter the logs by.
|
|
307
|
-
* @param logsPerTag - How many logs to return per tag. Default returns everything
|
|
308
|
-
* @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
|
|
309
|
-
* that tag.
|
|
310
|
-
*/
|
|
311
|
-
getLogsByTags(tags: Fr[], logsPerTag?: number): Promise<TxScopedL2Log[][]> {
|
|
329
|
+
getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]> {
|
|
312
330
|
try {
|
|
313
|
-
return this.#logStore.
|
|
331
|
+
return this.#logStore.getPublicLogsByTagsFromContract(contractAddress, tags);
|
|
314
332
|
} catch (err) {
|
|
315
333
|
return Promise.reject(err);
|
|
316
334
|
}
|
|
@@ -342,20 +360,12 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
342
360
|
}
|
|
343
361
|
}
|
|
344
362
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
* @returns The number of the latest L2 block processed.
|
|
348
|
-
*/
|
|
349
|
-
getSynchedL2BlockNumber(): Promise<number> {
|
|
350
|
-
return this.#blockStore.getSynchedL2BlockNumber();
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
getProvenL2BlockNumber(): Promise<number> {
|
|
354
|
-
return this.#blockStore.getProvenL2BlockNumber();
|
|
363
|
+
getProvenCheckpointNumber(): Promise<CheckpointNumber> {
|
|
364
|
+
return this.#blockStore.getProvenCheckpointNumber();
|
|
355
365
|
}
|
|
356
366
|
|
|
357
|
-
async
|
|
358
|
-
await this.#blockStore.
|
|
367
|
+
async setProvenCheckpointNumber(checkpointNumber: CheckpointNumber) {
|
|
368
|
+
await this.#blockStore.setProvenCheckpointNumber(checkpointNumber);
|
|
359
369
|
}
|
|
360
370
|
|
|
361
371
|
async setBlockSynchedL1BlockNumber(l1BlockNumber: bigint) {
|
|
@@ -366,6 +376,10 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
366
376
|
await this.#messageStore.setSynchedL1Block(l1Block);
|
|
367
377
|
}
|
|
368
378
|
|
|
379
|
+
getProvenBlockNumber(): Promise<BlockNumber> {
|
|
380
|
+
return this.#blockStore.getProvenBlockNumber();
|
|
381
|
+
}
|
|
382
|
+
|
|
369
383
|
/**
|
|
370
384
|
* Gets the last L1 block number processed by the archiver
|
|
371
385
|
*/
|
|
@@ -384,8 +398,8 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
384
398
|
return this.db.estimateSize();
|
|
385
399
|
}
|
|
386
400
|
|
|
387
|
-
public
|
|
388
|
-
return this.#messageStore.
|
|
401
|
+
public rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber: CheckpointNumber): Promise<void> {
|
|
402
|
+
return this.#messageStore.rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber);
|
|
389
403
|
}
|
|
390
404
|
|
|
391
405
|
public iterateL1ToL2Messages(range: CustomRange<bigint> = {}): AsyncIterableIterator<InboxMessage> {
|
|
@@ -395,4 +409,30 @@ export class KVArchiverDataStore implements ArchiverDataStore, ContractDataSourc
|
|
|
395
409
|
public removeL1ToL2Messages(startIndex: bigint): Promise<void> {
|
|
396
410
|
return this.#messageStore.removeL1ToL2Messages(startIndex);
|
|
397
411
|
}
|
|
412
|
+
|
|
413
|
+
public getPendingChainValidationStatus(): Promise<ValidateBlockResult | undefined> {
|
|
414
|
+
return this.#blockStore.getPendingChainValidationStatus();
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
public setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void> {
|
|
418
|
+
return this.#blockStore.setPendingChainValidationStatus(status);
|
|
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
|
+
}
|
|
398
438
|
}
|