@aztec/archiver 0.77.0-testnet-ignition.26 → 0.77.0-testnet-ignition.28

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 (64) hide show
  1. package/dest/archiver/archiver.js +5 -19
  2. package/dest/archiver/kv_archiver_store/block_store.js +0 -6
  3. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +0 -6
  4. package/dest/archiver/memory_archiver_store/memory_archiver_store.js +0 -7
  5. package/dest/test/mock_l2_block_source.js +0 -7
  6. package/package.json +13 -13
  7. package/src/archiver/archiver.ts +5 -29
  8. package/src/archiver/archiver_store.ts +0 -12
  9. package/src/archiver/kv_archiver_store/block_store.ts +0 -8
  10. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +0 -8
  11. package/src/archiver/memory_archiver_store/memory_archiver_store.ts +0 -9
  12. package/src/test/mock_l2_block_source.ts +0 -9
  13. package/dest/archiver/archiver.d.ts +0 -198
  14. package/dest/archiver/archiver.d.ts.map +0 -1
  15. package/dest/archiver/archiver_store.d.ts +0 -230
  16. package/dest/archiver/archiver_store.d.ts.map +0 -1
  17. package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
  18. package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
  19. package/dest/archiver/config.d.ts +0 -37
  20. package/dest/archiver/config.d.ts.map +0 -1
  21. package/dest/archiver/data_retrieval.d.ts +0 -74
  22. package/dest/archiver/data_retrieval.d.ts.map +0 -1
  23. package/dest/archiver/errors.d.ts +0 -4
  24. package/dest/archiver/errors.d.ts.map +0 -1
  25. package/dest/archiver/index.d.ts +0 -8
  26. package/dest/archiver/index.d.ts.map +0 -1
  27. package/dest/archiver/instrumentation.d.ts +0 -29
  28. package/dest/archiver/instrumentation.d.ts.map +0 -1
  29. package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -89
  30. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
  31. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
  32. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
  33. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -21
  34. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
  35. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -154
  36. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
  37. package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -49
  38. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
  39. package/dest/archiver/kv_archiver_store/message_store.d.ts +0 -33
  40. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
  41. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
  42. package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
  43. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
  44. package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
  45. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -177
  46. package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
  47. package/dest/archiver/structs/data_retrieval.d.ts +0 -27
  48. package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
  49. package/dest/archiver/structs/published.d.ts +0 -11
  50. package/dest/archiver/structs/published.d.ts.map +0 -1
  51. package/dest/factory.d.ts +0 -24
  52. package/dest/factory.d.ts.map +0 -1
  53. package/dest/index.d.ts +0 -5
  54. package/dest/index.d.ts.map +0 -1
  55. package/dest/rpc/index.d.ts +0 -10
  56. package/dest/rpc/index.d.ts.map +0 -1
  57. package/dest/test/index.d.ts +0 -4
  58. package/dest/test/index.d.ts.map +0 -1
  59. package/dest/test/mock_archiver.d.ts +0 -23
  60. package/dest/test/mock_archiver.d.ts.map +0 -1
  61. package/dest/test/mock_l1_to_l2_message_source.d.ts +0 -16
  62. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +0 -1
  63. package/dest/test/mock_l2_block_source.d.ts +0 -82
  64. package/dest/test/mock_l2_block_source.d.ts.map +0 -1
@@ -271,7 +271,7 @@ import { ArchiverInstrumentation } from './instrumentation.js';
271
271
  }
