@aztec/archiver 3.0.0-nightly.20251222 → 3.0.0-nightly.20251224

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.
Files changed (33) hide show
  1. package/dest/archiver/archiver.d.ts +10 -14
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +23 -18
  4. package/dest/archiver/archiver_store.d.ts +11 -8
  5. package/dest/archiver/archiver_store.d.ts.map +1 -1
  6. package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
  7. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  8. package/dest/archiver/archiver_store_test_suite.js +134 -39
  9. package/dest/archiver/config.d.ts +3 -3
  10. package/dest/archiver/config.d.ts.map +1 -1
  11. package/dest/archiver/config.js +2 -2
  12. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +4 -10
  13. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  14. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +9 -8
  15. package/dest/archiver/kv_archiver_store/log_store.d.ts +11 -8
  16. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  17. package/dest/archiver/kv_archiver_store/log_store.js +114 -48
  18. package/dest/archiver/l1/bin/retrieve-calldata.js +3 -1
  19. package/dest/archiver/l1/data_retrieval.d.ts +5 -5
  20. package/dest/archiver/l1/data_retrieval.d.ts.map +1 -1
  21. package/dest/archiver/l1/data_retrieval.js +9 -9
  22. package/dest/factory.d.ts +1 -1
  23. package/dest/factory.js +1 -1
  24. package/package.json +13 -13
  25. package/src/archiver/archiver.ts +29 -20
  26. package/src/archiver/archiver_store.ts +11 -7
  27. package/src/archiver/archiver_store_test_suite.ts +157 -43
  28. package/src/archiver/config.ts +7 -3
  29. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +11 -10
  30. package/src/archiver/kv_archiver_store/log_store.ts +158 -53
  31. package/src/archiver/l1/bin/retrieve-calldata.ts +1 -1
  32. package/src/archiver/l1/data_retrieval.ts +10 -10
  33. package/src/factory.ts +1 -1
@@ -10,8 +10,12 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
10
10
  */ export class LogStore {
11
11
  db;
12
12
  blockStore;
13
- #logsByTag;
14
- #logTagsByBlock;
13
+ // `tag` --> private logs
14
+ #privateLogsByTag;
15
+ // `{contractAddress}_${tag}` --> public logs
16
+ #publicLogsByContractAndTag;
17
+ #privateLogKeysByBlock;
18
+ #publicLogKeysByBlock;
15
19
  #publicLogsByBlock;
16
20
  #contractClassLogsByBlock;
17
21
  #logsMaxPageSize;
@@ -20,68 +24,121 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
20
24
  this.db = db;
21
25
  this.blockStore = blockStore;
22
26
  this.#log = createLogger('archiver:log_store');
23
- this.#logsByTag = db.openMap('archiver_tagged_logs_by_tag');
24
- this.#logTagsByBlock = db.openMap('archiver_log_tags_by_block');
27
+ this.#privateLogsByTag = db.openMap('archiver_private_tagged_logs_by_tag');
28
+ this.#publicLogsByContractAndTag = db.openMap('archiver_public_tagged_logs_by_tag');
29
+ this.#privateLogKeysByBlock = db.openMap('archiver_private_log_keys_by_block');
30
+ this.#publicLogKeysByBlock = db.openMap('archiver_public_log_keys_by_block');
25
31
  this.#publicLogsByBlock = db.openMap('archiver_public_logs_by_block');
26
32
  this.#contractClassLogsByBlock = db.openMap('archiver_contract_class_logs_by_block');
27
33
  this.#logsMaxPageSize = logsMaxPageSize;
28
34
  }
29
- async #extractTaggedLogs(block) {
35
+ /**
36
+ * Extracts tagged logs from a single block, grouping them into private and public maps.
37
+ *
38
+ * @param block - The L2 block to extract logs from.
39
+ * @returns An object containing the private and public tagged logs for the block.
40
+ */ async #extractTaggedLogsFromBlock(block) {
30
41
  const blockHash = L2BlockHash.fromField(await block.hash());
31
- const taggedLogs = new Map();
42
+ // SiloedTag (as string) -> array of log buffers.
43
+ const privateTaggedLogs = new Map();
44
+ // "{contractAddress}_{tag}" (as string) -> array of log buffers.
45
+ const publicTaggedLogs = new Map();
32
46
  const dataStartIndexForBlock = block.header.state.partial.noteHashTree.nextAvailableLeafIndex - block.body.txEffects.length * MAX_NOTE_HASHES_PER_TX;
