@aztec/archiver 0.73.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (82) hide show
  1. package/dest/archiver/archiver.js +729 -711
  2. package/dest/archiver/archiver_store.js +4 -2
  3. package/dest/archiver/archiver_store_test_suite.js +385 -224
  4. package/dest/archiver/config.js +9 -11
  5. package/dest/archiver/data_retrieval.js +89 -65
  6. package/dest/archiver/errors.js +1 -2
  7. package/dest/archiver/index.js +0 -1
  8. package/dest/archiver/instrumentation.js +29 -17
  9. package/dest/archiver/kv_archiver_store/block_store.js +118 -127
  10. package/dest/archiver/kv_archiver_store/contract_class_store.js +43 -37
  11. package/dest/archiver/kv_archiver_store/contract_instance_store.js +7 -12
  12. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +135 -158
  13. package/dest/archiver/kv_archiver_store/log_store.js +271 -256
  14. package/dest/archiver/kv_archiver_store/message_store.js +42 -48
  15. package/dest/archiver/kv_archiver_store/nullifier_store.js +35 -42
  16. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +15 -24
  17. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +227 -231
  18. package/dest/archiver/structs/data_retrieval.js +5 -2
  19. package/dest/archiver/structs/published.js +1 -2
  20. package/dest/factory.js +30 -20
  21. package/dest/index.js +0 -1
  22. package/dest/rpc/index.js +5 -2
  23. package/dest/test/index.js +0 -1
  24. package/dest/test/mock_archiver.js +8 -13
  25. package/dest/test/mock_l1_to_l2_message_source.js +4 -4
  26. package/dest/test/mock_l2_block_source.js +68 -67
  27. package/package.json +14 -13
  28. package/src/archiver/archiver.ts +1 -1
  29. package/src/archiver/data_retrieval.ts +17 -3
  30. package/src/archiver/index.ts +1 -1
  31. package/dest/archiver/archiver.d.ts +0 -186
  32. package/dest/archiver/archiver.d.ts.map +0 -1
  33. package/dest/archiver/archiver_store.d.ts +0 -217
  34. package/dest/archiver/archiver_store.d.ts.map +0 -1
  35. package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
  36. package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
  37. package/dest/archiver/config.d.ts +0 -35
  38. package/dest/archiver/config.d.ts.map +0 -1
  39. package/dest/archiver/data_retrieval.d.ts +0 -71
  40. package/dest/archiver/data_retrieval.d.ts.map +0 -1
  41. package/dest/archiver/errors.d.ts +0 -4
  42. package/dest/archiver/errors.d.ts.map +0 -1
  43. package/dest/archiver/index.d.ts +0 -8
  44. package/dest/archiver/index.d.ts.map +0 -1
  45. package/dest/archiver/instrumentation.d.ts +0 -27
  46. package/dest/archiver/instrumentation.d.ts.map +0 -1
  47. package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -87
  48. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
  49. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -17
  50. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
  51. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -13
  52. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
  53. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -147
  54. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
  55. package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -47
  56. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
  57. package/dest/archiver/kv_archiver_store/message_store.d.ts +0 -33
  58. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
  59. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
  60. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
  61. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
  62. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
  63. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -168
  64. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
  65. package/dest/archiver/structs/data_retrieval.d.ts +0 -27
  66. package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
  67. package/dest/archiver/structs/published.d.ts +0 -11
  68. package/dest/archiver/structs/published.d.ts.map +0 -1
  69. package/dest/factory.d.ts +0 -10
  70. package/dest/factory.d.ts.map +0 -1
  71. package/dest/index.d.ts +0 -5
  72. package/dest/index.d.ts.map +0 -1
  73. package/dest/rpc/index.d.ts +0 -4
  74. package/dest/rpc/index.d.ts.map +0 -1
  75. package/dest/test/index.d.ts +0 -4
  76. package/dest/test/index.d.ts.map +0 -1
  77. package/dest/test/mock_archiver.d.ts +0 -22
  78. package/dest/test/mock_archiver.d.ts.map +0 -1
  79. package/dest/test/mock_l1_to_l2_message_source.d.ts +0 -16
  80. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +0 -1
  81. package/dest/test/mock_l2_block_source.d.ts +0 -80
  82. package/dest/test/mock_l2_block_source.d.ts.map +0 -1