272
272
  async handleL2blocks(blocksSynchedTo, currentL1BlockNumber) {
273
273
  const localPendingBlockNumber = BigInt(await this.getBlockNumber());
274
- const [provenBlockNumber, provenArchive, pendingBlockNumber, pendingArchive, archiveForLocalPendingBlockNumber, provenEpochNumber] = await this.rollup.read.status([
274
+ const [provenBlockNumber, provenArchive, pendingBlockNumber, pendingArchive, archiveForLocalPendingBlockNumber] = await this.rollup.read.status([
275
275
  localPendingBlockNumber
276
276
  ], {
277
277
  blockNumber: currentL1BlockNumber
@@ -285,16 +285,11 @@ import { ArchiverInstrumentation } from './instrumentation.js';
285
285
  this.log.error(`Hit local block greater than last synched block: ${localBlockForDestinationProvenBlockNumber.number} > ${synched}`);
286
286
  }
287
287
  if (localBlockForDestinationProvenBlockNumber && provenArchive === localBlockForDestinationProvenBlockNumber.archive.root.toString()) {
288
- const [localProvenEpochNumber, localProvenBlockNumber] = await Promise.all([
289
- this.store.getProvenL2EpochNumber(),
290
- this.store.getProvenL2BlockNumber()
291
- ]);
292
- if (localProvenEpochNumber !== Number(provenEpochNumber) || localProvenBlockNumber !== Number(provenBlockNumber)) {
288
+ const localProvenBlockNumber = await this.store.getProvenL2BlockNumber();
289
+ if (localProvenBlockNumber !== Number(provenBlockNumber)) {
293
290
  await this.store.setProvenL2BlockNumber(Number(provenBlockNumber));
294
- await this.store.setProvenL2EpochNumber(Number(provenEpochNumber));
295
- this.log.info(`Updated proven chain to block ${provenBlockNumber} (epoch ${provenEpochNumber})`, {
296
- provenBlockNumber,
297
- provenEpochNumber
291
+ this.log.info(`Updated proven chain to block ${provenBlockNumber}`, {
292
+ provenBlockNumber
298
293
  });
299
294
  }
300
295
  }
@@ -576,9 +571,6 @@ import { ArchiverInstrumentation } from './instrumentation.js';
576
571
  getProvenBlockNumber() {
577
572
  return this.store.getProvenL2BlockNumber();
578
573
  }
579
- getProvenL2EpochNumber() {
580
- return this.store.getProvenL2EpochNumber();
581
- }
582
574
  /** Forcefully updates the last proven block number. Use for testing. */ setProvenBlockNumber(blockNumber) {
583
575
  return this.store.setProvenL2BlockNumber(blockNumber);
584
576
  }
@@ -869,15 +861,9 @@ var Operation = /*#__PURE__*/ function(Operation) {
869
861
  getProvenL2BlockNumber() {
870
862
  return this.store.getProvenL2BlockNumber();
871
863
  }
872
- getProvenL2EpochNumber() {
873
- return this.store.getProvenL2EpochNumber();
874
- }
875
864
  setProvenL2BlockNumber(l2BlockNumber) {
876
865
  return this.store.setProvenL2BlockNumber(l2BlockNumber);
877
866
  }
878
- setProvenL2EpochNumber(l2EpochNumber) {
879
- return this.store.setProvenL2EpochNumber(l2EpochNumber);
880
- }
881
867
  setBlockSynchedL1BlockNumber(l1BlockNumber) {
882
868
  return this.store.setBlockSynchedL1BlockNumber(l1BlockNumber);
883
869
  }
@@ -202,12 +202,6 @@ export { TxReceipt } from '@aztec/stdlib/tx';
202
202
  setProvenL2BlockNumber(blockNumber) {
203
203
  return this.#lastProvenL2Block.set(blockNumber);
204
204
  }
205
- getProvenL2EpochNumber() {
206
- return this.#lastProvenL2Epoch.getAsync();
207
- }
208
- setProvenL2EpochNumber(epochNumber) {
209
- return this.#lastProvenL2Epoch.set(epochNumber);
210
- }
211
205
  #computeBlockRange(start, limit) {
212
206
  if (limit < 1) {
213
207
  throw new Error(`Invalid limit: ${limit}`);
@@ -226,15 +226,9 @@ import { NullifierStore } from './nullifier_store.js';
226
226
  getProvenL2BlockNumber() {
227
227
  return this.#blockStore.getProvenL2BlockNumber();
228
228
  }
229
- getProvenL2EpochNumber() {
230
- return this.#blockStore.getProvenL2EpochNumber();
231
- }
232
229
  async setProvenL2BlockNumber(blockNumber) {
233
230
  await this.#blockStore.setProvenL2BlockNumber(blockNumber);
234
231
  }
235
- async setProvenL2EpochNumber(epochNumber) {
236
- await this.#blockStore.setProvenL2EpochNumber(epochNumber);
237
- }
238
232
  async setBlockSynchedL1BlockNumber(l1BlockNumber) {
239
233
  await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
240
234
  }
@@ -595,17 +595,10 @@ import { L1ToL2MessageStore } from './l1_to_l2_message_store.js';
595
595
  getProvenL2BlockNumber() {
596
596
  return Promise.resolve(this.lastProvenL2BlockNumber);
597
597
  }
598
- getProvenL2EpochNumber() {
599
- return Promise.resolve(this.lastProvenL2EpochNumber);
600
- }
601
598
  setProvenL2BlockNumber(l2BlockNumber) {
602
599
  this.lastProvenL2BlockNumber = l2BlockNumber;
603
600
  return Promise.resolve();
604
601
  }
605
- setProvenL2EpochNumber(l2EpochNumber) {
606
- this.lastProvenL2EpochNumber = l2EpochNumber;
607
- return Promise.resolve();
608
- }
609
602
  setBlockSynchedL1BlockNumber(l1BlockNumber) {
610
603
  this.lastL1BlockNewBlocks = l1BlockNumber;
611
604
  return Promise.resolve();
@@ -8,7 +8,6 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
8
8
  * A mocked implementation of L2BlockSource to be used in tests.
9
9
  */ export class MockL2BlockSource {
10
10
  l2Blocks = [];
11
- provenEpochNumber = 0;
12
11
  provenBlockNumber = 0;
13
12
  log = createLogger('archiver:mock_l2_block_source');
14
13
  async createBlocks(numBlocks) {
@@ -30,9 +29,6 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
30
29
  setProvenBlockNumber(provenBlockNumber) {
31
30
  this.provenBlockNumber = provenBlockNumber;
32
31
  }
33
- setProvenEpochNumber(provenEpochNumber) {
34
- this.provenEpochNumber = provenEpochNumber;
35
- }
36
32
  /**
37
33
  * Method to fetch the rollup contract address at the base-layer.
38
34
  * @returns The rollup address.
@@ -54,9 +50,6 @@ import { TxReceipt, TxStatus } from '@aztec/stdlib/tx';
54
50
  getProvenBlockNumber() {
55
51
  return Promise.resolve(this.provenBlockNumber);
56
52
  }
57
- getProvenL2EpochNumber() {
58
- return Promise.resolve(this.provenEpochNumber);
59
- }
60
53
  /**
61
54
  * Gets an l2 block.
62
55
  * @param number - The block number to return (inclusive).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "0.77.0-testnet-ignition.26",
3
+ "version": "0.77.0-testnet-ignition.28",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -64,18 +64,18 @@
64
64
  ]
65
65
  },
66
66
  "dependencies": {
67
- "@aztec/blob-lib": "0.77.0-testnet-ignition.26",
68
- "@aztec/blob-sink": "0.77.0-testnet-ignition.26",
69
- "@aztec/constants": "0.77.0-testnet-ignition.26",
70
- "@aztec/ethereum": "0.77.0-testnet-ignition.26",
71
- "@aztec/foundation": "0.77.0-testnet-ignition.26",
72
- "@aztec/kv-store": "0.77.0-testnet-ignition.26",
73
- "@aztec/l1-artifacts": "0.77.0-testnet-ignition.26",
74
- "@aztec/noir-contracts.js": "0.77.0-testnet-ignition.26",
75
- "@aztec/noir-protocol-circuits-types": "0.77.0-testnet-ignition.26",
76
- "@aztec/protocol-contracts": "0.77.0-testnet-ignition.26",
77
- "@aztec/stdlib": "0.77.0-testnet-ignition.26",
78
- "@aztec/telemetry-client": "0.77.0-testnet-ignition.26",
67
+ "@aztec/blob-lib": "0.77.0-testnet-ignition.28",
68
+ "@aztec/blob-sink": "0.77.0-testnet-ignition.28",
69
+ "@aztec/constants": "0.77.0-testnet-ignition.28",
70
+ "@aztec/ethereum": "0.77.0-testnet-ignition.28",
71
+ "@aztec/foundation": "0.77.0-testnet-ignition.28",
72
+ "@aztec/kv-store": "0.77.0-testnet-ignition.28",
73
+ "@aztec/l1-artifacts": "0.77.0-testnet-ignition.28",
74
+ "@aztec/noir-contracts.js": "0.77.0-testnet-ignition.28",
75
+ "@aztec/noir-protocol-circuits-types": "0.77.0-testnet-ignition.28",
76
+ "@aztec/protocol-contracts": "0.77.0-testnet-ignition.28",
77
+ "@aztec/stdlib": "0.77.0-testnet-ignition.28",
78
+ "@aztec/telemetry-client": "0.77.0-testnet-ignition.28",
79
79
  "debug": "^4.3.4",
80
80
  "lodash.groupby": "^4.6.0",
81
81
  "lodash.omit": "^4.5.0",
@@ -388,14 +388,8 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
388
388
  currentL1BlockNumber: bigint,
389
389
  ): Promise<{ provenBlockNumber: bigint }> {
390
390
  const localPendingBlockNumber = BigInt(await this.getBlockNumber());
391
- const [
392
- provenBlockNumber,
393
- provenArchive,
394
- pendingBlockNumber,
395
- pendingArchive,
396
- archiveForLocalPendingBlockNumber,
397
- provenEpochNumber,
398
- ] = await this.rollup.read.status([localPendingBlockNumber], { blockNumber: currentL1BlockNumber });
391
+ const [provenBlockNumber, provenArchive, pendingBlockNumber, pendingArchive, archiveForLocalPendingBlockNumber] =
392
+ await this.rollup.read.status([localPendingBlockNumber], { blockNumber: currentL1BlockNumber });
399
393
 
400
394
  const updateProvenBlock = async () => {
401
395
  const localBlockForDestinationProvenBlockNumber = await this.getBlock(Number(provenBlockNumber));
@@ -413,19 +407,11 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
413
407
  localBlockForDestinationProvenBlockNumber &&
414
408
  provenArchive === localBlockForDestinationProvenBlockNumber.archive.root.toString()
415
409
  ) {
416
- const [localProvenEpochNumber, localProvenBlockNumber] = await Promise.all([
417
- this.store.getProvenL2EpochNumber(),
418
- this.store.getProvenL2BlockNumber(),
419
- ]);
420
- if (
421
- localProvenEpochNumber !== Number(provenEpochNumber) ||
422
- localProvenBlockNumber !== Number(provenBlockNumber)
423
- ) {
410
+ const localProvenBlockNumber = await this.store.getProvenL2BlockNumber();
411
+ if (localProvenBlockNumber !== Number(provenBlockNumber)) {
424
412
  await this.store.setProvenL2BlockNumber(Number(provenBlockNumber));
425
- await this.store.setProvenL2EpochNumber(Number(provenEpochNumber));
426
- this.log.info(`Updated proven chain to block ${provenBlockNumber} (epoch ${provenEpochNumber})`, {
413
+ this.log.info(`Updated proven chain to block ${provenBlockNumber}`, {
427
414
  provenBlockNumber,
428
- provenEpochNumber,
429
415
  });
430
416
  }
431
417
  }
@@ -783,10 +769,6 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
783
769
  return this.store.getProvenL2BlockNumber();
784
770
  }
785
771
 
786
- public getProvenL2EpochNumber(): Promise<number | undefined> {
787
- return this.store.getProvenL2EpochNumber();
788
- }
789
-
790
772
  /** Forcefully updates the last proven block number. Use for testing. */
791
773
  public setProvenBlockNumber(blockNumber: number): Promise<void> {
792
774
  return this.store.setProvenL2BlockNumber(blockNumber);
@@ -1160,15 +1142,9 @@ class ArchiverStoreHelper
1160
1142
  getProvenL2BlockNumber(): Promise<number> {
1161
1143
  return this.store.getProvenL2BlockNumber();
1162
1144
  }
1163
- getProvenL2EpochNumber(): Promise<number | undefined> {
1164
- return this.store.getProvenL2EpochNumber();
1165
- }
1166
1145
  setProvenL2BlockNumber(l2BlockNumber: number): Promise<void> {
1167
1146
  return this.store.setProvenL2BlockNumber(l2BlockNumber);
1168
1147
  }
1169
- setProvenL2EpochNumber(l2EpochNumber: number): Promise<void> {
1170
- return this.store.setProvenL2EpochNumber(l2EpochNumber);
1171
- }
1172
1148
  setBlockSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void> {
1173
1149
  return this.store.setBlockSynchedL1BlockNumber(l1BlockNumber);
1174
1150
  }
@@ -174,24 +174,12 @@ export interface ArchiverDataStore {
174
174
  */
175
175
  getProvenL2BlockNumber(): Promise<number>;
176
176
 
177
- /**
178
- * Gets the number of the latest proven L2 epoch.
179
- * @returns The number of the latest proven L2 epoch.
180
- */
181
- getProvenL2EpochNumber(): Promise<number | undefined>;
182
-
183
177
  /**
184
178
  * Stores the number of the latest proven L2 block processed.
185
179
  * @param l2BlockNumber - The number of the latest proven L2 block processed.
186
180
  */
187
181
  setProvenL2BlockNumber(l2BlockNumber: number): Promise<void>;
188
182
 
189
- /**
190
- * Stores the number of the latest proven L2 epoch.
191
- * @param l2EpochNumber - The number of the latest proven L2 epoch.
192
- */
193
- setProvenL2EpochNumber(l2EpochNumber: number): Promise<void>;
194
-
195
183
  /**
196
184
  * Stores the l1 block number that blocks have been synched until
197
185
  * @param l1BlockNumber - The l1 block number
@@ -269,14 +269,6 @@ export class BlockStore {
269
269
  return this.#lastProvenL2Block.set(blockNumber);
270
270
  }
271
271
 
272
- getProvenL2EpochNumber(): Promise<number | undefined> {
273
- return this.#lastProvenL2Epoch.getAsync();
274
- }
275
-
276
- setProvenL2EpochNumber(epochNumber: number) {
277
- return this.#lastProvenL2Epoch.set(epochNumber);
278
- }
279
-
280
272
  #computeBlockRange(start: number, limit: number): Required<Pick<Range<number>, 'start' | 'limit'>> {
281
273
  if (limit < 1) {
282
274
  throw new Error(`Invalid limit: ${limit}`);
@@ -324,18 +324,10 @@ export class KVArchiverDataStore implements ArchiverDataStore {
324
324
  return this.#blockStore.getProvenL2BlockNumber();
325
325
  }
326
326
 
327
- getProvenL2EpochNumber(): Promise<number | undefined> {
328
- return this.#blockStore.getProvenL2EpochNumber();
329
- }
330
-
331
327
  async setProvenL2BlockNumber(blockNumber: number) {
332
328
  await this.#blockStore.setProvenL2BlockNumber(blockNumber);
333
329
  }
334
330
 
335
- async setProvenL2EpochNumber(epochNumber: number) {
336
- await this.#blockStore.setProvenL2EpochNumber(epochNumber);
337
- }
338
-
339
331
  async setBlockSynchedL1BlockNumber(l1BlockNumber: bigint) {
340
332
  await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
341
333
  }
@@ -758,20 +758,11 @@ export class MemoryArchiverStore implements ArchiverDataStore {
758
758
  return Promise.resolve(this.lastProvenL2BlockNumber);
759
759
  }
760
760
 
761
- public getProvenL2EpochNumber(): Promise<number | undefined> {
762
- return Promise.resolve(this.lastProvenL2EpochNumber);
763
- }
764
-
765
761
  public setProvenL2BlockNumber(l2BlockNumber: number): Promise<void> {
766
762
  this.lastProvenL2BlockNumber = l2BlockNumber;
767
763
  return Promise.resolve();
768
764
  }
769
765
 
770
- public setProvenL2EpochNumber(l2EpochNumber: number): Promise<void> {
771
- this.lastProvenL2EpochNumber = l2EpochNumber;
772
- return Promise.resolve();
773
- }
774
-
775
766
  setBlockSynchedL1BlockNumber(l1BlockNumber: bigint) {
776
767
  this.lastL1BlockNewBlocks = l1BlockNumber;
777
768
  return Promise.resolve();
@@ -11,7 +11,6 @@ import { type BlockHeader, TxHash, TxReceipt, TxStatus } from '@aztec/stdlib/tx'
11
11
  export class MockL2BlockSource implements L2BlockSource {
12
12
  protected l2Blocks: L2Block[] = [];
13
13
 
14
- private provenEpochNumber: number = 0;
15
14
  private provenBlockNumber: number = 0;
16
15
 
17
16
  private log = createLogger('archiver:mock_l2_block_source');
@@ -40,10 +39,6 @@ export class MockL2BlockSource implements L2BlockSource {
40
39
  this.provenBlockNumber = provenBlockNumber;
41
40
  }
42
41
 
43
- public setProvenEpochNumber(provenEpochNumber: number) {
44
- this.provenEpochNumber = provenEpochNumber;
45
- }
46
-
47
42
  /**
48
43
  * Method to fetch the rollup contract address at the base-layer.
49
44
  * @returns The rollup address.
@@ -72,10 +67,6 @@ export class MockL2BlockSource implements L2BlockSource {
72
67
  return Promise.resolve(this.provenBlockNumber);
73
68
  }
74
69
 
75
- public getProvenL2EpochNumber(): Promise<number | undefined> {
76
- return Promise.resolve(this.provenEpochNumber);
77
- }
78
-
79
70
  /**
80
71
  * Gets an l2 block.
81
72
  * @param number - The block number to return (inclusive).
@@ -1,198 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
3
- import { type ViemPublicClient } from '@aztec/ethereum';
4
- import type { EthAddress } from '@aztec/foundation/eth-address';
5
- import { Fr } from '@aztec/foundation/fields';
6
- import { type Logger } from '@aztec/foundation/log';
7
- import type { FunctionSelector } from '@aztec/stdlib/abi';
8
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
9
- import { type InBlock, type L2Block, type L2BlockSource, type L2Tips, type NullifierWithBlockSource } from '@aztec/stdlib/block';
10
- import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress, type PublicFunction } from '@aztec/stdlib/contract';
11
- import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
12
- import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
13
- import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
14
- import { type LogFilter, type PrivateLog, TxScopedL2Log } from '@aztec/stdlib/logs';
15
- import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
16
- import { type BlockHeader, TxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
17
- import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
18
- import { EventEmitter } from 'events';
19
- import type { ArchiverDataStore } from './archiver_store.js';
20
- import type { ArchiverConfig } from './config.js';
21
- import { ArchiverInstrumentation } from './instrumentation.js';
22
- /**
23
- * Helper interface to combine all sources this archiver implementation provides.
24
- */
25
- export type ArchiveSource = L2BlockSource & L2LogsSource & ContractDataSource & L1ToL2MessageSource & NullifierWithBlockSource;
26
- /**
27
- * Pulls L2 blocks in a non-blocking manner and provides interface for their retrieval.
28
- * Responsible for handling robust L1 polling so that other components do not need to
29
- * concern themselves with it.
30
- */
31
- export declare class Archiver extends EventEmitter implements ArchiveSource, Traceable {
32
- private readonly publicClient;
33
- private readonly l1Addresses;
34
- readonly dataStore: ArchiverDataStore;
35
- private readonly config;
36
- private readonly blobSinkClient;
37
- private readonly instrumentation;
38
- private readonly l1constants;
39
- private readonly log;
40
- /**
41
- * A promise in which we will be continually fetching new L2 blocks.
42
- */
43
- private runningPromise?;
44
- private rollup;
45
- private inbox;
46
- private store;
47
- l1BlockNumber: bigint | undefined;
48
- l1Timestamp: bigint | undefined;
49
- readonly tracer: Tracer;
50
- /**
51
- * Creates a new instance of the Archiver.
52
- * @param publicClient - A client for interacting with the Ethereum node.
53
- * @param rollupAddress - Ethereum address of the rollup contract.
54
- * @param inboxAddress - Ethereum address of the inbox contract.
55
- * @param registryAddress - Ethereum address of the registry contract.
56
- * @param pollingIntervalMs - The interval for polling for L1 logs (in milliseconds).
57
- * @param store - An archiver data store for storage & retrieval of blocks, encrypted logs & contract data.
58
- * @param log - A logger.
59
- */
60
- constructor(publicClient: ViemPublicClient, l1Addresses: {
61
- rollupAddress: EthAddress;
62
- inboxAddress: EthAddress;
63
- registryAddress: EthAddress;
64
- }, dataStore: ArchiverDataStore, config: {
65
- pollingIntervalMs: number;
66
- batchSize: number;
67
- }, blobSinkClient: BlobSinkClientInterface, instrumentation: ArchiverInstrumentation, l1constants: L1RollupConstants, log?: Logger);
68
- /**
69
- * Creates a new instance of the Archiver and blocks until it syncs from chain.
70
- * @param config - The archiver's desired configuration.
71
- * @param archiverStore - The backing store for the archiver.
72
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
73
- * @returns - An instance of the archiver.
74
- */
75
- static createAndSync(config: ArchiverConfig, archiverStore: ArchiverDataStore, deps: {
76
- telemetry: TelemetryClient;
77
- blobSinkClient: BlobSinkClientInterface;
78
- }, blockUntilSynced?: boolean): Promise<Archiver>;
79
- /**
80
- * Starts sync process.
81
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
82
- */
83
- start(blockUntilSynced: boolean): Promise<void>;
84
- private syncSafe;
85
- /**
86
- * Fetches logs from L1 contracts and processes them.
87
- */
88
- private sync;
89
- /** Queries the rollup contract on whether a prune can be executed on the immediatenext L1 block. */
90
- private canPrune;
91
- /** Checks if there'd be a reorg for the next block submission and start pruning now. */
92
- private handleEpochPrune;
93
- private nextRange;
94
- private handleL1ToL2Messages;
95
- private handleL2blocks;
96
- /**
97
- * Stops the archiver.
98
- * @returns A promise signalling completion of the stop process.
99
- */
100
- stop(): Promise<void>;
101
- getL1Constants(): Promise<L1RollupConstants>;
102
- getRollupAddress(): Promise<EthAddress>;
103
- getRegistryAddress(): Promise<EthAddress>;
104
- getL1BlockNumber(): bigint;
105
- getL1Timestamp(): bigint;
106
- getL2SlotNumber(): Promise<bigint>;
107
- getL2EpochNumber(): Promise<bigint>;
108
- getBlocksForEpoch(epochNumber: bigint): Promise<L2Block[]>;
109
- isEpochComplete(epochNumber: bigint): Promise<boolean>;
110
- /**
111
- * Gets up to `limit` amount of L2 blocks starting from `from`.
112
- * @param from - Number of the first block to return (inclusive).
113
- * @param limit - The number of blocks to return.
114
- * @param proven - If true, only return blocks that have been proven.
115
- * @returns The requested L2 blocks.
116
- */
117
- getBlocks(from: number, limit: number, proven?: boolean): Promise<L2Block[]>;
118
- /**
119
- * Gets an l2 block.
120
- * @param number - The block number to return.
121
- * @returns The requested L2 block.
122
- */
123
- getBlock(number: number): Promise<L2Block | undefined>;
124
- getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined>;
125
- getTxEffect(txHash: TxHash): Promise<InBlock<TxEffect> | undefined>;
126
- getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
127
- /**
128
- * Gets the public function data for a contract.
129
- * @param address - The contract address containing the function to fetch.
130
- * @param selector - The function selector of the function to fetch.
131
- * @returns The public function data (if found).
132
- */
133
- getPublicFunction(address: AztecAddress, selector: FunctionSelector): Promise<PublicFunction | undefined>;
134
- /**
135
- * Retrieves all private logs from up to `limit` blocks, starting from the block number `from`.
136
- * @param from - The block number from which to begin retrieving logs.
137
- * @param limit - The maximum number of blocks to retrieve logs from.
138
- * @returns An array of private logs from the specified range of blocks.
139
- */
140
- getPrivateLogs(from: number, limit: number): Promise<PrivateLog[]>;
141
- /**
142
- * Gets all logs that match any of the received tags (i.e. logs with their first field equal to a tag).
143
- * @param tags - The tags to filter the logs by.
144
- * @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
145
- * that tag.
146
- */
147
- getLogsByTags(tags: Fr[]): Promise<TxScopedL2Log[][]>;
148
- /**
149
- * Returns the provided nullifier indexes scoped to the block
150
- * they were first included in, or undefined if they're not present in the tree
151
- * @param blockNumber Max block number to search for the nullifiers
152
- * @param nullifiers Nullifiers to get
153
- * @returns The block scoped indexes of the provided nullifiers, or undefined if the nullifier doesn't exist in the tree
154
- */
155
- findNullifiersIndexesWithBlock(blockNumber: number, nullifiers: Fr[]): Promise<(InBlock<bigint> | undefined)[]>;
156
- /**
157
- * Gets public logs based on the provided filter.
158
- * @param filter - The filter to apply to the logs.
159
- * @returns The requested logs.
160
- */
161
- getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse>;
162
- /**
163
- * Gets contract class logs based on the provided filter.
164
- * @param filter - The filter to apply to the logs.
165
- * @returns The requested logs.
166
- */
167
- getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
168
- /**
169
- * Gets the number of the latest L2 block processed by the block source implementation.
170
- * @returns The number of the latest L2 block processed by the block source implementation.
171
- */
172
- getBlockNumber(): Promise<number>;
173
- getProvenBlockNumber(): Promise<number>;
174
- getProvenL2EpochNumber(): Promise<number | undefined>;
175
- /** Forcefully updates the last proven block number. Use for testing. */
176
- setProvenBlockNumber(blockNumber: number): Promise<void>;
177
- getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
178
- getBytecodeCommitment(id: Fr): Promise<Fr | undefined>;
179
- getContract(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
180
- /**
181
- * Gets L1 to L2 message (to be) included in a given block.
182
- * @param blockNumber - L2 block number to get messages for.
183
- * @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
184
- */
185
- getL1ToL2Messages(blockNumber: bigint): Promise<Fr[]>;
186
- /**
187
- * Gets the L1 to L2 message index in the L1 to L2 message tree.
188
- * @param l1ToL2Message - The L1 to L2 message.
189
- * @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
190
- */
191
- getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
192
- getContractClassIds(): Promise<Fr[]>;
193
- addContractClass(contractClass: ContractClassPublic): Promise<void>;
194
- registerContractFunctionSignatures(address: AztecAddress, signatures: string[]): Promise<void>;
195
- getContractFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
196
- getL2Tips(): Promise<L2Tips>;
197
- }
198
- //# sourceMappingURL=archiver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}