@aztec/archiver 3.0.0-nightly.20260102 → 3.0.0-nightly.20260104

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.
@@ -5,4 +5,4 @@ import type { ArchiverDataStore } from './archiver_store.js';
5
5
  * @param getStore - Returns an instance of a store that's already been initialized.
6
6
  */
7
7
  export declare function describeArchiverDataStore(testName: string, getStore: () => ArchiverDataStore | Promise<ArchiverDataStore>): void;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc3RvcmVfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2FyY2hpdmVyX3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0NBLE9BQU8sNEJBQTRCLENBQUM7QUFLcEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFhbkY7OztHQUdHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUE4dUYvRCJ9
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc3RvcmVfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2FyY2hpdmVyX3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0NBLE9BQU8sNEJBQTRCLENBQUM7QUFLcEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFhbkY7OztHQUdHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUEwdEYvRCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AAwCA,OAAO,4BAA4B,CAAC;AAKpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAanF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QA8uF/D"}
1
+ {"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AAwCA,OAAO,4BAA4B,CAAC;AAKpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAanF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QA0tF/D"}
@@ -2239,17 +2239,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
2239
2239
  [
2240
2240
  expect.objectContaining({
2241
2241
  blockNumber: 2,
2242
- blockHash: L2BlockHash.fromField(await logsCheckpoints[2 - 1].checkpoint.blocks[0].header.hash()),
2243
- log: makePrivateLog(tags[0]),
2244
- isFromPublic: false
2242
+ logData: makePrivateLog(tags[0]).getEmittedFields()
2245
2243
  })
2246
2244
  ],
2247
2245
  [
2248
2246
  expect.objectContaining({
2249
2247
  blockNumber: 1,
2250
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2251
- log: makePrivateLog(tags[1]),
2252
- isFromPublic: false
2248
+ logData: makePrivateLog(tags[1]).getEmittedFields()
2253
2249
  })
2254
2250
  ]
2255
2251
  ]);
@@ -2277,15 +2273,11 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
2277
2273
  [
2278
2274
  expect.objectContaining({
2279
2275
  blockNumber: 1,
2280
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2281
- log: makePrivateLog(tags[0]),
2282
- isFromPublic: false
2276
+ logData: makePrivateLog(tags[0]).getEmittedFields()
2283
2277
  }),
2284
2278
  expect.objectContaining({
2285
2279
  blockNumber: newBlockNumber,
2286
- blockHash: L2BlockHash.fromField(await newCheckpoint.checkpoint.blocks[0].header.hash()),
2287
- log: newLog,
2288
- isFromPublic: false
2280
+ logData: newLog.getEmittedFields()
2289
2281
  })
2290
2282
  ]
2291
2283
  ]);
@@ -2301,9 +2293,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
2301
2293
  [
2302
2294
  expect.objectContaining({
2303
2295
  blockNumber: 1,
2304
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2305
- log: makePrivateLog(tags[1]),
2306
- isFromPublic: false
2296
+ logData: makePrivateLog(tags[1]).getEmittedFields()
2307
2297
  })
2308
2298
  ]
2309
2299
  ]);
@@ -2369,17 +2359,13 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
2369
2359
  [
2370
2360
  expect.objectContaining({
2371
2361
  blockNumber: 2,
2372
- blockHash: L2BlockHash.fromField(await logsCheckpoints[2 - 1].checkpoint.blocks[0].header.hash()),
2373
- log: makePublicLog(tags[0]),
2374
- isFromPublic: true
2362
+ logData: makePublicLog(tags[0]).getEmittedFields()
2375
2363
  })
2376
2364
  ],
2377
2365
  [
2378
2366
  expect.objectContaining({
2379
2367
  blockNumber: 1,
2380
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2381
- log: makePublicLog(tags[1]),
2382
- isFromPublic: true
2368
+ logData: makePublicLog(tags[1]).getEmittedFields()
2383
2369
  })
2384
2370
  ]
2385
2371
  ]);