33
47
  block.body.txEffects.forEach((txEffect, txIndex)=>{
34
48
  const txHash = txEffect.txHash;
35
49
  const dataStartIndexForTx = dataStartIndexForBlock + txIndex * MAX_NOTE_HASHES_PER_TX;
36
50
  txEffect.privateLogs.forEach((log, logIndex)=>{
51
+ // Private logs use SiloedTag (already siloed by kernel)
37
52
  const tag = log.fields[0];
38
53
  this.#log.debug(`Found private log with tag ${tag.toString()} in block ${block.number}`);
39
- const currentLogs = taggedLogs.get(tag.toString()) ?? [];
40
- currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, log).toBuffer());
41
- taggedLogs.set(tag.toString(), currentLogs);
54
+ const currentLogs = privateTaggedLogs.get(tag.toString()) ?? [];
55
+ currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, block.timestamp, log).toBuffer());
56
+ privateTaggedLogs.set(tag.toString(), currentLogs);
42
57
  });
43
58
  txEffect.publicLogs.forEach((log, logIndex)=>{
59
+ // Public logs use Tag directly (not siloed) and are stored with contract address
44
60
  const tag = log.fields[0];
45
- this.#log.debug(`Found public log with tag ${tag.toString()} in block ${block.number}`);
46
- const currentLogs = taggedLogs.get(tag.toString()) ?? [];
47
- currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, log).toBuffer());
48
- taggedLogs.set(tag.toString(), currentLogs);
61
+ const contractAddress = log.contractAddress;
62
+ const key = `${contractAddress.toString()}_${tag.toString()}`;
63
+ this.#log.debug(`Found public log with tag ${tag.toString()} from contract ${contractAddress.toString()} in block ${block.number}`);
64
+ const currentLogs = publicTaggedLogs.get(key) ?? [];
65
+ currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, block.timestamp, log).toBuffer());
66
+ publicTaggedLogs.set(key, currentLogs);
49
67
  });
50
68
  });
51
- return taggedLogs;
69
+ return {
70
+ privateTaggedLogs,
71
+ publicTaggedLogs
72
+ };
52
73
  }
