@aztec/archiver 3.0.0-nightly.20251214 → 3.0.0-nightly.20251217
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 +60 -36
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +366 -180
- package/dest/archiver/archiver_store.d.ts +79 -23
- 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 +1666 -244
- 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/kv_archiver_store/block_store.d.ts +49 -17
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +320 -83
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +30 -28
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +51 -27
- package/dest/archiver/kv_archiver_store/log_store.d.ts +5 -5
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +39 -15
- package/dest/archiver/l1/bin/retrieve-calldata.js +2 -2
- package/dest/archiver/l1/calldata_retriever.d.ts +17 -3
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/archiver/l1/calldata_retriever.js +75 -7
- package/dest/archiver/l1/data_retrieval.d.ts +11 -8
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/l1/data_retrieval.js +30 -17
- package/dest/archiver/structs/published.d.ts +1 -2
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.d.ts +3 -2
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +8 -15
- package/package.json +13 -13
- package/src/archiver/archiver.ts +464 -222
- package/src/archiver/archiver_store.ts +88 -22
- package/src/archiver/archiver_store_test_suite.ts +1689 -226
- package/src/archiver/errors.ts +64 -0
- package/src/archiver/index.ts +1 -1
- package/src/archiver/kv_archiver_store/block_store.ts +435 -94
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +63 -39
- package/src/archiver/kv_archiver_store/log_store.ts +62 -25
- package/src/archiver/l1/bin/retrieve-calldata.ts +2 -2
- package/src/archiver/l1/calldata_retriever.ts +116 -6
- package/src/archiver/l1/data_retrieval.ts +34 -13
- package/src/archiver/structs/published.ts +0 -1
- package/src/test/mock_l2_block_source.ts +9 -16
|
@@ -4,7 +4,8 @@ import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
4
4
|
import type { AztecAsyncKVStore, CustomRange, StoreSize } from '@aztec/kv-store';
|
|
5
5
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
6
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import {
|
|
7
|
+
import { CheckpointedL2Block, L2BlockNew, type ValidateBlockResult } from '@aztec/stdlib/block';
|
|
8
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
8
9
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceUpdateWithAddress, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UtilityFunctionWithMembershipProof } from '@aztec/stdlib/contract';
|
|
9
10
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
10
11
|
import type { LogFilter, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
@@ -12,8 +13,8 @@ import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
|
12
13
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
13
14
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
14
15
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
15
|
-
import type
|
|
16
|
-
export declare const ARCHIVER_DB_VERSION =
|
|
16
|
+
import { type CheckpointData } from './block_store.js';
|
|
17
|
+
export declare const ARCHIVER_DB_VERSION = 5;
|
|
17
18
|
export declare const MAX_FUNCTION_SIGNATURES = 1000;
|
|
18
19
|
export declare const MAX_FUNCTION_NAME_LEN = 256;
|
|
19
20
|
/**
|
|
@@ -49,28 +50,28 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
|
|
|
49
50
|
* @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
|
|
50
51
|
* @returns True if the operation is successful.
|
|
51
52
|
*/
|
|
52
|
-
addBlocks(blocks:
|
|
53
|
+
addBlocks(blocks: L2BlockNew[], opts?: {
|
|
53
54
|
force?: boolean;
|
|
55
|
+
checkpointNumber?: number;
|
|
54
56
|
}): Promise<boolean>;
|
|
57
|
+
getRangeOfCheckpoints(from: CheckpointNumber, limit: number): Promise<CheckpointData[]>;
|
|
58
|
+
getLatestBlockNumber(): Promise<BlockNumber>;
|
|
55
59
|
/**
|
|
56
|
-
* Unwinds
|
|
60
|
+
* Unwinds checkpoints from the database
|
|
57
61
|
* @param from - The tip of the chain, passed for verification purposes,
|
|
58
62
|
* ensuring that we don't end up deleting something we did not intend
|
|
59
|
-
* @param
|
|
63
|
+
* @param checkpointsToUnwind - The number of checkpoints we are to unwind
|
|
60
64
|
* @returns True if the operation is successful
|
|
61
65
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
* @returns The requested L2 blocks
|
|
72
|
-
*/
|
|
73
|
-
getPublishedBlocks(start: BlockNumber, limit: number): Promise<PublishedL2Block[]>;
|
|
66
|
+
unwindCheckpoints(from: CheckpointNumber, checkpointsToUnwind: number): Promise<boolean>;
|
|
67
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[]): Promise<boolean>;
|
|
68
|
+
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
69
|
+
getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
70
|
+
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
71
|
+
getBlock(number: BlockNumber): Promise<L2BlockNew | undefined>;
|
|
72
|
+
getBlockByHash(blockHash: Fr): Promise<L2BlockNew | undefined>;
|
|
73
|
+
getBlockByArchive(archive: Fr): Promise<L2BlockNew | undefined>;
|
|
74
|
+
getBlocks(from: BlockNumber, limit: BlockNumber): Promise<L2BlockNew[]>;
|
|
74
75
|
/**
|
|
75
76
|
* Gets up to `limit` amount of L2 blocks headers starting from `from`.
|
|
76
77
|
*
|
|
@@ -98,8 +99,8 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
|
|
|
98
99
|
* @param blocks - The blocks for which to add the logs.
|
|
99
100
|
* @returns True if the operation is successful.
|
|
100
101
|
*/
|
|
101
|
-
addLogs(blocks:
|
|
102
|
-
deleteLogs(blocks:
|
|
102
|
+
addLogs(blocks: L2BlockNew[]): Promise<boolean>;
|
|
103
|
+
deleteLogs(blocks: L2BlockNew[]): Promise<boolean>;
|
|
103
104
|
getTotalL1ToL2MessageCount(): Promise<bigint>;
|
|
104
105
|
getLastL1ToL2Message(): Promise<InboxMessage | undefined>;
|
|
105
106
|
/**
|
|
@@ -139,15 +140,11 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
|
|
|
139
140
|
* @returns The requested logs.
|
|
140
141
|
*/
|
|
141
142
|
getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
* @returns The number of the latest L2 block processed.
|
|
145
|
-
*/
|
|
146
|
-
getSynchedL2BlockNumber(): Promise<BlockNumber>;
|
|
147
|
-
getProvenL2BlockNumber(): Promise<BlockNumber>;
|
|
148
|
-
setProvenL2BlockNumber(blockNumber: BlockNumber): Promise<void>;
|
|
143
|
+
getProvenCheckpointNumber(): Promise<CheckpointNumber>;
|
|
144
|
+
setProvenCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<void>;
|
|
149
145
|
setBlockSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void>;
|
|
150
146
|
setMessageSynchedL1Block(l1Block: L1BlockId): Promise<void>;
|
|
147
|
+
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
151
148
|
/**
|
|
152
149
|
* Gets the last L1 block number processed by the archiver
|
|
153
150
|
*/
|
|
@@ -158,5 +155,10 @@ export declare class KVArchiverDataStore implements ArchiverDataStore, ContractD
|
|
|
158
155
|
removeL1ToL2Messages(startIndex: bigint): Promise<void>;
|
|
159
156
|
getPendingChainValidationStatus(): Promise<ValidateBlockResult | undefined>;
|
|
160
157
|
setPendingChainValidationStatus(status: ValidateBlockResult | undefined): Promise<void>;
|
|
158
|
+
getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
|
|
159
|
+
getSynchedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
160
|
+
setCheckpointSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void>;
|
|
161
|
+
getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<L2BlockNew[] | undefined>;
|
|
162
|
+
getCheckpointData(checkpointNumber: CheckpointNumber): Promise<CheckpointData | undefined>;
|
|
161
163
|
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXJjaGl2ZXJfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9rdl9hcmNoaXZlcl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFlLFVBQVUsRUFBRSxLQUFLLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0csT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFDVixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGlDQUFpQyxFQUNqQywyQkFBMkIsRUFDM0IsNENBQTRDLEVBQzVDLGtDQUFrQyxFQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { ContractClassStore } from './contract_class_store.js';
|
|
|
8
8
|
import { ContractInstanceStore } from './contract_instance_store.js';
|
|
9
9
|
import { LogStore } from './log_store.js';
|
|
10
10
|
import { MessageStore } from './message_store.js';
|
|
11
|
-
export const ARCHIVER_DB_VERSION =
|
|
11
|
+
export const ARCHIVER_DB_VERSION = 5;
|
|
12
12
|
export const MAX_FUNCTION_SIGNATURES = 1000;
|
|
13
13
|
export const MAX_FUNCTION_NAME_LEN = 256;
|
|
14
14
|
/**
|
|
@@ -37,7 +37,7 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
37
37
|
return this.db.transactionAsync(callback);
|
|
38
38
|
}
|
|
39
39
|
getBlockNumber() {
|
|
40
|
-
return this.
|
|
40
|
+
return this.#blockStore.getLatestL2BlockNumber();
|
|
41
41
|
}
|
|
42
42
|
async getContract(address, maybeTimestamp) {
|
|
43
43
|
const [header] = await this.getBlockHeaders(await this.getBlockNumber(), 1);
|
|
@@ -110,32 +110,44 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
110
110
|
*/ addBlocks(blocks, opts = {}) {
|
|
111
111
|
return this.#blockStore.addBlocks(blocks, opts);
|
|
112
112
|
}
|
|
113
|
+
getRangeOfCheckpoints(from, limit) {
|
|
114
|
+
return this.#blockStore.getRangeOfCheckpoints(from, limit);
|
|
115
|
+
}
|
|
116
|
+
getLatestBlockNumber() {
|
|
117
|
+
return this.#blockStore.getLatestBlockNumber();
|
|
118
|
+
}
|
|
113
119
|
/**
|
|
114
|
-
* Unwinds
|
|
120
|
+
* Unwinds checkpoints from the database
|
|
115
121
|
* @param from - The tip of the chain, passed for verification purposes,
|
|
116
122
|
* ensuring that we don't end up deleting something we did not intend
|
|
117
|
-
* @param
|
|
123
|
+
* @param checkpointsToUnwind - The number of checkpoints we are to unwind
|
|
118
124
|
* @returns True if the operation is successful
|
|
119
|
-
*/
|
|
120
|
-
return this.#blockStore.
|
|
125
|
+
*/ unwindCheckpoints(from, checkpointsToUnwind) {
|
|
126
|
+
return this.#blockStore.unwindCheckpoints(from, checkpointsToUnwind);
|
|
127
|
+
}
|
|
128
|
+
addCheckpoints(checkpoints) {
|
|
129
|
+
return this.#blockStore.addCheckpoints(checkpoints);
|
|
130
|
+
}
|
|
131
|
+
getCheckpointedBlock(number) {
|
|
132
|
+
return this.#blockStore.getCheckpointedBlock(number);
|
|
133
|
+
}
|
|
134
|
+
getCheckpointedBlockByHash(blockHash) {
|
|
135
|
+
return this.#blockStore.getCheckpointedBlockByHash(blockHash);
|
|
121
136
|
}
|
|
122
|
-
|
|
137
|
+
getCheckpointedBlockByArchive(archive) {
|
|
138
|
+
return this.#blockStore.getCheckpointedBlockByArchive(archive);
|
|
139
|
+
}
|
|
140
|
+
getBlock(number) {
|
|
123
141
|
return this.#blockStore.getBlock(number);
|
|
124
142
|
}
|
|
125
|
-
|
|
143
|
+
getBlockByHash(blockHash) {
|
|
126
144
|
return this.#blockStore.getBlockByHash(L2BlockHash.fromField(blockHash));
|
|
127
145
|
}
|
|
128
|
-
|
|
146
|
+
getBlockByArchive(archive) {
|
|
129
147
|
return this.#blockStore.getBlockByArchive(archive);
|
|
130
148
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
*
|
|
134
|
-
* @param start - Number of the first block to return (inclusive).
|
|
135
|
-
* @param limit - The number of blocks to return.
|
|
136
|
-
* @returns The requested L2 blocks
|
|
137
|
-
*/ getPublishedBlocks(start, limit) {
|
|
138
|
-
return toArray(this.#blockStore.getBlocks(start, limit));
|
|
149
|
+
getBlocks(from, limit) {
|
|
150
|
+
return toArray(this.#blockStore.getBlocks(from, limit));
|
|
139
151
|
}
|
|
140
152
|
/**
|
|
141
153
|
* Gets up to `limit` amount of L2 blocks headers starting from `from`.
|
|
@@ -237,17 +249,11 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
237
249
|
return Promise.reject(err);
|
|
238
250
|
}
|
|
239
251
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
* @returns The number of the latest L2 block processed.
|
|
243
|
-
*/ getSynchedL2BlockNumber() {
|
|
244
|
-
return this.#blockStore.getSynchedL2BlockNumber();
|
|
245
|
-
}
|
|
246
|
-
getProvenL2BlockNumber() {
|
|
247
|
-
return this.#blockStore.getProvenL2BlockNumber();
|
|
252
|
+
getProvenCheckpointNumber() {
|
|
253
|
+
return this.#blockStore.getProvenCheckpointNumber();
|
|
248
254
|
}
|
|
249
|
-
async
|
|
250
|
-
await this.#blockStore.
|
|
255
|
+
async setProvenCheckpointNumber(checkpointNumber) {
|
|
256
|
+
await this.#blockStore.setProvenCheckpointNumber(checkpointNumber);
|
|
251
257
|
}
|
|
252
258
|
async setBlockSynchedL1BlockNumber(l1BlockNumber) {
|
|
253
259
|
await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
|
|
@@ -255,6 +261,9 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
255
261
|
async setMessageSynchedL1Block(l1Block) {
|
|
256
262
|
await this.#messageStore.setSynchedL1Block(l1Block);
|
|
257
263
|
}
|
|
264
|
+
getProvenBlockNumber() {
|
|
265
|
+
return this.#blockStore.getProvenBlockNumber();
|
|
266
|
+
}
|
|
258
267
|
/**
|
|
259
268
|
* Gets the last L1 block number processed by the archiver
|
|
260
269
|
*/ async getSynchPoint() {
|
|
@@ -285,4 +294,19 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
285
294
|
setPendingChainValidationStatus(status) {
|
|
286
295
|
return this.#blockStore.setPendingChainValidationStatus(status);
|
|
287
296
|
}
|
|
297
|
+
getCheckpointedL2BlockNumber() {
|
|
298
|
+
return this.#blockStore.getCheckpointedL2BlockNumber();
|
|
299
|
+
}
|
|
300
|
+
getSynchedCheckpointNumber() {
|
|
301
|
+
return this.#blockStore.getLatestCheckpointNumber();
|
|
302
|
+
}
|
|
303
|
+
async setCheckpointSynchedL1BlockNumber(l1BlockNumber) {
|
|
304
|
+
await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
|
|
305
|
+
}
|
|
306
|
+
getBlocksForCheckpoint(checkpointNumber) {
|
|
307
|
+
return this.#blockStore.getBlocksForCheckpoint(checkpointNumber);
|
|
308
|
+
}
|
|
309
|
+
getCheckpointData(checkpointNumber) {
|
|
310
|
+
return this.#blockStore.getCheckpointData(checkpointNumber);
|
|
311
|
+
}
|
|
288
312
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
|
-
import
|
|
3
|
+
import { L2BlockNew } from '@aztec/stdlib/block';
|
|
4
4
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
5
5
|
import { type LogFilter, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
6
6
|
import type { BlockStore } from './block_store.js';
|
|
@@ -17,8 +17,8 @@ export declare class LogStore {
|
|
|
17
17
|
* @param blocks - The blocks for which to add the logs.
|
|
18
18
|
* @returns True if the operation is successful.
|
|
19
19
|
*/
|
|
20
|
-
addLogs(blocks:
|
|
21
|
-
deleteLogs(blocks:
|
|
20
|
+
addLogs(blocks: L2BlockNew[]): Promise<boolean>;
|
|
21
|
+
deleteLogs(blocks: L2BlockNew[]): Promise<boolean>;
|
|
22
22
|
/**
|
|
23
23
|
* Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
|
|
24
24
|
* @param tags - The tags to filter the logs by.
|
|
@@ -39,4 +39,4 @@ export declare class LogStore {
|
|
|
39
39
|
*/
|
|
40
40
|
getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvbG9nX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRyxPQUFPLEVBSUwsS0FBSyxTQUFTLEVBR2QsYUFBYSxFQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxxQkFBYSxRQUFROztJQVNqQixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxVQUFVO0lBRnBCLFlBQ1UsRUFBRSxFQUFFLGlCQUFpQixFQUNyQixVQUFVLEVBQUUsVUFBVSxFQUM5QixlQUFlLEdBQUUsTUFBYSxFQVEvQjtJQXFDRDs7OztPQUlHO0lBQ0csT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBOERwRDtJQWdCRCxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0F3QmpEO0lBRUQ7Ozs7O09BS0c7SUFDRyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQVFoRjtJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsTUFBTSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FRL0Q7SUE2RUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBUTdFO0NBNkdGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,EAGd,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,qBAAa,QAAQ;;IASjB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAFpB,YACU,EAAE,EAAE,iBAAiB,EACrB,UAAU,EAAE,UAAU,EAC9B,eAAe,GAAE,MAAa,EAQ/B;IAqCD;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA8DpD;IAgBD,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBjD;IAED;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAQhF;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ/D;IA6ED;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAQ7E;CA6GF"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { INITIAL_L2_BLOCK_NUM, MAX_NOTE_HASHES_PER_TX } from '@aztec/constants';
|
|
2
2
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import { BufferReader, numToUInt32BE } from '@aztec/foundation/serialize';
|
|
6
|
+
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
5
7
|
import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, PublicLog, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
6
8
|
/**
|
|
7
9
|
* A store for logs
|
|
@@ -24,7 +26,8 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
24
26
|
this.#contractClassLogsByBlock = db.openMap('archiver_contract_class_logs_by_block');
|
|
25
27
|
this.#logsMaxPageSize = logsMaxPageSize;
|
|
26
28
|
}
|
|
27
|
-
#extractTaggedLogs(block) {
|
|
29
|
+
async #extractTaggedLogs(block) {
|
|
30
|
+
const blockHash = L2BlockHash.fromField(await block.hash());
|
|
28
31
|
const taggedLogs = new Map();
|
|
29
32
|
const dataStartIndexForBlock = block.header.state.partial.noteHashTree.nextAvailableLeafIndex - block.body.txEffects.length * MAX_NOTE_HASHES_PER_TX;
|
|
30
33
|
block.body.txEffects.forEach((txEffect, txIndex)=>{
|
|
@@ -34,14 +37,14 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
34
37
|
const tag = log.fields[0];
|
|
35
38
|
this.#log.debug(`Found private log with tag ${tag.toString()} in block ${block.number}`);
|
|
36
39
|
const currentLogs = taggedLogs.get(tag.toString()) ?? [];
|
|
37
|
-
currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, log).toBuffer());
|
|
40
|
+
currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, log).toBuffer());
|
|
38
41
|
taggedLogs.set(tag.toString(), currentLogs);
|
|
39
42
|
});
|
|
40
43
|
txEffect.publicLogs.forEach((log, logIndex)=>{
|
|
41
44
|
const tag = log.fields[0];
|
|
42
45
|
this.#log.debug(`Found public log with tag ${tag.toString()} in block ${block.number}`);
|
|
43
46
|
const currentLogs = taggedLogs.get(tag.toString()) ?? [];
|
|
44
|
-
currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, log).toBuffer());
|
|
47
|
+
currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, log).toBuffer());
|
|
45
48
|
taggedLogs.set(tag.toString(), currentLogs);
|
|
46
49
|
});
|
|
47
50
|
});
|
|
@@ -51,9 +54,10 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
51
54
|
* Append new logs to the store's list.
|
|
52
55
|
* @param blocks - The blocks for which to add the logs.
|
|
53
56
|
* @returns True if the operation is successful.
|
|
54
|
-
*/ addLogs(blocks) {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
+
*/ async addLogs(blocks) {
|
|
58
|
+
const taggedLogsInBlocks = await Promise.all(blocks.map((block)=>this.#extractTaggedLogs(block)));
|
|
59
|
+
const taggedLogsToAdd = taggedLogsInBlocks.reduce((acc, taggedLogs)=>{
|
|
60
|
+
for (const [tag, logs] of taggedLogs.entries()){
|
|
57
61
|
const currentLogs = acc.get(tag) ?? [];
|
|
58
62
|
acc.set(tag, currentLogs.concat(logs));
|
|
59
63
|
}
|
|
@@ -71,6 +75,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
71
75
|
}
|
|
72
76
|
});
|
|
73
77
|
for (const block of blocks){
|
|
78
|
+
const blockHash = await block.hash();
|
|
74
79
|
const tagsInBlock = [];
|
|
75
80
|
for (const [tag, logs] of taggedLogsToAdd.entries()){
|
|
76
81
|
await this.#logsByTag.set(tag, logs);
|
|
@@ -87,12 +92,25 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
87
92
|
numToUInt32BE(txEffect.contractClassLogs.length),
|
|
88
93
|
txEffect.contractClassLogs.map((log)=>log.toBuffer())
|
|
89
94
|
].flat()).flat();
|
|
90
|
-
await this.#publicLogsByBlock.set(block.number,
|
|
91
|
-
await this.#contractClassLogsByBlock.set(block.number,
|
|
95
|
+
await this.#publicLogsByBlock.set(block.number, this.#packWithBlockHash(blockHash, publicLogsInBlock));
|
|
96
|
+
await this.#contractClassLogsByBlock.set(block.number, this.#packWithBlockHash(blockHash, contractClassLogsInBlock));
|
|
92
97
|
}
|
|
93
98
|
return true;
|
|
94
99
|
});
|
|
95
100
|
}
|
|
101
|
+
#packWithBlockHash(blockHash, data) {
|
|
102
|
+
return Buffer.concat([
|
|
103
|
+
blockHash.toBuffer(),
|
|
104
|
+
...data
|
|
105
|
+
]);
|
|
106
|
+
}
|
|
107
|
+
#unpackBlockHash(reader) {
|
|
108
|
+
const blockHash = reader.remainingBytes() > 0 ? reader.readObject(Fr) : undefined;
|
|
109
|
+
if (!blockHash) {
|
|
110
|
+
throw new Error('Failed to read block hash from log entry buffer');
|
|
111
|
+
}
|
|
112
|
+
return L2BlockHash.fromField(blockHash);
|
|
113
|
+
}
|
|
96
114
|
deleteLogs(blocks) {
|
|
97
115
|
return this.db.transactionAsync(async ()=>{
|
|
98
116
|
const tagsToDelete = (await Promise.all(blocks.map(async (block)=>{
|
|
@@ -149,6 +167,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
149
167
|
[]
|
|
150
168
|
];
|
|
151
169
|
const reader = new BufferReader(buffer);
|
|
170
|
+
const blockHash = this.#unpackBlockHash(reader);
|
|
152
171
|
while(reader.remainingBytes() > 0){
|
|
153
172
|
const indexOfTx = reader.readNumber();
|
|
154
173
|
const numLogsInTx = reader.readNumber();
|
|
@@ -159,7 +178,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
159
178
|
}
|
|
160
179
|
const txLogs = publicLogsInBlock[txIndex];
|
|
161
180
|
const logs = [];
|
|
162
|
-
const maxLogsHit = this.#accumulateLogs(logs, blockNumber, txIndex, txLogs, filter);
|
|
181
|
+
const maxLogsHit = this.#accumulateLogs(logs, blockNumber, blockHash, txIndex, txLogs, filter);
|
|
163
182
|
return {
|
|
164
183
|
logs,
|
|
165
184
|
maxLogsHit
|
|
@@ -184,6 +203,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
184
203
|
[]
|
|
185
204
|
];
|
|
186
205
|
const reader = new BufferReader(logBuffer);
|
|
206
|
+
const blockHash = this.#unpackBlockHash(reader);
|
|
187
207
|
while(reader.remainingBytes() > 0){
|
|
188
208
|
const indexOfTx = reader.readNumber();
|
|
189
209
|
const numLogsInTx = reader.readNumber();
|
|
@@ -194,7 +214,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
194
214
|
}
|
|
195
215
|
for(let txIndex = filter.afterLog?.txIndex ?? 0; txIndex < publicLogsInBlock.length; txIndex++){
|
|
196
216
|
const txLogs = publicLogsInBlock[txIndex];
|
|
197
|
-
maxLogsHit = this.#accumulateLogs(logs, blockNumber, txIndex, txLogs, filter);
|
|
217
|
+
maxLogsHit = this.#accumulateLogs(logs, blockNumber, blockHash, txIndex, txLogs, filter);
|
|
198
218
|
if (maxLogsHit) {
|
|
199
219
|
this.#log.debug(`Max logs hit at block ${blockNumber}`);
|
|
200
220
|
break loopOverBlocks;
|
|
@@ -235,6 +255,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
235
255
|
[]
|
|
236
256
|
];
|
|
237
257
|
const reader = new BufferReader(contractClassLogsBuffer);
|
|
258
|
+
const blockHash = this.#unpackBlockHash(reader);
|
|
238
259
|
while(reader.remainingBytes() > 0){
|
|
239
260
|
const indexOfTx = reader.readNumber();
|
|
240
261
|
const numLogsInTx = reader.readNumber();
|
|
@@ -245,7 +266,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
245
266
|
}
|
|
246
267
|
const txLogs = contractClassLogsInBlock[txIndex];
|
|
247
268
|
const logs = [];
|
|
248
|
-
const maxLogsHit = this.#accumulateLogs(logs, blockNumber, txIndex, txLogs, filter);
|
|
269
|
+
const maxLogsHit = this.#accumulateLogs(logs, blockNumber, blockHash, txIndex, txLogs, filter);
|
|
249
270
|
return {
|
|
250
271
|
logs,
|
|
251
272
|
maxLogsHit
|
|
@@ -270,6 +291,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
270
291
|
[]
|
|
271
292
|
];
|
|
272
293
|
const reader = new BufferReader(logBuffer);
|
|
294
|
+
const blockHash = this.#unpackBlockHash(reader);
|
|
273
295
|
while(reader.remainingBytes() > 0){
|
|
274
296
|
const indexOfTx = reader.readNumber();
|
|
275
297
|
const numLogsInTx = reader.readNumber();
|
|
@@ -280,7 +302,7 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
280
302
|
}
|
|
281
303
|
for(let txIndex = filter.afterLog?.txIndex ?? 0; txIndex < contractClassLogsInBlock.length; txIndex++){
|
|
282
304
|
const txLogs = contractClassLogsInBlock[txIndex];
|
|
283
|
-
maxLogsHit = this.#accumulateLogs(logs, blockNumber, txIndex, txLogs, filter);
|
|
305
|
+
maxLogsHit = this.#accumulateLogs(logs, blockNumber, blockHash, txIndex, txLogs, filter);
|
|
284
306
|
if (maxLogsHit) {
|
|
285
307
|
this.#log.debug(`Max logs hit at block ${blockNumber}`);
|
|
286
308
|
break loopOverBlocks;
|
|
@@ -292,16 +314,18 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
|
|
|
292
314
|
maxLogsHit
|
|
293
315
|
};
|
|
294
316
|
}
|
|
295
|
-
#accumulateLogs(results, blockNumber, txIndex, txLogs, filter) {
|
|
317
|
+
#accumulateLogs(results, blockNumber, blockHash, txIndex, txLogs, filter = {}) {
|
|
296
318
|
let maxLogsHit = false;
|
|
297
319
|
let logIndex = typeof filter.afterLog?.logIndex === 'number' ? filter.afterLog.logIndex + 1 : 0;
|
|
298
320
|
for(; logIndex < txLogs.length; logIndex++){
|
|
299
321
|
const log = txLogs[logIndex];
|
|
300
322
|
if (!filter.contractAddress || log.contractAddress.equals(filter.contractAddress)) {
|
|
301
323
|
if (log instanceof ContractClassLog) {
|
|
302
|
-
results.push(new ExtendedContractClassLog(new LogId(BlockNumber(blockNumber), txIndex, logIndex), log));
|
|
324
|
+
results.push(new ExtendedContractClassLog(new LogId(BlockNumber(blockNumber), blockHash, txIndex, logIndex), log));
|
|
325
|
+
} else if (log instanceof PublicLog) {
|
|
326
|
+
results.push(new ExtendedPublicLog(new LogId(BlockNumber(blockNumber), blockHash, txIndex, logIndex), log));
|
|
303
327
|
} else {
|
|
304
|
-
|
|
328
|
+
throw new Error('Unknown log type');
|
|
305
329
|
}
|
|
306
330
|
if (results.length >= this.#logsMaxPageSize) {
|
|
307
331
|
maxLogsHit = true;
|
|
@@ -111,8 +111,8 @@ async function main() {
|
|
|
111
111
|
logger.info('');
|
|
112
112
|
logger.info('Retrieving block header from rollup transaction...');
|
|
113
113
|
logger.info('');
|
|
114
|
-
// For this script, we don't have blob hashes, so pass empty
|
|
115
|
-
const result = await retriever.getCheckpointFromRollupTx(txHash, [], CheckpointNumber(l2BlockNumber));
|
|
114
|
+
// For this script, we don't have blob hashes or expected hashes, so pass empty arrays/objects
|
|
115
|
+
const result = await retriever.getCheckpointFromRollupTx(txHash, [], CheckpointNumber(l2BlockNumber), {});
|
|
116
116
|
logger.info(' Successfully retrieved block header!');
|
|
117
117
|
logger.info('');
|
|
118
118
|
logger.info('Block Header Details:');
|
|
@@ -32,9 +32,13 @@ export declare class CalldataRetriever {
|
|
|
32
32
|
* @param txHash - Hash of the tx that published it.
|
|
33
33
|
* @param blobHashes - Blob hashes for the checkpoint.
|
|
34
34
|
* @param checkpointNumber - Checkpoint number.
|
|
35
|
+
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
35
36
|
* @returns Checkpoint header and metadata from the calldata, deserialized
|
|
36
37
|
*/
|
|
37
|
-
getCheckpointFromRollupTx(txHash: `0x${string}`, blobHashes: Buffer[], checkpointNumber: CheckpointNumber
|
|
38
|
+
getCheckpointFromRollupTx(txHash: `0x${string}`, blobHashes: Buffer[], checkpointNumber: CheckpointNumber, expectedHashes: {
|
|
39
|
+
attestationsHash?: Hex;
|
|
40
|
+
payloadDigest?: Hex;
|
|
41
|
+
}): Promise<{
|
|
38
42
|
checkpointNumber: CheckpointNumber;
|
|
39
43
|
archiveRoot: Fr;
|
|
40
44
|
header: CheckpointHeader;
|
|
@@ -80,14 +84,24 @@ export declare class CalldataRetriever {
|
|
|
80
84
|
* @returns The propose calldata from the successful call
|
|
81
85
|
*/
|
|
82
86
|
protected extractCalldataViaTrace(txHash: Hex): Promise<Hex>;
|
|
87
|
+
/**
|
|
88
|
+
* Extracts the CommitteeAttestations struct definition from RollupAbi.
|
|
89
|
+
* Finds the _attestations parameter by name in the propose function.
|
|
90
|
+
* Lazy-loaded to avoid issues during module initialization.
|
|
91
|
+
*/
|
|
92
|
+
private getCommitteeAttestationsStructDef;
|
|
83
93
|
/**
|
|
84
94
|
* Decodes propose calldata and builds the checkpoint header structure.
|
|
85
95
|
* @param proposeCalldata - The propose function calldata
|
|
86
96
|
* @param blockHash - The L1 block hash containing this transaction
|
|
87
97
|
* @param checkpointNumber - The checkpoint number
|
|
98
|
+
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
88
99
|
* @returns The decoded checkpoint header and metadata
|
|
89
100
|
*/
|
|
90
|
-
protected decodeAndBuildCheckpoint(proposeCalldata: Hex, blockHash: Hex, checkpointNumber: CheckpointNumber
|
|
101
|
+
protected decodeAndBuildCheckpoint(proposeCalldata: Hex, blockHash: Hex, checkpointNumber: CheckpointNumber, expectedHashes: {
|
|
102
|
+
attestationsHash?: Hex;
|
|
103
|
+
payloadDigest?: Hex;
|
|
104
|
+
}): {
|
|
91
105
|
checkpointNumber: CheckpointNumber;
|
|
92
106
|
archiveRoot: Fr;
|
|
93
107
|
header: CheckpointHeader;
|
|
@@ -95,4 +109,4 @@ export declare class CalldataRetriever {
|
|
|
95
109
|
blockHash: string;
|
|
96
110
|
};
|
|
97
111
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBRUwsS0FBSyxHQUFHLEVBQ1IsS0FBSyxXQUFXLEVBT2pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU1yRTs7O0dBR0c7QUFDSCxxQkFBYSxpQkFBaUI7SUFPMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBVnpCLHVEQUF1RDtJQUN2RCxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFzQjtJQUV6RCxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBYTtJQUUzQyxZQUNtQixZQUFZLEVBQUUsZ0JBQWdCLEVBQzlCLFdB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/calldata_retriever.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/calldata_retriever.ts"],"names":[],"mappings":"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"}
|