@@ -1,2 +1,5 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIvc3RydWN0cy9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
1
+ /**
2
+ * Data retrieved from logs
3
+ */ /**
4
+ * Data retrieved from logs
5
+ */ export { };
@@ -1,2 +1 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL3N0cnVjdHMvcHVibGlzaGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
1
+ /** Extends a type with L1 published info (block number, hash, and timestamp) */ export { };
package/dest/factory.js CHANGED
@@ -1,4 +1,4 @@
1
- import { computePublicBytecodeCommitment, getContractClassFromArtifact, } from '@aztec/circuits.js';
1
+ import { computePublicBytecodeCommitment, getContractClassFromArtifact } from '@aztec/circuits.js';
2
2
  import { FunctionType, decodeFunctionSignature } from '@aztec/foundation/abi';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { createStore } from '@aztec/kv-store/lmdb-v2';
@@ -10,34 +10,42 @@ import { getTelemetryClient } from '@aztec/telemetry-client';
10
10
  import { Archiver } from './archiver/archiver.js';
11
11
  import { KVArchiverDataStore } from './archiver/index.js';
12
12
  import { createArchiverClient } from './rpc/index.js';
13
- export async function createArchiver(config, blobSinkClient, opts = { blockUntilSync: true }, telemetry = getTelemetryClient()) {
13
+ export async function createArchiver(config, blobSinkClient, opts = {
14
+ blockUntilSync: true
15
+ }, telemetry = getTelemetryClient()) {
14
16
  if (!config.archiverUrl) {
15
17
  const store = await createStore('archiver', config, createLogger('archiver:lmdb'));
16
18
  const archiverStore = new KVArchiverDataStore(store, config.maxLogs);
17
19
  await registerProtocolContracts(archiverStore);
18
20
  await registerCommonContracts(archiverStore);
19
- return Archiver.createAndSync(config, archiverStore, { telemetry, blobSinkClient }, opts.blockUntilSync);
20
- }
21
- else {
21
+ return Archiver.createAndSync(config, archiverStore, {
22
+ telemetry,
23
+ blobSinkClient
24
+ }, opts.blockUntilSync);
25
+ } else {
22
26
  return createArchiverClient(config.archiverUrl);
23
27
  }
24
28
  }
25
29
  async function registerProtocolContracts(store) {
26
30
  const blockNumber = 0;
27
- for (const name of protocolContractNames) {
31
+ for (const name of protocolContractNames){
28
32
  const contract = await getCanonicalProtocolContract(name);
29
33
  const contractClassPublic = {
30
34
  ...contract.contractClass,
31
35
  privateFunctions: [],
32
- unconstrainedFunctions: [],
36
+ unconstrainedFunctions: []
33
37
  };
34
- const publicFunctionSignatures = contract.artifact.functions
35
- .filter(fn => fn.functionType === FunctionType.PUBLIC)
36
- .map(fn => decodeFunctionSignature(fn.name, fn.parameters));
38
+ const publicFunctionSignatures = contract.artifact.functions.filter((fn)=>fn.functionType === FunctionType.PUBLIC).map((fn)=>decodeFunctionSignature(fn.name, fn.parameters));
37
39
  await store.registerContractFunctionSignatures(contract.address, publicFunctionSignatures);
38
40
  const bytecodeCommitment = await computePublicBytecodeCommitment(contractClassPublic.packedBytecode);
39
- await store.addContractClasses([contractClassPublic], [bytecodeCommitment], blockNumber);
40
- await store.addContractInstances([contract.instance], blockNumber);
41
+ await store.addContractClasses([
42
+ contractClassPublic
43
+ ], [
44
+ bytecodeCommitment
45
+ ], blockNumber);
46
+ await store.addContractInstances([
47
+ contract.instance
48
+ ], blockNumber);
41
49
  }
42
50
  }
43
51
  // TODO(#10007): Remove this method. We are explicitly registering these contracts
@@ -47,13 +55,15 @@ async function registerProtocolContracts(store) {
47
55
  // TODO(#10007): Remove the dependency on noir-contracts.js from this package once we remove this.
48
56
  async function registerCommonContracts(store) {
49
57
  const blockNumber = 0;
50
- const artifacts = [TokenBridgeContractArtifact, TokenContractArtifact];
51
- const classes = await Promise.all(artifacts.map(async (artifact) => ({
52
- ...(await getContractClassFromArtifact(artifact)),
53
- privateFunctions: [],
54
- unconstrainedFunctions: [],
55
- })));
56
- const bytecodeCommitments = await Promise.all(classes.map(x => computePublicBytecodeCommitment(x.packedBytecode)));
58
+ const artifacts = [
59
+ TokenBridgeContractArtifact,
60
+ TokenContractArtifact
61
+ ];
62
+ const classes = await Promise.all(artifacts.map(async (artifact)=>({
63
+ ...await getContractClassFromArtifact(artifact),
64
+ privateFunctions: [],
65
+ unconstrainedFunctions: []
66
+ })));
67
+ const bytecodeCommitments = await Promise.all(classes.map((x)=>computePublicBytecodeCommitment(x.packedBytecode)));
57
68
  await store.addContractClasses(classes, bytecodeCommitments, blockNumber);
58
69
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCwrQkFBK0IsRUFDL0IsNEJBQTRCLEdBQzdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsTUFBd0MsRUFDeEMsY0FBdUMsRUFDdkMsT0FBb0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQzVELFlBQTZCLGtCQUFrQixFQUFFO0lBRWpELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMs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
package/dest/index.js CHANGED
@@ -2,4 +2,3 @@ export * from './archiver/index.js';
2
2
  export * from './factory.js';
3
3
  export * from './rpc/index.js';
4
4
  export { retrieveBlocksFromRollup, retrieveL2ProofVerifiedEvents } from './archiver/data_retrieval.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBRS9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDIn0=
package/dest/rpc/index.js CHANGED
@@ -1,10 +1,13 @@
1
1
  import { ArchiverApiSchema } from '@aztec/circuit-types';
2
2
  import { createSafeJsonRpcClient } from '@aztec/foundation/json-rpc/client';
3
3
  import { createTracedJsonRpcServer, makeTracedFetch } from '@aztec/telemetry-client';
4
- export function createArchiverClient(url, fetch = makeTracedFetch([1, 2, 3], true)) {
4
+ export function createArchiverClient(url, fetch = makeTracedFetch([
5
+ 1,
6
+ 2,
7
+ 3
8
+ ], true)) {
5
9
  return createSafeJsonRpcClient(url, ArchiverApiSchema, false, 'archiver', fetch);
6
10
  }
7
11
  export function createArchiverRpcServer(handler) {
8
12
  return createTracedJsonRpcServer(handler, ArchiverApiSchema);
9
13
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnBjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckYsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7SUFDeEYsT0FBTyx1QkFBdUIsQ0FBYyxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE9BQW9CO0lBQzFELE9BQU8seUJBQXlCLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDL0QsQ0FBQyJ9
@@ -1,4 +1,3 @@
1
1
  export * from './mock_l2_block_source.js';
2
2
  export * from './mock_l1_to_l2_message_source.js';
3
3
  export * from './mock_archiver.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxvQkFBb0IsQ0FBQyJ9
@@ -2,12 +2,8 @@ import { MockL1ToL2MessageSource } from './mock_l1_to_l2_message_source.js';
2
2
  import { MockL2BlockSource } from './mock_l2_block_source.js';
3
3
  /**
4
4
  * A mocked implementation of the archiver that implements L2BlockSource and L1ToL2MessageSource.
5
- */
6
- export class MockArchiver extends MockL2BlockSource {
7
- constructor() {
8
- super(...arguments);
9
- this.messageSource = new MockL1ToL2MessageSource(0);
10
- }
5
+ */ export class MockArchiver extends MockL2BlockSource {
6
+ messageSource = new MockL1ToL2MessageSource(0);
11
7
  setL1ToL2Messages(blockNumber, msgs) {
12
8
  this.messageSource.setL1ToL2Messages(blockNumber, msgs);
13
9
  }
@@ -20,18 +16,18 @@ export class MockArchiver extends MockL2BlockSource {
20
16
  }
21
17
  /**
22
18
  * A mocked implementation of the archiver with a set of precomputed blocks and messages.
23
- */
24
- export class MockPrefilledArchiver extends MockArchiver {
25
- constructor(precomputed, messages) {
19
+ */ export class MockPrefilledArchiver extends MockArchiver {
20
+ precomputed;
21
+ constructor(precomputed, messages){
26
22
  super();
27
23
  this.precomputed = precomputed.slice();
28
- messages.forEach((msgs, i) => this.setL1ToL2Messages(i + 1, msgs));
24
+ messages.forEach((msgs, i)=>this.setL1ToL2Messages(i + 1, msgs));
29
25
  }
30
26
  setPrefilledBlocks(blocks, messages) {
31
- for (const block of blocks) {
27
+ for (const block of blocks){
32
28
  this.precomputed[block.number - 1] = block;
33
29
  }
34
- messages.forEach((msgs, i) => this.setL1ToL2Messages(blocks[i].number, msgs));
30
+ messages.forEach((msgs, i)=>this.setL1ToL2Messages(blocks[i].number, msgs));
35
31
  }
36
32
  createBlocks(numBlocks) {
37
33
  if (this.l2Blocks.length + numBlocks > this.precomputed.length) {
@@ -42,4 +38,3 @@ export class MockPrefilledArchiver extends MockArchiver {
42
38
  return Promise.resolve();
43
39
  }
44
40
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19hcmNoaXZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfYXJjaGl2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLGlCQUFpQjtJQUFuRDs7UUFDVSxrQkFBYSxHQUFHLElBQUksdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFhekQsQ0FBQztJQVhRLGlCQUFpQixDQUFDLFdBQW1CLEVBQUUsSUFBVTtRQUN0RCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxjQUFrQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUdyRCxZQUFZLFdBQXNCLEVBQUUsUUFBZ0I7UUFDbEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sa0JBQWtCLENBQUMsTUFBaUIsRUFBRSxRQUFnQjtRQUMzRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0MsQ0FBQztRQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFZSxZQUFZLENBQUMsU0FBaUI7UUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvRCxNQUFNLElBQUksS0FBSyxDQUNiLDJDQUEyQyxTQUFTLDRCQUE0QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUN4RyxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * A mocked implementation of L1ToL2MessageSource to be used in tests.
3
- */
4
- export class MockL1ToL2MessageSource {
5
- constructor(blockNumber) {
3
+ */ export class MockL1ToL2MessageSource {
4
+ blockNumber;
5
+ messagesPerBlock;
6
+ constructor(blockNumber){
6
7
  this.blockNumber = blockNumber;
7
8
  this.messagesPerBlock = new Map();
8
9
  }
@@ -22,4 +23,3 @@ export class MockL1ToL2MessageSource {
22
23
  return Promise.resolve(this.blockNumber);
23
24
  }
24
25
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMV90b19sMl9tZXNzYWdlX3NvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfbDFfdG9fbDJfbWVzc2FnZV9zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQW9CLFdBQW1CO1FBQW5CLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBRi9CLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO0lBRVQsQ0FBQztJQUVwQyxpQkFBaUIsQ0FBQyxXQUFtQixFQUFFLElBQVU7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFtQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsV0FBbUI7UUFDbkMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELHFCQUFxQixDQUFDLGNBQWtCO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGIn0=
@@ -1,19 +1,16 @@
1
- import { L2Block, L2BlockHash, TxReceipt, TxStatus, getSlotRangeForEpoch, } from '@aztec/circuit-types';
1
+ import { L2Block, L2BlockHash, TxReceipt, TxStatus, getSlotRangeForEpoch } from '@aztec/circuit-types';
2
2
  import { EthAddress } from '@aztec/circuits.js';
3
3
  import { DefaultL1ContractsConfig } from '@aztec/ethereum';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  /**
6
6
  * A mocked implementation of L2BlockSource to be used in tests.
7
- */
8
- export class MockL2BlockSource {
9
- constructor() {
10
- this.l2Blocks = [];
11
- this.provenEpochNumber = 0;
12
- this.provenBlockNumber = 0;
13
- this.log = createLogger('archiver:mock_l2_block_source');
14
- }
7
+ */ export class MockL2BlockSource {
8
+ l2Blocks = [];
9
+ provenEpochNumber = 0;
10
+ provenBlockNumber = 0;
11
+ log = createLogger('archiver:mock_l2_block_source');
15
12
  async createBlocks(numBlocks) {
16
- for (let i = 0; i < numBlocks; i++) {
13
+ for(let i = 0; i < numBlocks; i++){
17
14
  const blockNum = this.l2Blocks.length + 1;
18
15
  const block = await L2Block.random(blockNum);
19
16
  this.l2Blocks.push(block);
@@ -35,24 +32,21 @@ export class MockL2BlockSource {
35
32
  this.provenEpochNumber = provenEpochNumber;
36
33
  }
37
34
  /**
38
- * Method to fetch the rollup contract address at the base-layer.
39
- * @returns The rollup address.
40
- */
41
- getRollupAddress() {
35
+ * Method to fetch the rollup contract address at the base-layer.
36
+ * @returns The rollup address.
37
+ */ getRollupAddress() {
42
38
  return Promise.resolve(EthAddress.random());
43
39
  }
44
40
  /**
45
- * Method to fetch the registry contract address at the base-layer.
46
- * @returns The registry address.
47
- */
48
- getRegistryAddress() {
41
+ * Method to fetch the registry contract address at the base-layer.
42
+ * @returns The registry address.
43
+ */ getRegistryAddress() {
49
44
  return Promise.resolve(EthAddress.random());
50
45
  }
51
46
  /**
52
- * Gets the number of the latest L2 block processed by the block source implementation.
53
- * @returns In this mock instance, returns the number of L2 blocks that we've mocked.
54
- */
55
- getBlockNumber() {
47
+ * Gets the number of the latest L2 block processed by the block source implementation.
48
+ * @returns In this mock instance, returns the number of L2 blocks that we've mocked.
49
+ */ getBlockNumber() {
56
50
  return Promise.resolve(this.l2Blocks.length);
57
51
  }
58
52
  getProvenBlockNumber() {
@@ -62,59 +56,60 @@ export class MockL2BlockSource {
62
56
  return Promise.resolve(this.provenEpochNumber);
63
57
  }
64
58
  /**
65
- * Gets an l2 block.
66
- * @param number - The block number to return (inclusive).
67
- * @returns The requested L2 block.
68
- */
69
- getBlock(number) {
59
+ * Gets an l2 block.
60
+ * @param number - The block number to return (inclusive).
61
+ * @returns The requested L2 block.
62
+ */ getBlock(number) {
70
63
  return Promise.resolve(this.l2Blocks[number - 1]);
71
64
  }
72
65
  /**
73
- * Gets up to `limit` amount of L2 blocks starting from `from`.
74
- * @param from - Number of the first block to return (inclusive).
75
- * @param limit - The maximum number of blocks to return.
76
- * @returns The requested mocked L2 blocks.
77
- */
78
- getBlocks(from, limit, proven) {
79
- return Promise.resolve(this.l2Blocks
80
- .slice(from - 1, from - 1 + limit)
81
- .filter(b => !proven || this.provenBlockNumber === undefined || b.number <= this.provenBlockNumber));
66
+ * Gets up to `limit` amount of L2 blocks starting from `from`.
67
+ * @param from - Number of the first block to return (inclusive).
68
+ * @param limit - The maximum number of blocks to return.
69
+ * @returns The requested mocked L2 blocks.
70
+ */ getBlocks(from, limit, proven) {
71
+ return Promise.resolve(this.l2Blocks.slice(from - 1, from - 1 + limit).filter((b)=>!proven || this.provenBlockNumber === undefined || b.number <= this.provenBlockNumber));
82
72
  }
83
73
  getBlockHeader(number) {
84
74
  return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.header);
85
75
  }
86
76
  getBlocksForEpoch(epochNumber) {
87
77
  const epochDuration = DefaultL1ContractsConfig.aztecEpochDuration;
88
- const [start, end] = getSlotRangeForEpoch(epochNumber, { epochDuration });
89
- const blocks = this.l2Blocks.filter(b => {
78
+ const [start, end] = getSlotRangeForEpoch(epochNumber, {
79
+ epochDuration
80
+ });
81
+ const blocks = this.l2Blocks.filter((b)=>{
90
82
  const slot = b.header.globalVariables.slotNumber.toBigInt();
91
83
  return slot >= start && slot <= end;
92
84
  });
93
85
  return Promise.resolve(blocks);
94
86
  }
95
87
  /**
96
- * Gets a tx effect.
97
- * @param txHash - The hash of a transaction which resulted in the returned tx effect.
98
- * @returns The requested tx effect.
99
- */
100
- async getTxEffect(txHash) {
101
- const match = this.l2Blocks
102
- .flatMap(b => b.body.txEffects.map(tx => [tx, b]))
103
- .find(([tx]) => tx.txHash.equals(txHash));
88
+ * Gets a tx effect.
89
+ * @param txHash - The hash of a transaction which resulted in the returned tx effect.
90
+ * @returns The requested tx effect.
91
+ */ async getTxEffect(txHash) {
92
+ const match = this.l2Blocks.flatMap((b)=>b.body.txEffects.map((tx)=>[
93
+ tx,
94
+ b
95
+ ])).find(([tx])=>tx.txHash.equals(txHash));
104
96
  if (!match) {
105
97
  return Promise.resolve(undefined);
106
98
  }
107
99
  const [txEffect, block] = match;
108
- return { data: txEffect, l2BlockNumber: block.number, l2BlockHash: (await block.hash()).toString() };
100
+ return {
101
+ data: txEffect,
102
+ l2BlockNumber: block.number,
103
+ l2BlockHash: (await block.hash()).toString()
104
+ };
109
105
  }
110
106
  /**
111
- * Gets a receipt of a settled tx.
112
- * @param txHash - The hash of a tx we try to get the receipt for.
113
- * @returns The requested tx receipt (or undefined if not found).
114
- */
115
- async getSettledTxReceipt(txHash) {
116
- for (const block of this.l2Blocks) {
117
- for (const txEffect of block.body.txEffects) {
107
+ * Gets a receipt of a settled tx.
108
+ * @param txHash - The hash of a tx we try to get the receipt for.
109
+ * @returns The requested tx receipt (or undefined if not found).
110
+ */ async getSettledTxReceipt(txHash) {
111
+ for (const block of this.l2Blocks){
112
+ for (const txEffect of block.body.txEffects){
118
113
  if (txEffect.txHash.equals(txHash)) {
119
114
  return new TxReceipt(txHash, TxStatus.SUCCESS, '', txEffect.transactionFee.toBigInt(), L2BlockHash.fromField(await block.hash()), block.number);
120
115
  }
@@ -126,15 +121,24 @@ export class MockL2BlockSource {
126
121
  const [latest, proven, finalized] = [
127
122
  await this.getBlockNumber(),
128
123
  await this.getProvenBlockNumber(),
129
- await this.getProvenBlockNumber(),
124
+ await this.getProvenBlockNumber()
130
125
  ];
131
126
  const latestBlock = this.l2Blocks[latest - 1];
132
127
  const provenBlock = this.l2Blocks[proven - 1];
133
128
  const finalizedBlock = this.l2Blocks[finalized - 1];
134
129
  return {
135
- latest: { number: latest, hash: (await latestBlock?.hash())?.toString() },
136
- proven: { number: proven, hash: (await provenBlock?.hash())?.toString() },
137
- finalized: { number: finalized, hash: (await finalizedBlock?.hash())?.toString() },
130
+ latest: {
131
+ number: latest,
132
+ hash: (await latestBlock?.hash())?.toString()
133
+ },
134
+ proven: {
135
+ number: proven,
136
+ hash: (await provenBlock?.hash())?.toString()
137
+ },
138
+ finalized: {
139
+ number: finalized,
140
+ hash: (await finalizedBlock?.hash())?.toString()
141
+ }
138
142
  };
139
143
  }
140
144
  getL2EpochNumber() {
@@ -150,18 +154,15 @@ export class MockL2BlockSource {
150
154
  throw new Error('Method not implemented.');
151
155
  }
152
156
  /**
153
- * Starts the block source. In this mock implementation, this is a noop.
154
- * @returns A promise that signals the initialization of the l2 block source on completion.
155
- */
156
- start() {
157
+ * Starts the block source. In this mock implementation, this is a noop.
158
+ * @returns A promise that signals the initialization of the l2 block source on completion.
159
+ */ start() {
157
160
  return Promise.resolve();
158
161
  }
159
162
  /**
160
- * Stops the block source. In this mock implementation, this is a noop.
161
- * @returns A promise that signals the l2 block source is now stopped.
162
- */
163
- stop() {
163
+ * Stops the block source. In this mock implementation, this is a noop.
164
+ * @returns A promise that signals the l2 block source is now stopped.
165
+ */ stop() {
164
166
  return Promise.resolve();
165
167
  }
166
168
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMl9ibG9ja19zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2NrX2wyX2Jsb2NrX3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUNQLFdBQVcsRUFJWCxTQUFTLEVBQ1QsUUFBUSxFQUNSLG9CQUFvQixHQUNyQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNZLGFBQVEsR0FBYyxFQUFFLENBQUM7UUFFM0Isc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBQzlCLHNCQUFpQixHQUFXLENBQUMsQ0FBQztRQUU5QixRQUFHLEdBQUcsWUFBWSxDQUFDLCtCQUErQixDQUFDLENBQUM7SUEyTDlELENBQUM7SUF6TFEsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFpQjtRQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxTQUFTLHFDQUFxQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVN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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "0.73.0",
3
+ "version": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -22,7 +22,7 @@
22
22
  "clean": "rm -rf ./dest .tsbuildinfo",
23
23
  "formatting": "run -T prettier --check ./src && run -T eslint ./src",
24
24
  "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
25
- "test": "HARDWARE_CONCURRENCY=${HARDWARE_CONCURRENCY:-16} RAYON_NUM_THREADS=${RAYON_NUM_THREADS:-4} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
25
+ "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
26
26
  "test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
27
27
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
28
28
  },
@@ -64,17 +64,18 @@
64
64
  ]
65
65
  },
66
66
  "dependencies": {
67
- "@aztec/blob-sink": "0.73.0",
68
- "@aztec/circuit-types": "0.73.0",
69
- "@aztec/circuits.js": "0.73.0",
70
- "@aztec/ethereum": "0.73.0",
71
- "@aztec/foundation": "0.73.0",
72
- "@aztec/kv-store": "0.73.0",
73
- "@aztec/l1-artifacts": "0.73.0",
74
- "@aztec/noir-contracts.js": "0.73.0",
75
- "@aztec/protocol-contracts": "0.73.0",
76
- "@aztec/telemetry-client": "0.73.0",
77
- "@aztec/types": "0.73.0",
67
+ "@aztec/blob-lib": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
68
+ "@aztec/blob-sink": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
69
+ "@aztec/circuit-types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
70
+ "@aztec/circuits.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
71
+ "@aztec/ethereum": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
72
+ "@aztec/foundation": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
73
+ "@aztec/kv-store": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
74
+ "@aztec/l1-artifacts": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
75
+ "@aztec/noir-contracts.js": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
76
+ "@aztec/protocol-contracts": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
77
+ "@aztec/telemetry-client": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
78
+ "@aztec/types": "0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2",
78
79
  "debug": "^4.3.4",
79
80
  "lodash.groupby": "^4.6.0",
80
81
  "lodash.omit": "^4.5.0",
@@ -167,7 +167,7 @@ export class Archiver implements ArchiveSource, Traceable {
167
167
 
168
168
  const [l1StartBlock, l1GenesisTime] = await Promise.all([
169
169
  rollup.read.L1_BLOCK_AT_GENESIS(),
170
- rollup.read.GENESIS_TIME(),
170
+ rollup.read.getGenesisTime(),
171
171
  ] as const);
172
172
 
173
173
  const { aztecEpochDuration: epochDuration, aztecSlotDuration: slotDuration, ethereumSlotDuration } = config;
@@ -1,8 +1,8 @@
1
+ import { Blob, BlobDeserializationError } from '@aztec/blob-lib';
1
2
  import { type BlobSinkClientInterface } from '@aztec/blob-sink/client';
2
3
  import { Body, InboxLeaf, L2Block } from '@aztec/circuit-types';
3
4
  import { AppendOnlyTreeSnapshot, BlockHeader, Fr, Proof } from '@aztec/circuits.js';
4
5
  import { asyncPool } from '@aztec/foundation/async-pool';
5
- import { Blob } from '@aztec/foundation/blob';
6
6
  import { type EthAddress } from '@aztec/foundation/eth-address';
7
7
  import { type ViemSignature } from '@aztec/foundation/eth-signature';
8
8
  import { type Logger, createLogger } from '@aztec/foundation/log';
@@ -109,6 +109,7 @@ export async function processL2BlockProposedLogs(
109
109
  blobHashes,
110
110
  l2BlockNumber,
111
111
  rollup.address,
112
+ logger,
112
113
  );
113
114
 
114
115
  const l1: L1PublishedData = {
@@ -201,6 +202,7 @@ async function getBlockFromRollupTx(
201
202
  blobHashes: Buffer[], // WORKTODO(md): buffer32?
202
203
  l2BlockNum: bigint,
203
204
  rollupAddress: Hex,
205
+ logger: Logger,
204
206
  ): Promise<L2Block> {
205
207
  const { input: forwarderData, blockHash } = await publicClient.getTransaction({ hash: txHash });
206
208
 
@@ -232,13 +234,25 @@ async function getBlockFromRollupTx(
232
234
  ];
233
235
 
234
236
  const header = BlockHeader.fromBuffer(Buffer.from(hexToBytes(decodedArgs.header)));
235
-
236
237
  const blobBodies = await blobSinkClient.getBlobSidecar(blockHash, blobHashes);
237
238
  if (blobBodies.length === 0) {
238
239
  throw new NoBlobBodiesFoundError(Number(l2BlockNum));
239
240
  }
240
241
 
241
- const blockFields = blobBodies.flatMap(b => b.toEncodedFields());
242
+ // TODO(#9101): Once calldata is removed, we can remove this field encoding and update
243
+ // Body.fromBlobFields to accept blob buffers directly
244
+ let blockFields: Fr[];
245
+ try {
246
+ blockFields = blobBodies.flatMap(b => b.toEncodedFields());
247
+ } catch (err: any) {
248
+ if (err instanceof BlobDeserializationError) {
249
+ logger.fatal(err.message);
250
+ } else {
251
+ logger.fatal('Unable to sync: failed to decode fetched blob, this blob was likely not created by us');
252
+ }
253
+ throw err;
254
+ }
255
+
242
256
  // TODO(#9101): Retreiving the block body from calldata is a temporary soln before we have
243
257
  // either a beacon chain client or link to some blob store. Web2 is ok because we will
244
258
  // verify the block body vs the blob as below.
@@ -2,6 +2,6 @@ export * from './archiver.js';
2
2
  export * from './config.js';
3
3
  export { type L1Published, type L1PublishedData } from './structs/published.js';
4
4
  export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
5
- export { ArchiverDataStore } from './archiver_store.js';
5
+ export type { ArchiverDataStore } from './archiver_store.js';
6
6
  export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
7
7
  export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';