53
74
  /**
54
- * Append new logs to the store's list.
55
- * @param blocks - The blocks for which to add the logs.
56
- * @returns True if the operation is successful.
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()){
75
+ * Extracts and aggregates tagged logs from a list of blocks.
76
+ * @param blocks - The blocks to extract logs from.
77
+ * @returns A map from tag (as string) to an array of serialized private logs belonging to that tag, and a map from
78
+ * "{contractAddress}_{tag}" (as string) to an array of serialized public logs belonging to that key.
79
+ */ async #extractTaggedLogs(blocks) {
80
+ const taggedLogsInBlocks = await Promise.all(blocks.map((block)=>this.#extractTaggedLogsFromBlock(block)));
81
+ // Now we merge the maps from each block into a single map.
82
+ const privateTaggedLogs = taggedLogsInBlocks.reduce((acc, { privateTaggedLogs })=>{
83
+ for (const [tag, logs] of privateTaggedLogs.entries()){
61
84
  const currentLogs = acc.get(tag) ?? [];
62
85
  acc.set(tag, currentLogs.concat(logs));
63
86
  }
64
87
  return acc;
65
88
  }, new Map());
66
- const tagsToUpdate = Array.from(taggedLogsToAdd.keys());
89
+ const publicTaggedLogs = taggedLogsInBlocks.reduce((acc, { publicTaggedLogs })=>{
90
+ for (const [key, logs] of publicTaggedLogs.entries()){
91
+ const currentLogs = acc.get(key) ?? [];
92
+ acc.set(key, currentLogs.concat(logs));
93
+ }
94
+ return acc;
95
+ }, new Map());
96
+ return {
97
+ privateTaggedLogs,
98
+ publicTaggedLogs
99
+ };
100
+ }
101
+ /**
102
+ * Append new logs to the store's list.
103
+ * @param blocks - The blocks for which to add the logs.
104
+ * @returns True if the operation is successful.
105
+ */ async addLogs(blocks) {
106
+ const { privateTaggedLogs, publicTaggedLogs } = await this.#extractTaggedLogs(blocks);
107
+ const keysOfPrivateLogsToUpdate = Array.from(privateTaggedLogs.keys());
108
+ const keysOfPublicLogsToUpdate = Array.from(publicTaggedLogs.keys());
67
109
  return this.db.transactionAsync(async ()=>{
68
- const currentTaggedLogs = await Promise.all(tagsToUpdate.map(async (tag)=>({
69
- tag,
70
- logBuffers: await this.#logsByTag.getAsync(tag)
110
+ const currentPrivateTaggedLogs = await Promise.all(keysOfPrivateLogsToUpdate.map(async (key)=>({
111
+ tag: key,
112
+ logBuffers: await this.#privateLogsByTag.getAsync(key)
71
113
  })));
72
- currentTaggedLogs.forEach((taggedLogBuffer)=>{
114
+ currentPrivateTaggedLogs.forEach((taggedLogBuffer)=>{
73
115
  if (taggedLogBuffer.logBuffers && taggedLogBuffer.logBuffers.length > 0) {
74
- taggedLogsToAdd.set(taggedLogBuffer.tag, taggedLogBuffer.logBuffers.concat(taggedLogsToAdd.get(taggedLogBuffer.tag)));
116
+ privateTaggedLogs.set(taggedLogBuffer.tag, taggedLogBuffer.logBuffers.concat(privateTaggedLogs.get(taggedLogBuffer.tag)));
117
+ }
118
+ });
119
+ const currentPublicTaggedLogs = await Promise.all(keysOfPublicLogsToUpdate.map(async (key)=>({
120
+ key,
121
+ logBuffers: await this.#publicLogsByContractAndTag.getAsync(key)
122
+ })));
123
+ currentPublicTaggedLogs.forEach((taggedLogBuffer)=>{
124
+ if (taggedLogBuffer.logBuffers && taggedLogBuffer.logBuffers.length > 0) {
125
+ publicTaggedLogs.set(taggedLogBuffer.key, taggedLogBuffer.logBuffers.concat(publicTaggedLogs.get(taggedLogBuffer.key)));
75
126
  }
76
127
  });
77
128
  for (const block of blocks){
78
129
  const blockHash = await block.hash();
79
- const tagsInBlock = [];
80
- for (const [tag, logs] of taggedLogsToAdd.entries()){
81
- await this.#logsByTag.set(tag, logs);
82
- tagsInBlock.push(tag);
130
+ const privateTagsInBlock = [];
131
+ for (const [tag, logs] of privateTaggedLogs.entries()){
132
+ await this.#privateLogsByTag.set(tag, logs);
133
+ privateTagsInBlock.push(tag);
134
+ }
135
+ await this.#privateLogKeysByBlock.set(block.number, privateTagsInBlock);
136
+ const publicKeysInBlock = [];
137
+ for (const [key, logs] of publicTaggedLogs.entries()){
138
+ await this.#publicLogsByContractAndTag.set(key, logs);
139
+ publicKeysInBlock.push(key);
83
140
  }
84
- await this.#logTagsByBlock.set(block.number, tagsInBlock);
141
+ await this.#publicLogKeysByBlock.set(block.number, publicKeysInBlock);
85
142
  const publicLogsInBlock = block.body.txEffects.map((txEffect, txIndex)=>[
86
143
  numToUInt32BE(txIndex),
87
144
  numToUInt32BE(txEffect.publicLogs.length),
@@ -113,30 +170,39 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
113
170
  }
114
171
  deleteLogs(blocks) {
115
172
  return this.db.transactionAsync(async ()=>{
116
- const tagsToDelete = (await Promise.all(blocks.map(async (block)=>{
117
- const tags = await this.#logTagsByBlock.getAsync(block.number);
118
- return tags ?? [];
119
- }))).flat();
173
+ await Promise.all(blocks.map(async (block)=>{
174
+ // Delete private logs
175
+ const privateKeys = await this.#privateLogKeysByBlock.getAsync(block.number) ?? [];
176
+ await Promise.all(privateKeys.map((tag)=>this.#privateLogsByTag.delete(tag)));
177
+ // Delete public logs
178
+ const publicKeys = await this.#publicLogKeysByBlock.getAsync(block.number) ?? [];
179
+ await Promise.all(publicKeys.map((key)=>this.#publicLogsByContractAndTag.delete(key)));
180
+ }));
120
181
  await Promise.all(blocks.map((block)=>Promise.all([
121
182
  this.#publicLogsByBlock.delete(block.number),
122
- this.#logTagsByBlock.delete(block.number),
183
+ this.#privateLogKeysByBlock.delete(block.number),
184
+ this.#publicLogKeysByBlock.delete(block.number),
123
185
  this.#contractClassLogsByBlock.delete(block.number)
124
186
  ])));
125
- await Promise.all(tagsToDelete.map((tag)=>this.#logsByTag.delete(tag.toString())));
126
187
  return true;
127
188
  });
128
189
  }
129
190
  /**
130
- * Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
131
- * @param tags - The tags to filter the logs by.
132
- * @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
133
- * that tag.
134
- */ async getLogsByTags(tags, limitPerTag) {
135
- if (limitPerTag !== undefined && limitPerTag <= 0) {
136
- throw new TypeError('limitPerTag needs to be greater than 0');
137
- }
138
- const logs = await Promise.all(tags.map((tag)=>this.#logsByTag.getAsync(tag.toString())));
139
- return logs.map((logBuffers)=>logBuffers?.slice(0, limitPerTag).map((logBuffer)=>TxScopedL2Log.fromBuffer(logBuffer)) ?? []);
191
+ * Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
192
+ * array implies no logs match that tag.
193
+ */ async getPrivateLogsByTags(tags) {
194
+ const logs = await Promise.all(tags.map((tag)=>this.#privateLogsByTag.getAsync(tag.toString())));
195
+ return logs.map((logBuffers)=>logBuffers?.map((logBuffer)=>TxScopedL2Log.fromBuffer(logBuffer)) ?? []);
196
+ }
197
+ /**
198
+ * Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
199
+ * logs is returned. An empty array implies no logs match that tag.
200
+ */ async getPublicLogsByTagsFromContract(contractAddress, tags) {
201
+ const logs = await Promise.all(tags.map((tag)=>{
202
+ const key = `${contractAddress.toString()}_${tag.value.toString()}`;
203
+ return this.#publicLogsByContractAndTag.getAsync(key);
204
+ }));
205
+ return logs.map((logBuffers)=>logBuffers?.map((logBuffer)=>TxScopedL2Log.fromBuffer(logBuffer)) ?? []);
140
206
  }
141
207
  /**
142
208
  * Gets public logs based on the provided filter.
@@ -61,7 +61,9 @@ async function main() {
61
61
  // Create viem public client
62
62
  const publicClient = createPublicClient({
63
63
  chain: mainnet,
64
- transport: http(rpcUrl)
64
+ transport: http(rpcUrl, {
65
+ batch: false
66
+ })
65
67
  });
66
68
  logger.info('Fetching transaction...');
67
69
  const tx = await publicClient.getTransaction({
@@ -1,5 +1,5 @@
1
+ import type { BlobClientInterface } from '@aztec/blob-client/client';
1
2
  import { type CheckpointBlobData } from '@aztec/blob-lib';
2
- import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
3
3
  import type { ViemClient, ViemPublicClient, ViemPublicDebugClient } from '@aztec/ethereum/types';
4
4
  import { CheckpointNumber } from '@aztec/foundation/branded-types';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -30,7 +30,7 @@ export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archi
30
30
  * @param rollup - The rollup contract instance.
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
- * @param blobSinkClient - The blob sink client for fetching blob data.
33
+ * @param blobClient - The blob client client for fetching blob data.
34
34
  * @param searchStartBlock - The block number to use for starting the search.
35
35
  * @param searchEndBlock - The highest block number that we should search up to.
36
36
  * @param contractAddresses - The contract addresses (governanceProposerAddress, slashFactoryAddress, slashingProposerAddress).
@@ -39,13 +39,13 @@ 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: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, contractAddresses: {
42
+ export declare function retrieveCheckpointsFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, blobClient: BlobClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, contractAddresses: {
43
43
  governanceProposerAddress: EthAddress;
44
44
  slashFactoryAddress?: EthAddress;
45
45
  slashingProposerAddress: EthAddress;
46
46
  }, instrumentation: ArchiverInstrumentation, logger?: Logger, isHistoricalSync?: boolean): Promise<RetrievedCheckpoint[]>;
47
47
  export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
48
- export declare function getCheckpointBlobDataFromBlobs(blobSinkClient: BlobSinkClientInterface, blockHash: string, blobHashes: Buffer<ArrayBufferLike>[], checkpointNumber: CheckpointNumber, logger: Logger, isHistoricalSync: boolean): Promise<CheckpointBlobData>;
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
50
  export declare function retrieveL1ToL2Message(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, leaf: Fr, fromBlock: bigint, toBlock: bigint): Promise<InboxMessage | undefined>;
51
51
  /**
@@ -87,4 +87,4 @@ export type SubmitEpochProof = {
87
87
  * @returns Epoch proof metadata from the calldata, deserialized.
88
88
  */
89
89
  export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9sMS9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhELE9BQU8sRUFFTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLEdBQUcsRUFJVCxNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFD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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9sMS9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFFTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhELE9BQU8sRUFFTCxLQUFLLHFCQUFxQixFQUMxQixLQUFLLEdBQUcsRUFJVCxNQUFNLE1BQU0sQ0FBQztBQUdkLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/data_retrieval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../../src/archiver/l1/data_retrieval.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
81
81
  * @param rollup - The rollup contract instance.
82
82
  * @param publicClient - The viem public client to use for transaction retrieval.
83
83
  * @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
84
- * @param blobSinkClient - The blob sink client for fetching blob data.
84
+ * @param blobClient - The blob client client for fetching blob data.
85
85
  * @param searchStartBlock - The block number to use for starting the search.
86
86
  * @param searchEndBlock - The highest block number that we should search up to.
87
87
  * @param contractAddresses - The contract addresses (governanceProposerAddress, slashFactoryAddress, slashingProposerAddress).
@@ -89,7 +89,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
89
89
  * @param logger - The logger instance.
90
90
  * @param isHistoricalSync - Whether this is a historical sync.
91
91
  * @returns An array of retrieved checkpoints.
92
- */ export async function retrieveCheckpointsFromRollup(rollup, publicClient, debugClient, blobSinkClient, searchStartBlock, searchEndBlock, contractAddresses, instrumentation, logger = createLogger('archiver'), isHistoricalSync = false) {
92
+ */ export async function retrieveCheckpointsFromRollup(rollup, publicClient, debugClient, blobClient, searchStartBlock, searchEndBlock, contractAddresses, instrumentation, logger = createLogger('archiver'), isHistoricalSync = false) {
93
93
  const retrievedCheckpoints = [];
94
94
  let rollupConstants;
95
95
  do {
@@ -117,7 +117,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
117
117
  targetCommitteeSize: Number(targetCommitteeSize)
118
118
  };
119
119
  }
120
- const newCheckpoints = await processCheckpointProposedLogs(rollup, publicClient, debugClient, blobSinkClient, checkpointProposedLogs, rollupConstants, contractAddresses, instrumentation, logger, isHistoricalSync);
120
+ const newCheckpoints = await processCheckpointProposedLogs(rollup, publicClient, debugClient, blobClient, checkpointProposedLogs, rollupConstants, contractAddresses, instrumentation, logger, isHistoricalSync);
121
121
  retrievedCheckpoints.push(...newCheckpoints);
122
122
  searchStartBlock = lastLog.blockNumber + 1n;
123
123
  }while (searchStartBlock <= searchEndBlock)
@@ -129,7 +129,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
129
129
  * @param rollup - The rollup contract instance.
130
130
  * @param publicClient - The viem public client to use for transaction retrieval.
131
131
  * @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
132
- * @param blobSinkClient - The blob sink client for fetching blob data.
132
+ * @param blobClient - The blob client client for fetching blob data.
133
133
  * @param logs - CheckpointProposed logs.
134
134
  * @param rollupConstants - The rollup constants (chainId, version, targetCommitteeSize).
135
135
  * @param contractAddresses - The contract addresses (governanceProposerAddress, slashFactoryAddress, slashingProposerAddress).
@@ -137,7 +137,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
137
137
  * @param logger - The logger instance.
138
138
  * @param isHistoricalSync - Whether this is a historical sync.
139
139
  * @returns An array of retrieved checkpoints.
140
- */ async function processCheckpointProposedLogs(rollup, publicClient, debugClient, blobSinkClient, logs, { chainId, version, targetCommitteeSize }, contractAddresses, instrumentation, logger, isHistoricalSync) {
140
+ */ async function processCheckpointProposedLogs(rollup, publicClient, debugClient, blobClient, logs, { chainId, version, targetCommitteeSize }, contractAddresses, instrumentation, logger, isHistoricalSync) {
141
141
  const retrievedCheckpoints = [];
142
142
  const calldataRetriever = new CalldataRetriever(publicClient, debugClient, targetCommitteeSize, instrumentation, logger, {
143
143
  ...contractAddresses,
@@ -158,7 +158,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
158
158
  payloadDigest: log.args.payloadDigest
159
159
  };
160
160
  const checkpoint = await calldataRetriever.getCheckpointFromRollupTx(log.transactionHash, blobHashes, checkpointNumber, expectedHashes);
161
- const checkpointBlobData = await getCheckpointBlobDataFromBlobs(blobSinkClient, checkpoint.blockHash, blobHashes, checkpointNumber, logger, isHistoricalSync);
161
+ const checkpointBlobData = await getCheckpointBlobDataFromBlobs(blobClient, checkpoint.blockHash, blobHashes, checkpointNumber, logger, isHistoricalSync);
162
162
  const l1 = new L1PublishedData(log.blockNumber, await getL1BlockTime(publicClient, log.blockNumber), log.blockHash);
163
163
  retrievedCheckpoints.push({
164
164
  ...checkpoint,
@@ -189,8 +189,8 @@ export async function getL1BlockTime(publicClient, blockNumber) {
189
189
  });
190
190
  return block.timestamp;
191
191
  }
192
- export async function getCheckpointBlobDataFromBlobs(blobSinkClient, blockHash, blobHashes, checkpointNumber, logger, isHistoricalSync) {
193
- const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes, undefined, {
192
+ export async function getCheckpointBlobDataFromBlobs(blobClient, blockHash, blobHashes, checkpointNumber, logger, isHistoricalSync) {
193
+ const blobBodies = await blobClient.getBlobSidecar(blockHash, blobHashes, {
194
194
  isHistoricalSync
195
195
  });
196
196
  if (blobBodies.length === 0) {
@@ -199,7 +199,7 @@ export async function getCheckpointBlobDataFromBlobs(blobSinkClient, blockHash,
199
199
  let checkpointBlobData;
200
200
  try {
201
201
  // Attempt to decode the checkpoint blob data.
202
- checkpointBlobData = decodeCheckpointBlobDataFromBlobs(blobBodies.map((b)=>b.blob));
202
+ checkpointBlobData = decodeCheckpointBlobDataFromBlobs(blobBodies);
203
203
  } catch (err) {
204
204
  if (err instanceof BlobDeserializationError) {
205
205
  logger.fatal(err.message);
package/dest/factory.d.ts CHANGED
@@ -8,7 +8,7 @@ export declare function createArchiverStore(userConfig: Pick<ArchiverConfig, 'ar
8
8
  /**
9
9
  * Creates a local archiver.
10
10
  * @param config - The archiver configuration.
11
- * @param blobSinkClient - The blob sink client.
11
+ * @param blobClient - The blob client client.
12
12
  * @param opts - The options.
13
13
  * @param telemetry - The telemetry client.
14
14
  * @returns The local archiver.
package/dest/factory.js CHANGED
@@ -19,7 +19,7 @@ export const ARCHIVER_STORE_NAME = 'archiver';
19
19
  /**
20
20
  * Creates a local archiver.
21
21
  * @param config - The archiver configuration.
22
- * @param blobSinkClient - The blob sink client.
22
+ * @param blobClient - The blob client client.
23
23
  * @param opts - The options.
24
24
  * @param telemetry - The telemetry client.
25
25
  * @returns The local archiver.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "3.0.0-nightly.20251222",
3
+ "version": "3.0.0-nightly.20251224",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -66,18 +66,18 @@
66
66
  ]
67
67
  },
68
68
  "dependencies": {
69
- "@aztec/blob-lib": "3.0.0-nightly.20251222",
70
- "@aztec/blob-sink": "3.0.0-nightly.20251222",
71
- "@aztec/constants": "3.0.0-nightly.20251222",
72
- "@aztec/epoch-cache": "3.0.0-nightly.20251222",
73
- "@aztec/ethereum": "3.0.0-nightly.20251222",
74
- "@aztec/foundation": "3.0.0-nightly.20251222",
75
- "@aztec/kv-store": "3.0.0-nightly.20251222",
76
- "@aztec/l1-artifacts": "3.0.0-nightly.20251222",
77
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251222",
78
- "@aztec/protocol-contracts": "3.0.0-nightly.20251222",
79
- "@aztec/stdlib": "3.0.0-nightly.20251222",
80
- "@aztec/telemetry-client": "3.0.0-nightly.20251222",
69
+ "@aztec/blob-client": "3.0.0-nightly.20251224",
70
+ "@aztec/blob-lib": "3.0.0-nightly.20251224",
71
+ "@aztec/constants": "3.0.0-nightly.20251224",
72
+ "@aztec/epoch-cache": "3.0.0-nightly.20251224",
73
+ "@aztec/ethereum": "3.0.0-nightly.20251224",
74
+ "@aztec/foundation": "3.0.0-nightly.20251224",
75
+ "@aztec/kv-store": "3.0.0-nightly.20251224",
76
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251224",
77
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251224",
78
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251224",
79
+ "@aztec/stdlib": "3.0.0-nightly.20251224",
80
+ "@aztec/telemetry-client": "3.0.0-nightly.20251224",
81
81
  "lodash.groupby": "^4.6.0",
82
82
  "lodash.omit": "^4.5.0",
83
83
  "tslib": "^2.5.0",
@@ -1,4 +1,4 @@
1
- import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
1
+ import type { BlobClientInterface } from '@aztec/blob-client/client';
2
2
  import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
3
3
  import { EpochCache } from '@aztec/epoch-cache';
4
4
  import { createEthereumChain } from '@aztec/ethereum/chain';
@@ -64,7 +64,15 @@ import {
64
64
  } from '@aztec/stdlib/epoch-helpers';
65
65
  import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
66
66
  import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
67
- import { ContractClassLog, type LogFilter, type PrivateLog, type PublicLog, TxScopedL2Log } from '@aztec/stdlib/logs';
67
+ import {
68
+ ContractClassLog,
69
+ type LogFilter,
70
+ type PrivateLog,
71
+ type PublicLog,
72
+ type SiloedTag,
73
+ Tag,
74
+ TxScopedL2Log,
75
+ } from '@aztec/stdlib/logs';
68
76
  import { type L1ToL2MessageSource, computeInHashFromL1ToL2Messages } from '@aztec/stdlib/messaging';
69
77
  import type { CheckpointHeader } from '@aztec/stdlib/rollup';
70
78
  import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
@@ -110,7 +118,7 @@ type AddBlockRequest = {
110
118
 
111
119
  export type ArchiverDeps = {
112
120
  telemetry?: TelemetryClient;
113
- blobSinkClient: BlobSinkClientInterface;
121
+ blobClient: BlobClientInterface;
114
122
  epochCache?: EpochCache;
115
123
  dateProvider?: DateProvider;
116
124
  };
@@ -188,7 +196,7 @@ export class Archiver
188
196
  maxAllowedEthClientDriftSeconds: number;
189
197
  ethereumAllowNoDebugHosts?: boolean;
190
198
  },
191
- private readonly blobSinkClient: BlobSinkClientInterface,
199
+ private readonly blobClient: BlobClientInterface,
192
200
  private readonly epochCache: EpochCache,
193
201
  private readonly dateProvider: DateProvider,
194
202
  private readonly instrumentation: ArchiverInstrumentation,
@@ -230,7 +238,7 @@ export class Archiver
230
238
  const chain = createEthereumChain(config.l1RpcUrls, config.l1ChainId);
231
239
  const publicClient = createPublicClient({
232
240
  chain: chain.chainInfo,
233
- transport: fallback(config.l1RpcUrls.map(url => http(url))),
241
+ transport: fallback(config.l1RpcUrls.map(url => http(url, { batch: false }))),
234
242
  pollingInterval: config.viemPollingIntervalMS,
235
243
  });
236
244
 
@@ -238,7 +246,7 @@ export class Archiver
238
246
  const debugRpcUrls = config.l1DebugRpcUrls.length > 0 ? config.l1DebugRpcUrls : config.l1RpcUrls;
239
247
  const debugClient = createPublicClient({
240
248
  chain: chain.chainInfo,
241
- transport: fallback(debugRpcUrls.map(url => http(url))),
249
+ transport: fallback(debugRpcUrls.map(url => http(url, { batch: false }))),
242
250
  pollingInterval: config.viemPollingIntervalMS,
243
251
  }) as ViemPublicDebugClient;
244
252
 
@@ -289,7 +297,7 @@ export class Archiver
289
297
  { ...config.l1Contracts, slashingProposerAddress },
290
298
  archiverStore,
291
299
  opts,
292
- deps.blobSinkClient,
300
+ deps.blobClient,
293
301
  epochCache,
294
302
  deps.dateProvider ?? new DateProvider(),
295
303
  await ArchiverInstrumentation.new(telemetry, () => archiverStore.estimateSize()),
@@ -313,7 +321,7 @@ export class Archiver
313
321
  throw new Error('Archiver is already running');
314
322
  }
315
323
 
316
- await this.blobSinkClient.testSources();
324
+ await this.blobClient.testSources();
317
325
  await this.testEthereumNodeSynced();
318
326
  await validateAndLogTraceAvailability(this.debugClient, this.config.ethereumAllowNoDebugHosts ?? false);
319
327
 
@@ -959,12 +967,12 @@ export class Archiver
959
967
 
960
968
  this.log.trace(`Retrieving checkpoints from L1 block ${searchStartBlock} to ${searchEndBlock}`);
961
969
 
962
- // TODO(md): Retrieve from blob sink then from consensus client, then from peers
970
+ // TODO(md): Retrieve from blob client then from consensus client, then from peers
963
971
  const retrievedCheckpoints = await retrieveCheckpointsFromRollup(
964
972
  this.rollup.getContract() as GetContractReturnType<typeof RollupAbi, ViemPublicClient>,
965
973
  this.publicClient,
966
974
  this.debugClient,
967
- this.blobSinkClient,
975
+ this.blobClient,
968
976
  searchStartBlock, // TODO(palla/reorg): If the L2 reorg was due to an L1 reorg, we need to start search earlier
969
977
  searchEndBlock,
970
978
  this.l1Addresses,
@@ -1407,14 +1415,12 @@ export class Archiver
1407
1415
  return this.store.getSettledTxReceipt(txHash);
1408
1416
  }
1409
1417
 
1410
- /**
1411
- * Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
1412
- * @param tags - The tags to filter the logs by.
1413
- * @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
1414
- * that tag.
1415
- */
1416
- getLogsByTags(tags: Fr[]): Promise<TxScopedL2Log[][]> {
1417
- return this.store.getLogsByTags(tags);
1418
+ getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]> {
1419
+ return this.store.getPrivateLogsByTags(tags);
1420
+ }
1421
+
1422
+ getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]> {
1423
+ return this.store.getPublicLogsByTagsFromContract(contractAddress, tags);
1418
1424
  }
1419
1425
 
1420
1426
  /**
@@ -2072,8 +2078,11 @@ export class ArchiverStoreHelper
2072
2078
  getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined> {
2073
2079
  return this.store.getL1ToL2MessageIndex(l1ToL2Message);
2074
2080
  }
2075
- getLogsByTags(tags: Fr[], logsPerTag?: number): Promise<TxScopedL2Log[][]> {
2076
- return this.store.getLogsByTags(tags, logsPerTag);
2081
+ getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]> {
2082
+ return this.store.getPrivateLogsByTags(tags);
2083
+ }
2084
+ getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]> {
2085
+ return this.store.getPublicLogsByTagsFromContract(contractAddress, tags);
2077
2086
  }
2078
2087
  getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse> {
2079
2088
  return this.store.getPublicLogs(filter);
@@ -14,7 +14,7 @@ import type {
14
14
  UtilityFunctionWithMembershipProof,
15
15
  } from '@aztec/stdlib/contract';
16
16
  import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
17
- import type { LogFilter, TxScopedL2Log } from '@aztec/stdlib/logs';
17
+ import type { LogFilter, SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
18
18
  import { BlockHeader, type IndexedTxEffect, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
19
19
  import type { UInt64 } from '@aztec/stdlib/types';
20
20
 
@@ -206,13 +206,17 @@ export interface ArchiverDataStore {
206
206
  getTotalL1ToL2MessageCount(): Promise<bigint>;
207
207
 
208
208
  /**
209
- * Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
210
- * @param tags - The tags to filter the logs by.
211
- * @param logsPerTag - The number of logs to return per tag. Defaults to everything
212
- * @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
213
- * that tag.
209
+ /**
210
+ * Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
211
+ * array implies no logs match that tag.
212
+ */
213
+ getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
214
+
215
+ /**
216
+ * Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
217
+ * logs is returned. An empty array implies no logs match that tag.
214
218
  */
215
- getLogsByTags(tags: Fr[], logsPerTag?: number): Promise<TxScopedL2Log[][]>;
219
+ getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
216
220
 
217
221
  /**
218
222
  * Gets public logs based on the provided filter.