@aztec/archiver 4.0.0-nightly.20260112 → 4.0.0-nightly.20260114
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 +139 -22
- package/dest/archiver/archive_source_base.d.ts +75 -0
- package/dest/archiver/archive_source_base.d.ts.map +1 -0
- package/dest/archiver/archive_source_base.js +202 -0
- package/dest/archiver/archiver.d.ts +32 -168
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +123 -613
- package/dest/archiver/archiver_store_updates.d.ts +38 -0
- package/dest/archiver/archiver_store_updates.d.ts.map +1 -0
- package/dest/archiver/archiver_store_updates.js +212 -0
- package/dest/archiver/config.js +2 -2
- package/dest/archiver/index.d.ts +3 -2
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/index.js +2 -0
- package/dest/archiver/kv_archiver_store/block_store.d.ts +12 -5
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +23 -4
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +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 +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.js +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +173 -12
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +159 -48
- package/dest/archiver/l1/calldata_retriever.d.ts +2 -2
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/archiver/l1/calldata_retriever.js +2 -2
- package/dest/archiver/l1/data_retrieval.d.ts +9 -11
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/l1/data_retrieval.js +32 -51
- package/dest/archiver/l1/validate_trace.js +1 -1
- package/dest/archiver/test/fake_l1_state.d.ts +173 -0
- package/dest/archiver/test/fake_l1_state.d.ts.map +1 -0
- package/dest/archiver/test/fake_l1_state.js +364 -0
- package/dest/archiver/validation.d.ts +4 -4
- package/dest/archiver/validation.d.ts.map +1 -1
- package/dest/archiver/validation.js +1 -1
- package/dest/test/mock_l1_to_l2_message_source.d.ts +2 -2
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +12 -3
- package/dest/test/mock_l2_block_source.d.ts +8 -4
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +65 -19
- package/package.json +13 -13
- package/src/archiver/archive_source_base.ts +339 -0
- package/src/archiver/archiver.ts +166 -815
- package/src/archiver/archiver_store_updates.ts +321 -0
- package/src/archiver/config.ts +2 -2
- package/src/archiver/index.ts +2 -1
- package/src/archiver/kv_archiver_store/block_store.ts +36 -8
- 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 +177 -11
- package/src/archiver/l1/calldata_retriever.ts +2 -2
- package/src/archiver/l1/data_retrieval.ts +51 -68
- package/src/archiver/l1/validate_trace.ts +1 -1
- package/src/archiver/test/fake_l1_state.ts +561 -0
- package/src/archiver/validation.ts +6 -6
- package/src/test/mock_l1_to_l2_message_source.ts +10 -4
- package/src/test/mock_l2_block_source.ts +76 -18
- package/dest/archiver/archiver_store.d.ts +0 -308
- package/dest/archiver/archiver_store.d.ts.map +0 -1
- package/dest/archiver/archiver_store.js +0 -4
- package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
- package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
- package/dest/archiver/archiver_store_test_suite.js +0 -2770
- package/src/archiver/archiver_store.ts +0 -372
- package/src/archiver/archiver_store_test_suite.ts +0 -2843
|
@@ -12,7 +12,8 @@ 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
|
/**
|
|
15
|
-
* LMDB
|
|
15
|
+
* LMDB-based data store for the archiver.
|
|
16
|
+
* Stores all archiver data including blocks, logs, contract classes/instances, and L1 to L2 messages.
|
|
16
17
|
*/ export class KVArchiverDataStore {
|
|
17
18
|
db;
|
|
18
19
|
static SCHEMA_VERSION = ARCHIVER_DB_VERSION;
|
|
@@ -33,7 +34,7 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
33
34
|
this.#contractClassStore = new ContractClassStore(db);
|
|
34
35
|
this.#contractInstanceStore = new ContractInstanceStore(db);
|
|
35
36
|
}
|
|
36
|
-
transactionAsync(callback) {
|
|
37
|
+
/** Opens a new transaction to the underlying store and runs all operations within it. */ transactionAsync(callback) {
|
|
37
38
|
return this.db.transactionAsync(callback);
|
|
38
39
|
}
|
|
39
40
|
getBlockNumber() {
|
|
@@ -44,17 +45,17 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
44
45
|
const timestamp = maybeTimestamp ?? header.globalVariables.timestamp;
|
|
45
46
|
return this.getContractInstance(address, timestamp);
|
|
46
47
|
}
|
|
47
|
-
async backupTo(path, compress = true) {
|
|
48
|
+
/** Backups the archiver db to the target folder. Returns the path to the db file. */ async backupTo(path, compress = true) {
|
|
48
49
|
await this.db.backupTo(path, compress);
|
|
49
50
|
return join(path, 'data.mdb');
|
|
50
51
|
}
|
|
51
|
-
close() {
|
|
52
|
+
/** Closes the underlying data store. */ close() {
|
|
52
53
|
return this.db.close();
|
|
53
54
|
}
|
|
54
|
-
getDebugFunctionName(_address, selector) {
|
|
55
|
+
/** Looks up a public function name given a selector. */ getDebugFunctionName(_address, selector) {
|
|
55
56
|
return Promise.resolve(this.functionNames.get(selector.toString()));
|
|
56
57
|
}
|
|
57
|
-
async registerContractFunctionSignatures(signatures) {
|
|
58
|
+
/** Register a public function signature, so it can be looked up by selector. */ async registerContractFunctionSignatures(signatures) {
|
|
58
59
|
for (const sig of signatures){
|
|
59
60
|
if (this.functionNames.size > MAX_FUNCTION_SIGNATURES) {
|
|
60
61
|
return;
|
|
@@ -67,19 +68,33 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Returns a contract class given its id, or undefined if not exists.
|
|
73
|
+
* @param id - Id of the contract class.
|
|
74
|
+
*/ getContractClass(id) {
|
|
71
75
|
return this.#contractClassStore.getContractClass(id);
|
|
72
76
|
}
|
|
73
|
-
getContractClassIds() {
|
|
77
|
+
/** Returns the list of all class ids known by the archiver. */ getContractClassIds() {
|
|
74
78
|
return this.#contractClassStore.getContractClassIds();
|
|
75
79
|
}
|
|
76
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Returns a contract instance given its address and the given timestamp, or undefined if not exists.
|
|
82
|
+
* @param address - Address of the contract.
|
|
83
|
+
* @param timestamp - Timestamp to get the contract instance at. Contract updates might change the instance.
|
|
84
|
+
* @returns The contract instance or undefined if not found.
|
|
85
|
+
*/ getContractInstance(address, timestamp) {
|
|
77
86
|
return this.#contractInstanceStore.getContractInstance(address, timestamp);
|
|
78
87
|
}
|
|
79
88
|
getContractInstanceDeploymentBlockNumber(address) {
|
|
80
89
|
return this.#contractInstanceStore.getContractInstanceDeploymentBlockNumber(address);
|
|
81
90
|
}
|
|
82
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Add new contract classes from an L2 block to the store's list.
|
|
93
|
+
* @param data - List of contract classes to be added.
|
|
94
|
+
* @param bytecodeCommitments - Bytecode commitments for the contract classes.
|
|
95
|
+
* @param blockNumber - Number of the L2 block the contracts were registered in.
|
|
96
|
+
* @returns True if the operation is successful.
|
|
97
|
+
*/ async addContractClasses(data, bytecodeCommitments, blockNumber) {
|
|
83
98
|
return (await Promise.all(data.map((c, i)=>this.#contractClassStore.addContractClass(c, bytecodeCommitments[i], blockNumber)))).every(Boolean);
|
|
84
99
|
}
|
|
85
100
|
async deleteContractClasses(data, blockNumber) {
|
|
@@ -88,16 +103,26 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
88
103
|
getBytecodeCommitment(contractClassId) {
|
|
89
104
|
return this.#contractClassStore.getBytecodeCommitment(contractClassId);
|
|
90
105
|
}
|
|
91
|
-
addFunctions(contractClassId, privateFunctions, utilityFunctions) {
|
|
106
|
+
/** Adds private functions to a contract class. */ addFunctions(contractClassId, privateFunctions, utilityFunctions) {
|
|
92
107
|
return this.#contractClassStore.addFunctions(contractClassId, privateFunctions, utilityFunctions);
|
|
93
108
|
}
|
|
94
|
-
|
|
109
|
+
/**
|
|
110
|
+
* Add new contract instances from an L2 block to the store's list.
|
|
111
|
+
* @param data - List of contract instances to be added.
|
|
112
|
+
* @param blockNumber - Number of the L2 block the instances were deployed in.
|
|
113
|
+
* @returns True if the operation is successful.
|
|
114
|
+
*/ async addContractInstances(data, blockNumber) {
|
|
95
115
|
return (await Promise.all(data.map((c)=>this.#contractInstanceStore.addContractInstance(c, blockNumber)))).every(Boolean);
|
|
96
116
|
}
|
|
97
117
|
async deleteContractInstances(data, _blockNumber) {
|
|
98
118
|
return (await Promise.all(data.map((c)=>this.#contractInstanceStore.deleteContractInstance(c)))).every(Boolean);
|
|
99
119
|
}
|
|
100
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Add new contract instance updates
|
|
122
|
+
* @param data - List of contract updates to be added.
|
|
123
|
+
* @param timestamp - Timestamp at which the updates were scheduled.
|
|
124
|
+
* @returns True if the operation is successful.
|
|
125
|
+
*/ async addContractInstanceUpdates(data, timestamp) {
|
|
101
126
|
return (await Promise.all(data.map((update, logIndex)=>this.#contractInstanceStore.addContractInstanceUpdate(update, timestamp, logIndex)))).every(Boolean);
|
|
102
127
|
}
|
|
103
128
|
async deleteContractInstanceUpdates(data, timestamp) {
|
|
@@ -110,10 +135,18 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
110
135
|
*/ addBlocks(blocks, opts = {}) {
|
|
111
136
|
return this.#blockStore.addBlocks(blocks, opts);
|
|
112
137
|
}
|
|
113
|
-
|
|
138
|
+
/**
|
|
139
|
+
* Returns an array of checkpoint objects
|
|
140
|
+
* @param from The first checkpoint number to be retrieved
|
|
141
|
+
* @param limit The maximum number of checkpoints to retrieve
|
|
142
|
+
* @returns The array of requested checkpoint data objects
|
|
143
|
+
*/ getRangeOfCheckpoints(from, limit) {
|
|
114
144
|
return this.#blockStore.getRangeOfCheckpoints(from, limit);
|
|
115
145
|
}
|
|
116
|
-
|
|
146
|
+
/**
|
|
147
|
+
* Returns the number of the latest block
|
|
148
|
+
* @returns The number of the latest block
|
|
149
|
+
*/ getLatestBlockNumber() {
|
|
117
150
|
return this.#blockStore.getLatestBlockNumber();
|
|
118
151
|
}
|
|
119
152
|
/**
|
|
@@ -125,43 +158,83 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
125
158
|
*/ unwindCheckpoints(from, checkpointsToUnwind) {
|
|
126
159
|
return this.#blockStore.unwindCheckpoints(from, checkpointsToUnwind);
|
|
127
160
|
}
|
|
128
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Appends new checkpoints, and their blocks to the store's collection
|
|
163
|
+
* @param checkpoints The collection of checkpoints to be added
|
|
164
|
+
* @returns True if the operation is successful
|
|
165
|
+
*/ addCheckpoints(checkpoints) {
|
|
129
166
|
return this.#blockStore.addCheckpoints(checkpoints);
|
|
130
167
|
}
|
|
131
|
-
|
|
168
|
+
/**
|
|
169
|
+
* Returns the block for the given number, or undefined if not exists.
|
|
170
|
+
* @param number - The block number to return.
|
|
171
|
+
*/ getCheckpointedBlock(number) {
|
|
132
172
|
return this.#blockStore.getCheckpointedBlock(number);
|
|
133
173
|
}
|
|
134
|
-
|
|
174
|
+
/**
|
|
175
|
+
* Returns the block for the given hash, or undefined if not exists.
|
|
176
|
+
* @param blockHash - The block hash to return.
|
|
177
|
+
*/ getCheckpointedBlockByHash(blockHash) {
|
|
135
178
|
return this.#blockStore.getCheckpointedBlockByHash(blockHash);
|
|
136
179
|
}
|
|
137
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Returns the block for the given archive root, or undefined if not exists.
|
|
182
|
+
* @param archive - The archive root to return.
|
|
183
|
+
*/ getCheckpointedBlockByArchive(archive) {
|
|
138
184
|
return this.#blockStore.getCheckpointedBlockByArchive(archive);
|
|
139
185
|
}
|
|
140
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Returns the block for the given number, or undefined if not exists.
|
|
188
|
+
* @param number - The block number to return.
|
|
189
|
+
*/ getBlock(number) {
|
|
141
190
|
return this.#blockStore.getBlock(number);
|
|
142
191
|
}
|
|
143
|
-
|
|
192
|
+
/**
|
|
193
|
+
* Returns the block for the given hash, or undefined if not exists.
|
|
194
|
+
* @param blockHash - The block hash to return.
|
|
195
|
+
*/ getBlockByHash(blockHash) {
|
|
144
196
|
return this.#blockStore.getBlockByHash(L2BlockHash.fromField(blockHash));
|
|
145
197
|
}
|
|
146
|
-
|
|
198
|
+
/**
|
|
199
|
+
* Returns the block for the given archive root, or undefined if not exists.
|
|
200
|
+
* @param archive - The archive root to return.
|
|
201
|
+
*/ getBlockByArchive(archive) {
|
|
147
202
|
return this.#blockStore.getBlockByArchive(archive);
|
|
148
203
|
}
|
|
149
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Gets up to `limit` amount of published L2 blocks starting from `from`.
|
|
206
|
+
* @param from - Number of the first block to return (inclusive).
|
|
207
|
+
* @param limit - The number of blocks to return.
|
|
208
|
+
* @returns The requested L2 blocks.
|
|
209
|
+
*/ getBlocks(from, limit) {
|
|
150
210
|
return toArray(this.#blockStore.getBlocks(from, limit));
|
|
151
211
|
}
|
|
152
212
|
/**
|
|
153
|
-
* Gets up to `limit` amount of L2 blocks
|
|
154
|
-
*
|
|
213
|
+
* Gets up to `limit` amount of checkpointed L2 blocks starting from `from`.
|
|
214
|
+
* @param from - Number of the first block to return (inclusive).
|
|
215
|
+
* @param limit - The number of blocks to return.
|
|
216
|
+
* @returns The requested checkpointed L2 blocks.
|
|
217
|
+
*/ getCheckpointedBlocks(from, limit) {
|
|
218
|
+
return toArray(this.#blockStore.getCheckpointedBlocks(from, limit));
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Gets up to `limit` amount of L2 block headers starting from `from`.
|
|
155
222
|
* @param start - Number of the first block to return (inclusive).
|
|
156
223
|
* @param limit - The number of blocks to return.
|
|
157
|
-
* @returns The requested L2
|
|
224
|
+
* @returns The requested L2 block headers.
|
|
158
225
|
*/ getBlockHeaders(start, limit) {
|
|
159
226
|
return toArray(this.#blockStore.getBlockHeaders(start, limit));
|
|
160
227
|
}
|
|
161
|
-
|
|
228
|
+
/**
|
|
229
|
+
* Returns the block header for the given hash, or undefined if not exists.
|
|
230
|
+
* @param blockHash - The block hash to return.
|
|
231
|
+
*/ getBlockHeaderByHash(blockHash) {
|
|
162
232
|
return this.#blockStore.getBlockHeaderByHash(L2BlockHash.fromField(blockHash));
|
|
163
233
|
}
|
|
164
|
-
|
|
234
|
+
/**
|
|
235
|
+
* Returns the block header for the given archive root, or undefined if not exists.
|
|
236
|
+
* @param archive - The archive root to return.
|
|
237
|
+
*/ getBlockHeaderByArchive(archive) {
|
|
165
238
|
return this.#blockStore.getBlockHeaderByArchive(archive);
|
|
166
239
|
}
|
|
167
240
|
/**
|
|
@@ -188,15 +261,19 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
188
261
|
deleteLogs(blocks) {
|
|
189
262
|
return this.#logStore.deleteLogs(blocks);
|
|
190
263
|
}
|
|
191
|
-
|
|
264
|
+
/**
|
|
265
|
+
* Get the total number of L1 to L2 messages
|
|
266
|
+
* @returns The number of L1 to L2 messages in the store
|
|
267
|
+
*/ getTotalL1ToL2MessageCount() {
|
|
192
268
|
return this.#messageStore.getTotalL1ToL2MessageCount();
|
|
193
269
|
}
|
|
194
|
-
getLastL1ToL2Message() {
|
|
270
|
+
/** Returns the last L1 to L2 message stored. */ getLastL1ToL2Message() {
|
|
195
271
|
return this.#messageStore.getLastMessage();
|
|
196
272
|
}
|
|
197
273
|
/**
|
|
198
274
|
* Append L1 to L2 messages to the store.
|
|
199
275
|
* @param messages - The L1 to L2 messages to be added to the store.
|
|
276
|
+
* @returns True if the operation is successful.
|
|
200
277
|
*/ addL1ToL2Messages(messages) {
|
|
201
278
|
return this.#messageStore.addL1ToL2Messages(messages);
|
|
202
279
|
}
|
|
@@ -214,14 +291,20 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
214
291
|
*/ getL1ToL2Messages(checkpointNumber) {
|
|
215
292
|
return this.#messageStore.getL1ToL2Messages(checkpointNumber);
|
|
216
293
|
}
|
|
217
|
-
|
|
294
|
+
/**
|
|
295
|
+
* Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
|
|
296
|
+
* array implies no logs match that tag.
|
|
297
|
+
*/ getPrivateLogsByTags(tags) {
|
|
218
298
|
try {
|
|
219
299
|
return this.#logStore.getPrivateLogsByTags(tags);
|
|
220
300
|
} catch (err) {
|
|
221
301
|
return Promise.reject(err);
|
|
222
302
|
}
|
|
223
303
|
}
|
|
224
|
-
|
|
304
|
+
/**
|
|
305
|
+
* Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
|
|
306
|
+
* logs is returned. An empty array implies no logs match that tag.
|
|
307
|
+
*/ getPublicLogsByTagsFromContract(contractAddress, tags) {
|
|
225
308
|
try {
|
|
226
309
|
return this.#logStore.getPublicLogsByTagsFromContract(contractAddress, tags);
|
|
227
310
|
} catch (err) {
|
|
@@ -250,23 +333,34 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
250
333
|
return Promise.reject(err);
|
|
251
334
|
}
|
|
252
335
|
}
|
|
253
|
-
|
|
336
|
+
/**
|
|
337
|
+
* Gets the number of the latest proven checkpoint processed.
|
|
338
|
+
* @returns The number of the latest proven checkpoint processed.
|
|
339
|
+
*/ getProvenCheckpointNumber() {
|
|
254
340
|
return this.#blockStore.getProvenCheckpointNumber();
|
|
255
341
|
}
|
|
256
|
-
|
|
342
|
+
/**
|
|
343
|
+
* Stores the number of the latest proven checkpoint processed.
|
|
344
|
+
* @param checkpointNumber - The number of the latest proven checkpoint processed.
|
|
345
|
+
*/ async setProvenCheckpointNumber(checkpointNumber) {
|
|
257
346
|
await this.#blockStore.setProvenCheckpointNumber(checkpointNumber);
|
|
258
347
|
}
|
|
259
348
|
async setBlockSynchedL1BlockNumber(l1BlockNumber) {
|
|
260
349
|
await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
|
|
261
350
|
}
|
|
262
|
-
|
|
351
|
+
/**
|
|
352
|
+
* Stores the l1 block that messages have been synched until
|
|
353
|
+
*/ async setMessageSynchedL1Block(l1Block) {
|
|
263
354
|
await this.#messageStore.setSynchedL1Block(l1Block);
|
|
264
355
|
}
|
|
265
|
-
|
|
356
|
+
/**
|
|
357
|
+
* Returns the number of the most recent proven block
|
|
358
|
+
* @returns The number of the most recent proven block
|
|
359
|
+
*/ getProvenBlockNumber() {
|
|
266
360
|
return this.#blockStore.getProvenBlockNumber();
|
|
267
361
|
}
|
|
268
362
|
/**
|
|
269
|
-
* Gets the
|
|
363
|
+
* Gets the synch point of the archiver
|
|
270
364
|
*/ async getSynchPoint() {
|
|
271
365
|
const [blocksSynchedTo, messagesSynchedTo] = await Promise.all([
|
|
272
366
|
this.#blockStore.getSynchedL1BlockNumber(),
|
|
@@ -277,37 +371,54 @@ export const MAX_FUNCTION_NAME_LEN = 256;
|
|
|
277
371
|
messagesSynchedTo
|
|
278
372
|
};
|
|
279
373
|
}
|
|
280
|
-
estimateSize() {
|
|
374
|
+
/** Estimates the size of the store in bytes. */ estimateSize() {
|
|
281
375
|
return this.db.estimateSize();
|
|
282
376
|
}
|
|
283
|
-
rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber) {
|
|
377
|
+
/** Deletes all L1 to L2 messages up until (excluding) the target checkpoint number. */ rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber) {
|
|
284
378
|
return this.#messageStore.rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber);
|
|
285
379
|
}
|
|
286
|
-
iterateL1ToL2Messages(range = {}) {
|
|
380
|
+
/** Returns an async iterator to all L1 to L2 messages on the range. */ iterateL1ToL2Messages(range = {}) {
|
|
287
381
|
return this.#messageStore.iterateL1ToL2Messages(range);
|
|
288
382
|
}
|
|
289
|
-
removeL1ToL2Messages(startIndex) {
|
|
383
|
+
/** Removes all L1 to L2 messages starting from the given index (inclusive). */ removeL1ToL2Messages(startIndex) {
|
|
290
384
|
return this.#messageStore.removeL1ToL2Messages(startIndex);
|
|
291
385
|
}
|
|
292
|
-
getPendingChainValidationStatus() {
|
|
386
|
+
/** Returns the last synced validation status of the pending chain. */ getPendingChainValidationStatus() {
|
|
293
387
|
return this.#blockStore.getPendingChainValidationStatus();
|
|
294
388
|
}
|
|
295
|
-
setPendingChainValidationStatus(status) {
|
|
389
|
+
/** Sets the last synced validation status of the pending chain. */ setPendingChainValidationStatus(status) {
|
|
296
390
|
return this.#blockStore.setPendingChainValidationStatus(status);
|
|
297
391
|
}
|
|
298
|
-
|
|
392
|
+
/**
|
|
393
|
+
* Gets the number of the latest L2 block processed.
|
|
394
|
+
* @returns The number of the latest L2 block processed.
|
|
395
|
+
*/ getCheckpointedL2BlockNumber() {
|
|
299
396
|
return this.#blockStore.getCheckpointedL2BlockNumber();
|
|
300
397
|
}
|
|
301
|
-
|
|
398
|
+
/**
|
|
399
|
+
* Gets the number of the latest published checkpoint processed.
|
|
400
|
+
* @returns The number of the latest published checkpoint processed
|
|
401
|
+
*/ getSynchedCheckpointNumber() {
|
|
302
402
|
return this.#blockStore.getLatestCheckpointNumber();
|
|
303
403
|
}
|
|
304
|
-
|
|
404
|
+
/**
|
|
405
|
+
* Stores the l1 block number that checkpoints have been synched until
|
|
406
|
+
* @param l1BlockNumber - The l1 block number
|
|
407
|
+
*/ async setCheckpointSynchedL1BlockNumber(l1BlockNumber) {
|
|
305
408
|
await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
|
|
306
409
|
}
|
|
307
|
-
|
|
410
|
+
/**
|
|
411
|
+
* Retrieves all blocks for the requested checkpoint
|
|
412
|
+
* @param checkpointNumber Retrieves all blocks for the given checkpoint
|
|
413
|
+
* @returns The collection of blocks for the requested checkpoint if available (undefined otherwise)
|
|
414
|
+
*/ getBlocksForCheckpoint(checkpointNumber) {
|
|
308
415
|
return this.#blockStore.getBlocksForCheckpoint(checkpointNumber);
|
|
309
416
|
}
|
|
310
|
-
|
|
417
|
+
/**
|
|
418
|
+
* Returns checkpoint data for the requested checkpoint number
|
|
419
|
+
* @param checkpointNumber - The checkpoint requested
|
|
420
|
+
* @returns The checkpoint data or undefined if not found
|
|
421
|
+
*/ getCheckpointData(checkpointNumber) {
|
|
311
422
|
return this.#blockStore.getCheckpointData(checkpointNumber);
|
|
312
423
|
}
|
|
313
424
|
}
|
|
@@ -35,7 +35,7 @@ export declare class CalldataRetriever {
|
|
|
35
35
|
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
36
36
|
* @returns Checkpoint header and metadata from the calldata, deserialized
|
|
37
37
|
*/
|
|
38
|
-
getCheckpointFromRollupTx(txHash: `0x${string}`,
|
|
38
|
+
getCheckpointFromRollupTx(txHash: `0x${string}`, _blobHashes: Buffer[], checkpointNumber: CheckpointNumber, expectedHashes: {
|
|
39
39
|
attestationsHash?: Hex;
|
|
40
40
|
payloadDigest?: Hex;
|
|
41
41
|
}): Promise<{
|
|
@@ -109,4 +109,4 @@ export declare class CalldataRetriever {
|
|
|
109
109
|
blockHash: string;
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBRUwsS0FBSyxHQUFHLEVBQ1IsS0FBSyxXQUFXLEVBT2pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU1yRTs7O0dBR0c7QUFDSCxxQkFBYSxpQkFBaUI7SUFPMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtJQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBVnpCLHVEQUF1RDtJQUN2RCxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFzQjtJQUV6RCxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBYTtJQUUzQyxZQUNtQixZQUFZLEVBQUUsZ0JBQWdCLEVBQzlCLFdBQVcsRUFBRSxxQkFBcUIsRUFDbEMsbUJBQW1CLEVBQUUsTUFBTSxFQUMzQixlQUFlLEVBQUUsdUJBQXVCLEdBQUcsU0FBUyxFQUNwRCxNQUFNLEVBQUUsTUFBTSxFQUMvQixpQkFBaUIsRUFBRTtRQUNqQixhQUFhLEVBQUUsVUFBVSxDQUFDO1FBQzFCLHlCQUF5QixFQUFFLFVBQVUsQ0FBQztRQUN0Qyx1QkFBdUIsRUFBRSxVQUFVLENBQUM7UUFDcEMsbUJBQW1CLENBQUMsRUFBRSxVQUFVLENBQUM7S0FDbEMsRUFJRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0cseUJBQXlCLENBQzdCLE1BQU0sRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUNyQixXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxjQUFjLEVBQUU7UUFDZCxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUN2QixhQUFhLENBQUMsRUFBRSxHQUFHLENBQUM7S0FDckIsR0FDQSxPQUFPLENBQUM7UUFDVCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUNuQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztRQUN6QixZQUFZLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztRQUNyQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0tBQ25CLENBQUMsQ0FTRDtJQUVELHNEQUFzRDtJQUN0RCxVQUFnQixrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0ErQnBHO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFnQixzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBNEJoRjtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRTtRQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFBO0tBQUUsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQXVGeEc7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQUU7UUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUM7UUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1FBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQTtLQUFFLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0EwQjNHO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFBZ0IsdUJBQXVCLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBeUNqRTtJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsaUNBQWlDO0lBZ0N6Qzs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLHdCQUF3QixDQUNoQyxlQUFlLEVBQUUsR0FBRyxFQUNwQixTQUFTLEVBQUUsR0FBRyxFQUNkLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxjQUFjLEVBQUU7UUFDZCxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUN2QixhQUFhLENBQUMsRUFBRSxHQUFHLENBQUM7S0FDckIsR0FDQTtRQUNELGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1FBQ25DLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDO1FBQ3pCLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3JDLFNBQVMsRUFBRSxNQUFNLENBQUM7S0FDbkIsQ0E2RkE7Q0FDRiJ9
|
|
@@ -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;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,WAAW,EAOjB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAMrE;;;GAGG;AACH,qBAAa,iBAAiB;IAO1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsB;IAEzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAE3C,YACmB,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE,qBAAqB,EAClC,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,uBAAuB,GAAG,SAAS,EACpD,MAAM,EAAE,MAAM,EAC/B,iBAAiB,EAAE;QACjB,aAAa,EAAE,UAAU,CAAC;QAC1B,yBAAyB,EAAE,UAAU,CAAC;QACtC,uBAAuB,EAAE,UAAU,CAAC;QACpC,mBAAmB,CAAC,EAAE,UAAU,CAAC;KAClC,EAIF;IAED;;;;;;;;OAQG;IACG,yBAAyB,CAC7B,MAAM,EAAE,KAAK,MAAM,EAAE,EACrB,
|
|
1
|
+
{"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/calldata_retriever.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
37
37
|
* @param checkpointNumber - Checkpoint number.
|
|
38
38
|
* @param expectedHashes - Optional expected hashes from the CheckpointProposed event for validation
|
|
39
39
|
* @returns Checkpoint header and metadata from the calldata, deserialized
|
|
40
|
-
*/ async getCheckpointFromRollupTx(txHash,
|
|
40
|
+
*/ async getCheckpointFromRollupTx(txHash, _blobHashes, checkpointNumber, expectedHashes) {
|
|
41
41
|
this.logger.trace(`Fetching checkpoint ${checkpointNumber} from rollup tx ${txHash}`, {
|
|
42
42
|
willValidateHashes: !!expectedHashes.attestationsHash || !!expectedHashes.payloadDigest,
|
|
43
43
|
hasAttestationsHash: !!expectedHashes.attestationsHash,
|
|
@@ -355,7 +355,7 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
355
355
|
// Use ConsensusPayload to compute the digest - this ensures we match the exact logic
|
|
356
356
|
// used by the network for signing and verification
|
|
357
357
|
const consensusPayload = new ConsensusPayload(header, archiveRoot);
|
|
358
|
-
const payloadToSign = consensusPayload.getPayloadToSign(SignatureDomainSeparator.
|
|
358
|
+
const payloadToSign = consensusPayload.getPayloadToSign(SignatureDomainSeparator.checkpointAttestation);
|
|
359
359
|
const computedPayloadDigest = keccak256(payloadToSign);
|
|
360
360
|
// Compare as buffers to avoid case-sensitivity and string comparison issues
|
|
361
361
|
const computedBuffer = Buffer.from(hexToBytes(computedPayloadDigest));
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { BlobClientInterface } from '@aztec/blob-client/client';
|
|
2
2
|
import { type CheckpointBlobData } from '@aztec/blob-lib';
|
|
3
|
-
import type {
|
|
3
|
+
import type { InboxContract, RollupContract } from '@aztec/ethereum/contracts';
|
|
4
|
+
import type { ViemPublicClient, ViemPublicDebugClient } from '@aztec/ethereum/types';
|
|
4
5
|
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
5
6
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
7
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
8
|
import { type Logger } from '@aztec/foundation/log';
|
|
8
|
-
import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
9
9
|
import { CommitteeAttestation } from '@aztec/stdlib/block';
|
|
10
10
|
import { L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
11
11
|
import { Proof } from '@aztec/stdlib/proofs';
|
|
12
12
|
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
13
|
-
import { type
|
|
13
|
+
import { type Hex } from 'viem';
|
|
14
14
|
import type { ArchiverInstrumentation } from '../instrumentation.js';
|
|
15
15
|
import type { DataRetrieval } from '../structs/data_retrieval.js';
|
|
16
16
|
import type { InboxMessage } from '../structs/inbox_message.js';
|
|
@@ -27,7 +27,7 @@ export type RetrievedCheckpoint = {
|
|
|
27
27
|
export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archiveRoot, header: checkpointHeader, checkpointBlobData, l1, chainId, version, attestations }: RetrievedCheckpoint): Promise<PublishedCheckpoint>;
|
|
28
28
|
/**
|
|
29
29
|
* Fetches new checkpoints.
|
|
30
|
-
* @param rollup - The rollup contract
|
|
30
|
+
* @param rollup - The rollup contract wrapper.
|
|
31
31
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
32
32
|
* @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
|
|
33
33
|
* @param blobClient - The blob client client for fetching blob data.
|
|
@@ -39,7 +39,7 @@ export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archi
|
|
|
39
39
|
* @param isHistoricalSync - Whether this is a historical sync.
|
|
40
40
|
* @returns An array of retrieved checkpoints.
|
|
41
41
|
*/
|
|
42
|
-
export declare function retrieveCheckpointsFromRollup(rollup:
|
|
42
|
+
export declare function retrieveCheckpointsFromRollup(rollup: RollupContract, publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, blobClient: BlobClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, contractAddresses: {
|
|
43
43
|
governanceProposerAddress: EthAddress;
|
|
44
44
|
slashFactoryAddress?: EthAddress;
|
|
45
45
|
slashingProposerAddress: EthAddress;
|
|
@@ -47,17 +47,15 @@ export declare function retrieveCheckpointsFromRollup(rollup: GetContractReturnT
|
|
|
47
47
|
export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
|
|
48
48
|
export declare function getCheckpointBlobDataFromBlobs(blobClient: BlobClientInterface, blockHash: string, blobHashes: Buffer<ArrayBufferLike>[], checkpointNumber: CheckpointNumber, logger: Logger, isHistoricalSync: boolean): Promise<CheckpointBlobData>;
|
|
49
49
|
/** Given an L1 to L2 message, retrieves its corresponding event from the Inbox within a specific block range. */
|
|
50
|
-
export declare function retrieveL1ToL2Message(inbox:
|
|
50
|
+
export declare function retrieveL1ToL2Message(inbox: InboxContract, leaf: Fr, fromBlock: bigint, toBlock: bigint): Promise<InboxMessage | undefined>;
|
|
51
51
|
/**
|
|
52
52
|
* Fetch L1 to L2 messages.
|
|
53
|
-
* @param
|
|
54
|
-
* @param inboxAddress - The address of the inbox contract to fetch messages from.
|
|
55
|
-
* @param blockUntilSynced - If true, blocks until the archiver has fully synced.
|
|
53
|
+
* @param inbox - The inbox contract wrapper.
|
|
56
54
|
* @param searchStartBlock - The block number to use for starting the search.
|
|
57
55
|
* @param searchEndBlock - The highest block number that we should search up to.
|
|
58
56
|
* @returns An array of InboxLeaf and next eth block to search from.
|
|
59
57
|
*/
|
|
60
|
-
export declare function retrieveL1ToL2Messages(inbox:
|
|
58
|
+
export declare function retrieveL1ToL2Messages(inbox: InboxContract, searchStartBlock: bigint, searchEndBlock: bigint): Promise<InboxMessage[]>;
|
|
61
59
|
/** Retrieves L2ProofVerified events from the rollup contract. */
|
|
62
60
|
export declare function retrieveL2ProofVerifiedEvents(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
|
|
63
61
|
l1BlockNumber: bigint;
|
|
@@ -87,4 +85,4 @@ export type SubmitEpochProof = {
|
|
|
87
85
|
* @returns Epoch proof metadata from the calldata, deserialized.
|
|
88
86
|
*/
|
|
89
87
|
export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9sMS9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFFTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sS0FBSyxFQUdWLGFBQWEsRUFFYixjQUFjLEVBQ2YsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sRUFBUSxvQkFBb0IsRUFBYyxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBYyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUE4QyxNQUFNLE1BQU0sQ0FBQztBQUc1RSxPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/data_retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAEL,KAAK,kBAAkB,EAIxB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/data_retrieval.ts"],"names":[],"mappings":"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"}
|