@@ -2407,15 +2393,11 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
2407
2393
  [
2408
2394
  expect.objectContaining({
2409
2395
  blockNumber: 1,
2410
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2411
- log: makePublicLog(tags[0]),
2412
- isFromPublic: true
2396
+ logData: makePublicLog(tags[0]).getEmittedFields()
2413
2397
  }),
2414
2398
  expect.objectContaining({
2415
2399
  blockNumber: newBlockNumber,
2416
- blockHash: L2BlockHash.fromField(await newCheckpoint.checkpoint.blocks[0].header.hash()),
2417
- log: newLog,
2418
- isFromPublic: true
2400
+ logData: newLog.getEmittedFields()
2419
2401
  })
2420
2402
  ]
2421
2403
  ]);
@@ -2431,9 +2413,7 @@ import { MessageStoreError } from './kv_archiver_store/message_store.js';
2431
2413
  [
2432
2414
  expect.objectContaining({
2433
2415
  blockNumber: 1,
2434
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2435
- log: makePublicLog(tags[1]),
2436
- isFromPublic: true
2416
+ logData: makePublicLog(tags[1]).getEmittedFields()
2437
2417
  })
2438
2418
  ]
2439
2419
  ]);
@@ -42,4 +42,4 @@ export declare class LogStore {
42
42
  */
43
43
  getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvbG9nX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sRUFJTCxLQUFLLFNBQVMsRUFHZCxLQUFLLFNBQVMsRUFDZCxHQUFHLEVBQ0gsYUFBYSxFQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxxQkFBYSxRQUFROztJQWFqQixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxVQUFVO0lBRnBCLFlBQ1UsRUFBRSxFQUFFLGlCQUFpQixFQUNyQixVQUFVLEVBQUUsVUFBVSxFQUM5QixlQUFlLEdBQUUsTUFBYSxFQVUvQjtJQXFHRDs7OztPQUlHO0lBQ0csT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBbUZwRDtJQWdCRCxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0EyQmpEO0lBRUQ7OztPQUdHO0lBQ0csb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBSXhFO0lBRUQ7OztPQUdHO0lBQ0csK0JBQStCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FRNUc7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBUS9EO0lBNkVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQVE3RTtDQTZHRiJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvbG9nX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sRUFJTCxLQUFLLFNBQVMsRUFHZCxLQUFLLFNBQVMsRUFDZCxHQUFHLEVBQ0gsYUFBYSxFQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxxQkFBYSxRQUFROztJQWFqQixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxVQUFVO0lBRnBCLFlBQ1UsRUFBRSxFQUFFLGlCQUFpQixFQUNyQixVQUFVLEVBQUUsVUFBVSxFQUM5QixlQUFlLEdBQUUsTUFBYSxFQVUvQjtJQStGRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBbUY5QztJQWdCRCxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0EyQmpEO0lBRUQ7OztPQUdHO0lBQ0csb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBSXhFO0lBRUQ7OztPQUdHO0lBQ0csK0JBQStCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FRNUc7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBUS9EO0lBNkVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQVE3RTtDQTZHRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,EAGd,KAAK,SAAS,EACd,GAAG,EACH,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,qBAAa,QAAQ;;IAajB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAFpB,YACU,EAAE,EAAE,iBAAiB,EACrB,UAAU,EAAE,UAAU,EAC9B,eAAe,GAAE,MAAa,EAU/B;IAqGD;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAmFpD;IAgBD,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BjD;IAED;;;OAGG;IACG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAIxE;IAED;;;OAGG;IACG,+BAA+B,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAQ5G;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
+ {"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,EAGd,KAAK,SAAS,EACd,GAAG,EACH,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,qBAAa,QAAQ;;IAajB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAFpB,YACU,EAAE,EAAE,iBAAiB,EACrB,UAAU,EAAE,UAAU,EAC9B,eAAe,GAAE,MAAa,EAU/B;IA+FD;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAmF9C;IAgBD,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BjD;IAED;;;OAGG;IACG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAIxE;IAED;;;OAGG;IACG,+BAA+B,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAQ5G;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,4 +1,4 @@
1
- import { INITIAL_L2_BLOCK_NUM, MAX_NOTE_HASHES_PER_TX } from '@aztec/constants';
1
+ import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
2
  import { BlockNumber } from '@aztec/foundation/branded-types';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { createLogger } from '@aztec/foundation/log';
@@ -37,32 +37,29 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
37
37
  *
38
38
  * @param block - The L2 block to extract logs from.
39
39
  * @returns An object containing the private and public tagged logs for the block.
40
- */ async #extractTaggedLogsFromBlock(block) {
41
- const blockHash = L2BlockHash.fromField(await block.hash());
40
+ */ #extractTaggedLogsFromBlock(block) {
42
41
  // SiloedTag (as string) -> array of log buffers.
43
42
  const privateTaggedLogs = new Map();
44
43
  // "{contractAddress}_{tag}" (as string) -> array of log buffers.
45
44
  const publicTaggedLogs = new Map();
46
- const dataStartIndexForBlock = block.header.state.partial.noteHashTree.nextAvailableLeafIndex - block.body.txEffects.length * MAX_NOTE_HASHES_PER_TX;
47
- block.body.txEffects.forEach((txEffect, txIndex)=>{
45
+ block.body.txEffects.forEach((txEffect)=>{
48
46
  const txHash = txEffect.txHash;
49
- const dataStartIndexForTx = dataStartIndexForBlock + txIndex * MAX_NOTE_HASHES_PER_TX;
50
- txEffect.privateLogs.forEach((log, logIndex)=>{
47
+ txEffect.privateLogs.forEach((log)=>{
51
48
  // Private logs use SiloedTag (already siloed by kernel)
52
49
  const tag = log.fields[0];
53
50
  this.#log.debug(`Found private log with tag ${tag.toString()} in block ${block.number}`);
54
51
  const currentLogs = privateTaggedLogs.get(tag.toString()) ?? [];
55
- currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, block.timestamp, log).toBuffer());
52
+ currentLogs.push(new TxScopedL2Log(txHash, block.number, block.timestamp, log.getEmittedFields(), txEffect.noteHashes, txEffect.nullifiers[0]).toBuffer());
56
53
  privateTaggedLogs.set(tag.toString(), currentLogs);
57
54
  });
58
- txEffect.publicLogs.forEach((log, logIndex)=>{
55
+ txEffect.publicLogs.forEach((log)=>{
59
56
  // Public logs use Tag directly (not siloed) and are stored with contract address
60
57
  const tag = log.fields[0];
61
58
  const contractAddress = log.contractAddress;
62
59
  const key = `${contractAddress.toString()}_${tag.toString()}`;
63
60
  this.#log.debug(`Found public log with tag ${tag.toString()} from contract ${contractAddress.toString()} in block ${block.number}`);
64
61
  const currentLogs = publicTaggedLogs.get(key) ?? [];
65
- currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, logIndex, block.number, blockHash, block.timestamp, log).toBuffer());
62
+ currentLogs.push(new TxScopedL2Log(txHash, block.number, block.timestamp, log.getEmittedFields(), txEffect.noteHashes, txEffect.nullifiers[0]).toBuffer());
66
63
  publicTaggedLogs.set(key, currentLogs);
67
64
  });
68
65
  });
@@ -76,8 +73,8 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
76
73
  * @param blocks - The blocks to extract logs from.
77
74
  * @returns A map from tag (as string) to an array of serialized private logs belonging to that tag, and a map from
78
75
  * "{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)));
76
+ */ #extractTaggedLogs(blocks) {
77
+ const taggedLogsInBlocks = blocks.map((block)=>this.#extractTaggedLogsFromBlock(block));
81
78
  // Now we merge the maps from each block into a single map.
82
79
  const privateTaggedLogs = taggedLogsInBlocks.reduce((acc, { privateTaggedLogs })=>{
83
80
  for (const [tag, logs] of privateTaggedLogs.entries()){
@@ -102,8 +99,8 @@ import { ContractClassLog, ExtendedContractClassLog, ExtendedPublicLog, LogId, P
102
99
  * Append new logs to the store's list.
103
100
  * @param blocks - The blocks for which to add the logs.
104
101
  * @returns True if the operation is successful.
105
- */ async addLogs(blocks) {
106
- const { privateTaggedLogs, publicTaggedLogs } = await this.#extractTaggedLogs(blocks);
102
+ */ addLogs(blocks) {
103
+ const { privateTaggedLogs, publicTaggedLogs } = this.#extractTaggedLogs(blocks);
107
104
  const keysOfPrivateLogsToUpdate = Array.from(privateTaggedLogs.keys());
108
105
  const keysOfPublicLogsToUpdate = Array.from(publicTaggedLogs.keys());
109
106
  return this.db.transactionAsync(async ()=>{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "3.0.0-nightly.20260102",
3
+ "version": "3.0.0-nightly.20260104",
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-client": "3.0.0-nightly.20260102",
70
- "@aztec/blob-lib": "3.0.0-nightly.20260102",
71
- "@aztec/constants": "3.0.0-nightly.20260102",
72
- "@aztec/epoch-cache": "3.0.0-nightly.20260102",
73
- "@aztec/ethereum": "3.0.0-nightly.20260102",
74
- "@aztec/foundation": "3.0.0-nightly.20260102",
75
- "@aztec/kv-store": "3.0.0-nightly.20260102",
76
- "@aztec/l1-artifacts": "3.0.0-nightly.20260102",
77
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20260102",
78
- "@aztec/protocol-contracts": "3.0.0-nightly.20260102",
79
- "@aztec/stdlib": "3.0.0-nightly.20260102",
80
- "@aztec/telemetry-client": "3.0.0-nightly.20260102",
69
+ "@aztec/blob-client": "3.0.0-nightly.20260104",
70
+ "@aztec/blob-lib": "3.0.0-nightly.20260104",
71
+ "@aztec/constants": "3.0.0-nightly.20260104",
72
+ "@aztec/epoch-cache": "3.0.0-nightly.20260104",
73
+ "@aztec/ethereum": "3.0.0-nightly.20260104",
74
+ "@aztec/foundation": "3.0.0-nightly.20260104",
75
+ "@aztec/kv-store": "3.0.0-nightly.20260104",
76
+ "@aztec/l1-artifacts": "3.0.0-nightly.20260104",
77
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20260104",
78
+ "@aztec/protocol-contracts": "3.0.0-nightly.20260104",
79
+ "@aztec/stdlib": "3.0.0-nightly.20260104",
80
+ "@aztec/telemetry-client": "3.0.0-nightly.20260104",
81
81
  "lodash.groupby": "^4.6.0",
82
82
  "lodash.omit": "^4.5.0",
83
83
  "tslib": "^2.5.0",
@@ -2276,17 +2276,13 @@ export function describeArchiverDataStore(
2276
2276
  [
2277
2277
  expect.objectContaining({
2278
2278
  blockNumber: 2,
2279
- blockHash: L2BlockHash.fromField(await logsCheckpoints[2 - 1].checkpoint.blocks[0].header.hash()),
2280
- log: makePrivateLog(tags[0]),
2281
- isFromPublic: false,
2279
+ logData: makePrivateLog(tags[0]).getEmittedFields(),
2282
2280
  }),
2283
2281
  ],
2284
2282
  [
2285
2283
  expect.objectContaining({
2286
2284
  blockNumber: 1,
2287
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2288
- log: makePrivateLog(tags[1]),
2289
- isFromPublic: false,
2285
+ logData: makePrivateLog(tags[1]).getEmittedFields(),
2290
2286
  }),
2291
2287
  ],
2292
2288
  ]);
@@ -2312,15 +2308,11 @@ export function describeArchiverDataStore(
2312
2308
  [
2313
2309
  expect.objectContaining({
2314
2310
  blockNumber: 1,
2315
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2316
- log: makePrivateLog(tags[0]),
2317
- isFromPublic: false,
2311
+ logData: makePrivateLog(tags[0]).getEmittedFields(),
2318
2312
  }),
2319
2313
  expect.objectContaining({
2320
2314
  blockNumber: newBlockNumber,
2321
- blockHash: L2BlockHash.fromField(await newCheckpoint.checkpoint.blocks[0].header.hash()),
2322
- log: newLog,
2323
- isFromPublic: false,
2315
+ logData: newLog.getEmittedFields(),
2324
2316
  }),
2325
2317
  ],
2326
2318
  ]);
@@ -2338,9 +2330,7 @@ export function describeArchiverDataStore(
2338
2330
  [
2339
2331
  expect.objectContaining({
2340
2332
  blockNumber: 1,
2341
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2342
- log: makePrivateLog(tags[1]),
2343
- isFromPublic: false,
2333
+ logData: makePrivateLog(tags[1]).getEmittedFields(),
2344
2334
  }),
2345
2335
  ],
2346
2336
  ]);
@@ -2425,17 +2415,13 @@ export function describeArchiverDataStore(
2425
2415
  [
2426
2416
  expect.objectContaining({
2427
2417
  blockNumber: 2,
2428
- blockHash: L2BlockHash.fromField(await logsCheckpoints[2 - 1].checkpoint.blocks[0].header.hash()),
2429
- log: makePublicLog(tags[0]),
2430
- isFromPublic: true,
2418
+ logData: makePublicLog(tags[0]).getEmittedFields(),
2431
2419
  }),
2432
2420
  ],
2433
2421
  [
2434
2422
  expect.objectContaining({
2435
2423
  blockNumber: 1,
2436
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2437
- log: makePublicLog(tags[1]),
2438
- isFromPublic: true,
2424
+ logData: makePublicLog(tags[1]).getEmittedFields(),
2439
2425
  }),
2440
2426
  ],
2441
2427
  ]);
@@ -2461,15 +2447,11 @@ export function describeArchiverDataStore(
2461
2447
  [
2462
2448
  expect.objectContaining({
2463
2449
  blockNumber: 1,
2464
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2465
- log: makePublicLog(tags[0]),
2466
- isFromPublic: true,
2450
+ logData: makePublicLog(tags[0]).getEmittedFields(),
2467
2451
  }),
2468
2452
  expect.objectContaining({
2469
2453
  blockNumber: newBlockNumber,
2470
- blockHash: L2BlockHash.fromField(await newCheckpoint.checkpoint.blocks[0].header.hash()),
2471
- log: newLog,
2472
- isFromPublic: true,
2454
+ logData: newLog.getEmittedFields(),
2473
2455
  }),
2474
2456
  ],
2475
2457
  ]);
@@ -2487,9 +2469,7 @@ export function describeArchiverDataStore(
2487
2469
  [
2488
2470
  expect.objectContaining({
2489
2471
  blockNumber: 1,
2490
- blockHash: L2BlockHash.fromField(await logsCheckpoints[1 - 1].checkpoint.blocks[0].header.hash()),
2491
- log: makePublicLog(tags[1]),
2492
- isFromPublic: true,
2472
+ logData: makePublicLog(tags[1]).getEmittedFields(),
2493
2473
  }),
2494
2474
  ],
2495
2475
  ]);
@@ -1,4 +1,4 @@
1
- import { INITIAL_L2_BLOCK_NUM, MAX_NOTE_HASHES_PER_TX } from '@aztec/constants';
1
+ import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
2
2
  import { BlockNumber } from '@aztec/foundation/branded-types';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { createLogger } from '@aztec/foundation/log';
@@ -57,21 +57,16 @@ export class LogStore {
57
57
  * @param block - The L2 block to extract logs from.
58
58
  * @returns An object containing the private and public tagged logs for the block.
59
59
  */
60
- async #extractTaggedLogsFromBlock(block: L2BlockNew) {
61
- const blockHash = L2BlockHash.fromField(await block.hash());
60
+ #extractTaggedLogsFromBlock(block: L2BlockNew) {
62
61
  // SiloedTag (as string) -> array of log buffers.
63
62
  const privateTaggedLogs = new Map<string, Buffer[]>();
64
63
  // "{contractAddress}_{tag}" (as string) -> array of log buffers.
65
64
  const publicTaggedLogs = new Map<string, Buffer[]>();
66
- const dataStartIndexForBlock =
67
- block.header.state.partial.noteHashTree.nextAvailableLeafIndex -
68
- block.body.txEffects.length * MAX_NOTE_HASHES_PER_TX;
69
65
 
70
- block.body.txEffects.forEach((txEffect, txIndex) => {
66
+ block.body.txEffects.forEach(txEffect => {
71
67
  const txHash = txEffect.txHash;
72
- const dataStartIndexForTx = dataStartIndexForBlock + txIndex * MAX_NOTE_HASHES_PER_TX;
73
68
 
74
- txEffect.privateLogs.forEach((log, logIndex) => {
69
+ txEffect.privateLogs.forEach(log => {
75
70
  // Private logs use SiloedTag (already siloed by kernel)
76
71
  const tag = log.fields[0];
77
72
  this.#log.debug(`Found private log with tag ${tag.toString()} in block ${block.number}`);
@@ -80,18 +75,17 @@ export class LogStore {
80
75
  currentLogs.push(
81
76
  new TxScopedL2Log(
82
77
  txHash,
83
- dataStartIndexForTx,
84
- logIndex,
85
78
  block.number,
86
- blockHash,
87
79
  block.timestamp,
88
- log,
80
+ log.getEmittedFields(),
81
+ txEffect.noteHashes,
82
+ txEffect.nullifiers[0],
89
83
  ).toBuffer(),
90
84
  );
91
85
  privateTaggedLogs.set(tag.toString(), currentLogs);
92
86
  });
93
87
 
94
- txEffect.publicLogs.forEach((log, logIndex) => {
88
+ txEffect.publicLogs.forEach(log => {
95
89
  // Public logs use Tag directly (not siloed) and are stored with contract address
96
90
  const tag = log.fields[0];
97
91
  const contractAddress = log.contractAddress;
@@ -104,12 +98,11 @@ export class LogStore {
104
98
  currentLogs.push(
105
99
  new TxScopedL2Log(
106
100
  txHash,
107
- dataStartIndexForTx,
108
- logIndex,
109
101
  block.number,
110
- blockHash,
111
102
  block.timestamp,
112
- log,
103
+ log.getEmittedFields(),
104
+ txEffect.noteHashes,
105
+ txEffect.nullifiers[0],
113
106
  ).toBuffer(),
114
107
  );
115
108
  publicTaggedLogs.set(key, currentLogs);
@@ -125,10 +118,11 @@ export class LogStore {
125
118
  * @returns A map from tag (as string) to an array of serialized private logs belonging to that tag, and a map from
126
119
  * "{contractAddress}_{tag}" (as string) to an array of serialized public logs belonging to that key.
127
120
  */
128
- async #extractTaggedLogs(
129
- blocks: L2BlockNew[],
130
- ): Promise<{ privateTaggedLogs: Map<string, Buffer[]>; publicTaggedLogs: Map<string, Buffer[]> }> {
131
- const taggedLogsInBlocks = await Promise.all(blocks.map(block => this.#extractTaggedLogsFromBlock(block)));
121
+ #extractTaggedLogs(blocks: L2BlockNew[]): {
122
+ privateTaggedLogs: Map<string, Buffer[]>;
123
+ publicTaggedLogs: Map<string, Buffer[]>;
124
+ } {
125
+ const taggedLogsInBlocks = blocks.map(block => this.#extractTaggedLogsFromBlock(block));
132
126
 
133
127
  // Now we merge the maps from each block into a single map.
134
128
  const privateTaggedLogs = taggedLogsInBlocks.reduce((acc, { privateTaggedLogs }) => {
@@ -155,8 +149,8 @@ export class LogStore {
155
149
  * @param blocks - The blocks for which to add the logs.
156
150
  * @returns True if the operation is successful.
157
151
  */
158
- async addLogs(blocks: L2BlockNew[]): Promise<boolean> {
159
- const { privateTaggedLogs, publicTaggedLogs } = await this.#extractTaggedLogs(blocks);
152
+ addLogs(blocks: L2BlockNew[]): Promise<boolean> {
153
+ const { privateTaggedLogs, publicTaggedLogs } = this.#extractTaggedLogs(blocks);
160
154
 
161
155
  const keysOfPrivateLogsToUpdate = Array.from(privateTaggedLogs.keys());
162
156
  const keysOfPublicLogsToUpdate = Array.from(publicTaggedLogs.keys());