@aztec/archiver 0.0.1-commit.96bb3f7 → 0.0.1-commit.a072138

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 (191) hide show
  1. package/README.md +156 -22
  2. package/dest/archiver.d.ts +136 -0
  3. package/dest/archiver.d.ts.map +1 -0
  4. package/dest/archiver.js +781 -0
  5. package/dest/{archiver/config.d.ts → config.d.ts} +9 -1
  6. package/dest/config.d.ts.map +1 -0
  7. package/dest/{archiver/config.js → config.js} +9 -0
  8. package/dest/errors.d.ts +41 -0
  9. package/dest/errors.d.ts.map +1 -0
  10. package/dest/{archiver/errors.js → errors.js} +8 -0
  11. package/dest/factory.d.ts +9 -7
  12. package/dest/factory.d.ts.map +1 -1
  13. package/dest/factory.js +89 -11
  14. package/dest/index.d.ts +10 -4
  15. package/dest/index.d.ts.map +1 -1
  16. package/dest/index.js +8 -3
  17. package/dest/interfaces.d.ts +9 -0
  18. package/dest/interfaces.d.ts.map +1 -0
  19. package/dest/interfaces.js +3 -0
  20. package/dest/{archiver/l1 → l1}/bin/retrieve-calldata.d.ts +1 -1
  21. package/dest/l1/bin/retrieve-calldata.d.ts.map +1 -0
  22. package/dest/{archiver/l1 → l1}/bin/retrieve-calldata.js +2 -2
  23. package/dest/{archiver/l1 → l1}/calldata_retriever.d.ts +2 -2
  24. package/dest/l1/calldata_retriever.d.ts.map +1 -0
  25. package/dest/l1/data_retrieval.d.ts +88 -0
  26. package/dest/l1/data_retrieval.d.ts.map +1 -0
  27. package/dest/{archiver/l1 → l1}/data_retrieval.js +36 -55
  28. package/dest/{archiver/l1 → l1}/debug_tx.d.ts +1 -1
  29. package/dest/l1/debug_tx.d.ts.map +1 -0
  30. package/dest/{archiver/l1 → l1}/spire_proposer.d.ts +1 -1
  31. package/dest/l1/spire_proposer.d.ts.map +1 -0
  32. package/dest/{archiver/l1 → l1}/trace_tx.d.ts +1 -1
  33. package/dest/l1/trace_tx.d.ts.map +1 -0
  34. package/dest/l1/types.d.ts +12 -0
  35. package/dest/l1/types.d.ts.map +1 -0
  36. package/dest/{archiver/l1 → l1}/validate_trace.d.ts +6 -3
  37. package/dest/l1/validate_trace.d.ts.map +1 -0
  38. package/dest/{archiver/l1 → l1}/validate_trace.js +13 -9
  39. package/dest/modules/data_source_base.d.ts +84 -0
  40. package/dest/modules/data_source_base.d.ts.map +1 -0
  41. package/dest/modules/data_source_base.js +260 -0
  42. package/dest/modules/data_store_updater.d.ts +73 -0
  43. package/dest/modules/data_store_updater.d.ts.map +1 -0
  44. package/dest/modules/data_store_updater.js +302 -0
  45. package/dest/modules/instrumentation.d.ts +37 -0
  46. package/dest/modules/instrumentation.d.ts.map +1 -0
  47. package/dest/{archiver → modules}/instrumentation.js +17 -10
  48. package/dest/modules/l1_synchronizer.d.ts +75 -0
  49. package/dest/modules/l1_synchronizer.d.ts.map +1 -0
  50. package/dest/modules/l1_synchronizer.js +1112 -0
  51. package/dest/{archiver → modules}/validation.d.ts +1 -1
  52. package/dest/modules/validation.d.ts.map +1 -0
  53. package/dest/{archiver → modules}/validation.js +6 -0
  54. package/dest/store/block_store.d.ts +192 -0
  55. package/dest/store/block_store.d.ts.map +1 -0
  56. package/dest/{archiver/kv_archiver_store → store}/block_store.js +142 -47
  57. package/dest/store/contract_class_store.d.ts +18 -0
  58. package/dest/store/contract_class_store.d.ts.map +1 -0
  59. package/dest/{archiver/kv_archiver_store → store}/contract_class_store.js +12 -8
  60. package/dest/store/contract_instance_store.d.ts +24 -0
  61. package/dest/store/contract_instance_store.d.ts.map +1 -0
  62. package/dest/{archiver/kv_archiver_store → store}/contract_instance_store.js +1 -1
  63. package/dest/store/kv_archiver_store.d.ts +340 -0
  64. package/dest/store/kv_archiver_store.d.ts.map +1 -0
  65. package/dest/store/kv_archiver_store.js +446 -0
  66. package/dest/store/log_store.d.ts +54 -0
  67. package/dest/store/log_store.d.ts.map +1 -0
  68. package/dest/{archiver/kv_archiver_store → store}/log_store.js +91 -56
  69. package/dest/{archiver/kv_archiver_store → store}/message_store.d.ts +1 -1
  70. package/dest/store/message_store.d.ts.map +1 -0
  71. package/dest/{archiver/structs → structs}/data_retrieval.d.ts +1 -1
  72. package/dest/structs/data_retrieval.d.ts.map +1 -0
  73. package/dest/structs/inbox_message.d.ts +15 -0
  74. package/dest/structs/inbox_message.d.ts.map +1 -0
  75. package/dest/{archiver/structs → structs}/published.d.ts +1 -1
  76. package/dest/structs/published.d.ts.map +1 -0
  77. package/dest/test/fake_l1_state.d.ts +190 -0
  78. package/dest/test/fake_l1_state.d.ts.map +1 -0
  79. package/dest/test/fake_l1_state.js +383 -0
  80. package/dest/test/index.d.ts +2 -1
  81. package/dest/test/index.d.ts.map +1 -1
  82. package/dest/test/index.js +4 -1
  83. package/dest/test/mock_archiver.d.ts +2 -2
  84. package/dest/test/mock_archiver.d.ts.map +1 -1
  85. package/dest/test/mock_archiver.js +1 -2
  86. package/dest/test/mock_l2_block_source.d.ts +20 -17
  87. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  88. package/dest/test/mock_l2_block_source.js +108 -48
  89. package/dest/test/mock_structs.d.ts +78 -3
  90. package/dest/test/mock_structs.d.ts.map +1 -1
  91. package/dest/test/mock_structs.js +140 -7
  92. package/dest/test/noop_l1_archiver.d.ts +23 -0
  93. package/dest/test/noop_l1_archiver.d.ts.map +1 -0
  94. package/dest/test/noop_l1_archiver.js +68 -0
  95. package/package.json +16 -17
  96. package/src/archiver.ts +543 -0
  97. package/src/{archiver/config.ts → config.ts} +11 -0
  98. package/src/{archiver/errors.ts → errors.ts} +12 -0
  99. package/src/factory.ts +125 -11
  100. package/src/index.ts +10 -3
  101. package/src/interfaces.ts +9 -0
  102. package/src/{archiver/l1 → l1}/bin/retrieve-calldata.ts +7 -2
  103. package/src/{archiver/l1 → l1}/calldata_retriever.ts +1 -1
  104. package/src/{archiver/l1 → l1}/data_retrieval.ts +57 -74
  105. package/src/{archiver/l1 → l1}/validate_trace.ts +24 -6
  106. package/src/modules/data_source_base.ts +367 -0
  107. package/src/modules/data_store_updater.ts +423 -0
  108. package/src/{archiver → modules}/instrumentation.ts +17 -12
  109. package/src/modules/l1_synchronizer.ts +930 -0
  110. package/src/{archiver → modules}/validation.ts +5 -0
  111. package/src/{archiver/kv_archiver_store → store}/block_store.ts +179 -63
  112. package/src/{archiver/kv_archiver_store → store}/contract_class_store.ts +12 -8
  113. package/src/{archiver/kv_archiver_store → store}/contract_instance_store.ts +1 -1
  114. package/src/{archiver/kv_archiver_store → store}/kv_archiver_store.ts +234 -37
  115. package/src/{archiver/kv_archiver_store → store}/log_store.ts +149 -90
  116. package/src/test/fake_l1_state.ts +599 -0
  117. package/src/test/index.ts +4 -0
  118. package/src/test/mock_archiver.ts +2 -2
  119. package/src/test/mock_l2_block_source.ts +114 -66
  120. package/src/test/mock_structs.ts +269 -8
  121. package/src/test/noop_l1_archiver.ts +109 -0
  122. package/dest/archiver/archiver.d.ts +0 -307
  123. package/dest/archiver/archiver.d.ts.map +0 -1
  124. package/dest/archiver/archiver.js +0 -2102
  125. package/dest/archiver/archiver_store.d.ts +0 -315
  126. package/dest/archiver/archiver_store.d.ts.map +0 -1
  127. package/dest/archiver/archiver_store.js +0 -4
  128. package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
  129. package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
  130. package/dest/archiver/archiver_store_test_suite.js +0 -2770
  131. package/dest/archiver/config.d.ts.map +0 -1
  132. package/dest/archiver/errors.d.ts +0 -36
  133. package/dest/archiver/errors.d.ts.map +0 -1
  134. package/dest/archiver/index.d.ts +0 -7
  135. package/dest/archiver/index.d.ts.map +0 -1
  136. package/dest/archiver/index.js +0 -4
  137. package/dest/archiver/instrumentation.d.ts +0 -37
  138. package/dest/archiver/instrumentation.d.ts.map +0 -1
  139. package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -164
  140. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
  141. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
  142. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
  143. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -24
  144. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
  145. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -159
  146. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
  147. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +0 -316
  148. package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -45
  149. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
  150. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
  151. package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +0 -1
  152. package/dest/archiver/l1/calldata_retriever.d.ts.map +0 -1
  153. package/dest/archiver/l1/data_retrieval.d.ts +0 -90
  154. package/dest/archiver/l1/data_retrieval.d.ts.map +0 -1
  155. package/dest/archiver/l1/debug_tx.d.ts.map +0 -1
  156. package/dest/archiver/l1/spire_proposer.d.ts.map +0 -1
  157. package/dest/archiver/l1/trace_tx.d.ts.map +0 -1
  158. package/dest/archiver/l1/types.d.ts +0 -12
  159. package/dest/archiver/l1/types.d.ts.map +0 -1
  160. package/dest/archiver/l1/validate_trace.d.ts.map +0 -1
  161. package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
  162. package/dest/archiver/structs/inbox_message.d.ts +0 -15
  163. package/dest/archiver/structs/inbox_message.d.ts.map +0 -1
  164. package/dest/archiver/structs/published.d.ts.map +0 -1
  165. package/dest/archiver/validation.d.ts.map +0 -1
  166. package/dest/rpc/index.d.ts +0 -9
  167. package/dest/rpc/index.d.ts.map +0 -1
  168. package/dest/rpc/index.js +0 -15
  169. package/src/archiver/archiver.ts +0 -2265
  170. package/src/archiver/archiver_store.ts +0 -380
  171. package/src/archiver/archiver_store_test_suite.ts +0 -2842
  172. package/src/archiver/index.ts +0 -6
  173. package/src/rpc/index.ts +0 -16
  174. /package/dest/{archiver/l1 → l1}/calldata_retriever.js +0 -0
  175. /package/dest/{archiver/l1 → l1}/debug_tx.js +0 -0
  176. /package/dest/{archiver/l1 → l1}/spire_proposer.js +0 -0
  177. /package/dest/{archiver/l1 → l1}/trace_tx.js +0 -0
  178. /package/dest/{archiver/l1 → l1}/types.js +0 -0
  179. /package/dest/{archiver/kv_archiver_store → store}/message_store.js +0 -0
  180. /package/dest/{archiver/structs → structs}/data_retrieval.js +0 -0
  181. /package/dest/{archiver/structs → structs}/inbox_message.js +0 -0
  182. /package/dest/{archiver/structs → structs}/published.js +0 -0
  183. /package/src/{archiver/l1 → l1}/README.md +0 -0
  184. /package/src/{archiver/l1 → l1}/debug_tx.ts +0 -0
  185. /package/src/{archiver/l1 → l1}/spire_proposer.ts +0 -0
  186. /package/src/{archiver/l1 → l1}/trace_tx.ts +0 -0
  187. /package/src/{archiver/l1 → l1}/types.ts +0 -0
  188. /package/src/{archiver/kv_archiver_store → store}/message_store.ts +0 -0
  189. /package/src/{archiver/structs → structs}/data_retrieval.ts +0 -0
  190. /package/src/{archiver/structs → structs}/inbox_message.ts +0 -0
  191. /package/src/{archiver/structs → structs}/published.ts +0 -0
@@ -0,0 +1,109 @@
1
+ import type { BlobClientInterface } from '@aztec/blob-client/client';
2
+ import type { RollupContract } from '@aztec/ethereum/contracts';
3
+ import type { ViemPublicClient, ViemPublicDebugClient } from '@aztec/ethereum/types';
4
+ import { Buffer32 } from '@aztec/foundation/buffer';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
6
+ import { EthAddress } from '@aztec/foundation/eth-address';
7
+ import type { FunctionsOf } from '@aztec/foundation/types';
8
+ import type { ArchiverEmitter } from '@aztec/stdlib/block';
9
+ import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
10
+ import { type TelemetryClient, type Tracer, getTelemetryClient } from '@aztec/telemetry-client';
11
+
12
+ import { mock } from 'jest-mock-extended';
13
+ import { EventEmitter } from 'node:events';
14
+
15
+ import { Archiver } from '../archiver.js';
16
+ import { ArchiverInstrumentation } from '../modules/instrumentation.js';
17
+ import type { ArchiverL1Synchronizer } from '../modules/l1_synchronizer.js';
18
+ import type { KVArchiverDataStore } from '../store/kv_archiver_store.js';
19
+
20
+ /** Noop L1 synchronizer for testing without L1 connectivity. */
21
+ class NoopL1Synchronizer implements FunctionsOf<ArchiverL1Synchronizer> {
22
+ public readonly tracer: Tracer;
23
+
24
+ constructor(tracer: Tracer) {
25
+ this.tracer = tracer;
26
+ }
27
+
28
+ setConfig(_config: unknown) {}
29
+ getL1BlockNumber(): bigint | undefined {
30
+ return 0n;
31
+ }
32
+ getL1Timestamp(): bigint | undefined {
33
+ return 0n;
34
+ }
35
+ testEthereumNodeSynced(): Promise<void> {
36
+ return Promise.resolve();
37
+ }
38
+ syncFromL1(_initialSyncComplete: boolean): Promise<void> {
39
+ return Promise.resolve();
40
+ }
41
+ }
42
+
43
+ /**
44
+ * Archiver with mocked L1 connectivity for testing.
45
+ * Uses mock L1 clients and a noop synchronizer, enabling tests that
46
+ * don't require real Ethereum connectivity.
47
+ */
48
+ export class NoopL1Archiver extends Archiver {
49
+ constructor(
50
+ dataStore: KVArchiverDataStore,
51
+ l1Constants: L1RollupConstants & { genesisArchiveRoot: Fr },
52
+ instrumentation: ArchiverInstrumentation,
53
+ ) {
54
+ // Create mocks for L1 clients
55
+ const publicClient = mock<ViemPublicClient>();
56
+ const debugClient = mock<ViemPublicDebugClient>();
57
+ const rollup = mock<RollupContract>();
58
+ const blobClient = mock<BlobClientInterface>();
59
+
60
+ // Mock methods called during start()
61
+ blobClient.testSources.mockResolvedValue();
62
+ publicClient.getBlockNumber.mockResolvedValue(1n);
63
+
64
+ const events = new EventEmitter() as ArchiverEmitter;
65
+ const synchronizer = new NoopL1Synchronizer(instrumentation.tracer);
66
+
67
+ super(
68
+ publicClient,
69
+ debugClient,
70
+ rollup,
71
+ {
72
+ registryAddress: EthAddress.ZERO,
73
+ governanceProposerAddress: EthAddress.ZERO,
74
+ slashFactoryAddress: EthAddress.ZERO,
75
+ slashingProposerAddress: EthAddress.ZERO,
76
+ },
77
+ dataStore,
78
+ {
79
+ pollingIntervalMs: 1000,
80
+ batchSize: 100,
81
+ skipValidateCheckpointAttestations: true,
82
+ maxAllowedEthClientDriftSeconds: 300,
83
+ ethereumAllowNoDebugHosts: true, // Skip trace validation
84
+ },
85
+ blobClient,
86
+ instrumentation,
87
+ { ...l1Constants, l1StartBlockHash: Buffer32.random() },
88
+ synchronizer as ArchiverL1Synchronizer,
89
+ events,
90
+ );
91
+ }
92
+
93
+ /** Override start to skip L1 validation checks. */
94
+ public override start(_blockUntilSynced?: boolean): Promise<void> {
95
+ // Just start the running promise without L1 checks
96
+ this.runningPromise.start();
97
+ return Promise.resolve();
98
+ }
99
+ }
100
+
101
+ /** Creates an archiver with mocked L1 connectivity for testing. */
102
+ export async function createNoopL1Archiver(
103
+ dataStore: KVArchiverDataStore,
104
+ l1Constants: L1RollupConstants & { genesisArchiveRoot: Fr },
105
+ telemetry: TelemetryClient = getTelemetryClient(),
106
+ ): Promise<NoopL1Archiver> {
107
+ const instrumentation = await ArchiverInstrumentation.new(telemetry, () => dataStore.estimateSize());
108
+ return new NoopL1Archiver(dataStore, l1Constants, instrumentation);
109
+ }
@@ -1,307 +0,0 @@
1
- import type { BlobClientInterface } from '@aztec/blob-client/client';
2
- import { EpochCache } from '@aztec/epoch-cache';
3
- import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
4
- import type { L1BlockId } from '@aztec/ethereum/l1-types';
5
- import type { ViemPublicClient, ViemPublicDebugClient } from '@aztec/ethereum/types';
6
- import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
7
- import { Buffer32 } from '@aztec/foundation/buffer';
8
- import { Fr } from '@aztec/foundation/curves/bn254';
9
- import type { EthAddress } from '@aztec/foundation/eth-address';
10
- import { type Logger } from '@aztec/foundation/log';
11
- import { DateProvider } from '@aztec/foundation/timer';
12
- import type { CustomRange } from '@aztec/kv-store';
13
- import type { FunctionSelector } from '@aztec/stdlib/abi';
14
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
15
- import { type ArchiverEmitter, CheckpointedL2Block, L2Block, L2BlockNew, type L2BlockSink, type L2BlockSource, type L2Tips, PublishedL2Block } from '@aztec/stdlib/block';
16
- import { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
17
- import { type ContractClassPublic, type ContractDataSource, type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
18
- import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
19
- import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
20
- import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
21
- import { type LogFilter, type SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
22
- import { type L1ToL2MessageSource } from '@aztec/stdlib/messaging';
23
- import type { CheckpointHeader } from '@aztec/stdlib/rollup';
24
- import { type BlockHeader, type IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
25
- import type { UInt64 } from '@aztec/stdlib/types';
26
- import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
27
- import type { ArchiverDataStore, ArchiverL1SynchPoint } from './archiver_store.js';
28
- import type { ArchiverConfig } from './config.js';
29
- import { ArchiverInstrumentation } from './instrumentation.js';
30
- import type { CheckpointData } from './kv_archiver_store/block_store.js';
31
- import type { InboxMessage } from './structs/inbox_message.js';
32
- import { type ValidateCheckpointResult } from './validation.js';
33
- /**
34
- * Helper interface to combine all sources this archiver implementation provides.
35
- */
36
- export type ArchiveSource = L2BlockSource & L2LogsSource & ContractDataSource & L1ToL2MessageSource;
37
- export type ArchiverDeps = {
38
- telemetry?: TelemetryClient;
39
- blobClient: BlobClientInterface;
40
- epochCache?: EpochCache;
41
- dateProvider?: DateProvider;
42
- };
43
- declare const Archiver_base: new () => ArchiverEmitter;
44
- /**
45
- * Pulls checkpoints in a non-blocking manner and provides interface for their retrieval.
46
- * Responsible for handling robust L1 polling so that other components do not need to
47
- * concern themselves with it.
48
- */
49
- export declare class Archiver extends Archiver_base implements ArchiveSource, L2BlockSink, Traceable {
50
- private readonly publicClient;
51
- private readonly debugClient;
52
- private readonly l1Addresses;
53
- readonly dataStore: ArchiverDataStore;
54
- private config;
55
- private readonly blobClient;
56
- private readonly epochCache;
57
- private readonly dateProvider;
58
- private readonly instrumentation;
59
- private readonly l1constants;
60
- private readonly log;
61
- /** A loop in which we will be continually fetching new checkpoints. */
62
- private runningPromise;
63
- private rollup;
64
- private inbox;
65
- private store;
66
- private l1BlockNumber;
67
- private l1Timestamp;
68
- private initialSyncComplete;
69
- private initialSyncPromise;
70
- /** Queue of blocks to be added to the store, processed by the sync loop. */
71
- private blockQueue;
72
- readonly tracer: Tracer;
73
- /**
74
- * Creates a new instance of the Archiver.
75
- * @param publicClient - A client for interacting with the Ethereum node.
76
- * @param debugClient - A client for interacting with the Ethereum node for debug/trace methods.
77
- * @param rollupAddress - Ethereum address of the rollup contract.
78
- * @param inboxAddress - Ethereum address of the inbox contract.
79
- * @param registryAddress - Ethereum address of the registry contract.
80
- * @param pollingIntervalMs - The interval for polling for L1 logs (in milliseconds).
81
- * @param store - An archiver data store for storage & retrieval of blocks, encrypted logs & contract data.
82
- * @param log - A logger.
83
- */
84
- constructor(publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, l1Addresses: Pick<L1ContractAddresses, 'rollupAddress' | 'inboxAddress' | 'registryAddress' | 'governanceProposerAddress' | 'slashFactoryAddress'> & {
85
- slashingProposerAddress: EthAddress;
86
- }, dataStore: ArchiverDataStore, config: {
87
- pollingIntervalMs: number;
88
- batchSize: number;
89
- skipValidateCheckpointAttestations?: boolean;
90
- maxAllowedEthClientDriftSeconds: number;
91
- ethereumAllowNoDebugHosts?: boolean;
92
- }, blobClient: BlobClientInterface, epochCache: EpochCache, dateProvider: DateProvider, instrumentation: ArchiverInstrumentation, l1constants: L1RollupConstants & {
93
- l1StartBlockHash: Buffer32;
94
- genesisArchiveRoot: Fr;
95
- }, log?: Logger);
96
- /**
97
- * Creates a new instance of the Archiver and blocks until it syncs from chain.
98
- * @param config - The archiver's desired configuration.
99
- * @param archiverStore - The backing store for the archiver.
100
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
101
- * @returns - An instance of the archiver.
102
- */
103
- static createAndSync(config: ArchiverConfig, archiverStore: ArchiverDataStore, deps: ArchiverDeps, blockUntilSynced?: boolean): Promise<Archiver>;
104
- /** Updates archiver config */
105
- updateConfig(newConfig: Partial<ArchiverConfig>): void;
106
- /**
107
- * Starts sync process.
108
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
109
- */
110
- start(blockUntilSynced: boolean): Promise<void>;
111
- syncImmediate(): Promise<void>;
112
- /**
113
- * Queues a block to be added to the archiver store and triggers processing.
114
- * The block will be processed by the sync loop.
115
- * Implements the L2BlockSink interface.
116
- * @param block - The L2 block to add.
117
- * @returns A promise that resolves when the block has been added to the store, or rejects on error.
118
- */
119
- addBlock(block: L2BlockNew): Promise<void>;
120
- private processQueuedBlocks;
121
- waitForInitialSync(): Promise<void>;
122
- private testEthereumNodeSynced;
123
- private syncFromL1;
124
- private sync;
125
- private canPrune;
126
- private handleEpochPrune;
127
- private nextRange;
128
- private handleL1ToL2Messages;
129
- private retrieveL1ToL2Message;
130
- private rollbackL1ToL2Messages;
131
- private getL1BlockHash;
132
- private handleCheckpoints;
133
- private checkForNewCheckpointsBeforeL1SyncPoint;
134
- /** Resumes the archiver after a stop. */
135
- resume(): void;
136
- /**
137
- * Stops the archiver.
138
- * @returns A promise signalling completion of the stop process.
139
- */
140
- stop(): Promise<void>;
141
- backupTo(destPath: string): Promise<string>;
142
- getL1Constants(): Promise<L1RollupConstants>;
143
- getGenesisValues(): Promise<{
144
- genesisArchiveRoot: Fr;
145
- }>;
146
- getRollupAddress(): Promise<EthAddress>;
147
- getRegistryAddress(): Promise<EthAddress>;
148
- getL1BlockNumber(): bigint | undefined;
149
- getL1Timestamp(): Promise<bigint | undefined>;
150
- getL2SlotNumber(): Promise<SlotNumber | undefined>;
151
- getL2EpochNumber(): Promise<EpochNumber | undefined>;
152
- getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]>;
153
- getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
154
- isEpochComplete(epochNumber: EpochNumber): Promise<boolean>;
155
- /** Returns whether the archiver has completed an initial sync run successfully. */
156
- isInitialSyncComplete(): boolean;
157
- getCheckpointHeader(number: CheckpointNumber | 'latest'): Promise<CheckpointHeader | undefined>;
158
- getCheckpointNumber(): Promise<CheckpointNumber>;
159
- getSynchedCheckpointNumber(): Promise<CheckpointNumber>;
160
- getProvenCheckpointNumber(): Promise<CheckpointNumber>;
161
- setProvenCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<void>;
162
- unwindCheckpoints(from: CheckpointNumber, checkpointsToUnwind: number): Promise<boolean>;
163
- getLastBlockNumberInCheckpoint(checkpointNumber: CheckpointNumber): Promise<BlockNumber | undefined>;
164
- addCheckpoints(checkpoints: PublishedCheckpoint[], pendingChainValidationStatus?: ValidateCheckpointResult): Promise<boolean>;
165
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
166
- getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
167
- /**
168
- * Gets an l2 block.
169
- * @param number - The block number to return.
170
- * @returns The requested L2 block.
171
- */
172
- getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
173
- getL2BlocksNew(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
174
- getBlockHeader(number: BlockNumber | 'latest'): Promise<BlockHeader | undefined>;
175
- getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
176
- getCheckpointedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<CheckpointedL2Block[]>;
177
- getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
178
- getProvenBlockNumber(): Promise<BlockNumber>;
179
- getCheckpointedBlockNumber(): Promise<BlockNumber>;
180
- getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
181
- getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
182
- getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
183
- getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
184
- getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
185
- /**
186
- * Gets public logs based on the provided filter.
187
- * @param filter - The filter to apply to the logs.
188
- * @returns The requested logs.
189
- */
190
- getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse>;
191
- /**
192
- * Gets contract class logs based on the provided filter.
193
- * @param filter - The filter to apply to the logs.
194
- * @returns The requested logs.
195
- */
196
- getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
197
- /**
198
- * Gets the number of the latest L2 block processed by the block source implementation.
199
- * This includes both checkpointed and uncheckpointed blocks.
200
- * @returns The number of the latest L2 block processed by the block source implementation.
201
- */
202
- getBlockNumber(): Promise<BlockNumber>;
203
- getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
204
- getBytecodeCommitment(id: Fr): Promise<Fr | undefined>;
205
- getContract(address: AztecAddress, maybeTimestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
206
- /**
207
- * Gets L1 to L2 message (to be) included in a given checkpoint.
208
- * @param checkpointNumber - Checkpoint number to get messages for.
209
- * @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
210
- */
211
- getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
212
- /**
213
- * Gets the L1 to L2 message index in the L1 to L2 message tree.
214
- * @param l1ToL2Message - The L1 to L2 message.
215
- * @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
216
- */
217
- getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
218
- getContractClassIds(): Promise<Fr[]>;
219
- registerContractFunctionSignatures(signatures: string[]): Promise<void>;
220
- getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
221
- getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
222
- isPendingChainInvalid(): Promise<boolean>;
223
- getL2Tips(): Promise<L2Tips>;
224
- rollbackTo(targetL2BlockNumber: BlockNumber): Promise<void>;
225
- getPublishedCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
226
- getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
227
- getPublishedBlockByHash(blockHash: Fr): Promise<PublishedL2Block | undefined>;
228
- getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined>;
229
- /**
230
- * Gets up to `limit` amount of L2 blocks starting from `from`.
231
- * @param from - Number of the first block to return (inclusive).
232
- * @param limit - The number of blocks to return.
233
- * @param proven - If true, only return blocks that have been proven.
234
- * @returns The requested L2 blocks.
235
- */
236
- getBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<L2Block[]>;
237
- getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
238
- private buildOldBlockFromCheckpointedBlock;
239
- getBlock(number: BlockNumber): Promise<L2Block | undefined>;
240
- }
241
- /**
242
- * A helper class that we use to deal with some of the logic needed when adding blocks.
243
- *
244
- * I would have preferred to not have this type. But it is useful for handling the logic that any
245
- * store would need to include otherwise while exposing fewer functions and logic directly to the archiver.
246
- */
247
- export declare class ArchiverStoreHelper implements Omit<ArchiverDataStore, 'addLogs' | 'deleteLogs' | 'addContractClasses' | 'deleteContractClasses' | 'addContractInstances' | 'deleteContractInstances' | 'addContractInstanceUpdates' | 'deleteContractInstanceUpdates' | 'addFunctions' | 'backupTo' | 'close' | 'transactionAsync' | 'addBlocks' | 'getBlock' | 'getBlocks' | 'getCheckpointedBlocks'> {
248
- #private;
249
- readonly store: ArchiverDataStore;
250
- constructor(store: ArchiverDataStore);
251
- private addBlockDataToDB;
252
- addBlocks(blocks: L2BlockNew[], pendingChainValidationStatus?: ValidateCheckpointResult): Promise<boolean>;
253
- addCheckpoints(checkpoints: PublishedCheckpoint[], pendingChainValidationStatus?: ValidateCheckpointResult): Promise<boolean>;
254
- unwindCheckpoints(from: CheckpointNumber, checkpointsToUnwind: number): Promise<boolean>;
255
- getCheckpointData(checkpointNumber: CheckpointNumber): Promise<CheckpointData | undefined>;
256
- getRangeOfCheckpoints(from: CheckpointNumber, limit: number): Promise<CheckpointData[]>;
257
- getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
258
- getSynchedCheckpointNumber(): Promise<CheckpointNumber>;
259
- setCheckpointSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void>;
260
- getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
261
- getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
262
- getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
263
- getBlockHeaders(from: BlockNumber, limit: number): Promise<BlockHeader[]>;
264
- getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
265
- getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
266
- getBlockByHash(blockHash: Fr): Promise<L2BlockNew | undefined>;
267
- getBlockByArchive(archive: Fr): Promise<L2BlockNew | undefined>;
268
- getLatestBlockNumber(): Promise<BlockNumber>;
269
- getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<L2BlockNew[] | undefined>;
270
- getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
271
- getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
272
- addL1ToL2Messages(messages: InboxMessage[]): Promise<void>;
273
- getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
274
- getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
275
- getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
276
- getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
277
- getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse>;
278
- getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
279
- getSynchedL2BlockNumber(): Promise<BlockNumber>;
280
- getProvenCheckpointNumber(): Promise<CheckpointNumber>;
281
- getProvenBlockNumber(): Promise<BlockNumber>;
282
- setProvenCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<void>;
283
- setBlockSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void>;
284
- setMessageSynchedL1Block(l1Block: L1BlockId): Promise<void>;
285
- getSynchPoint(): Promise<ArchiverL1SynchPoint>;
286
- getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
287
- getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
288
- getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
289
- getContractClassIds(): Promise<Fr[]>;
290
- registerContractFunctionSignatures(signatures: string[]): Promise<void>;
291
- getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
292
- getTotalL1ToL2MessageCount(): Promise<bigint>;
293
- estimateSize(): Promise<{
294
- mappingSize: number;
295
- physicalFileSize: number;
296
- actualSize: number;
297
- numItems: number;
298
- }>;
299
- rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber: CheckpointNumber): Promise<void>;
300
- iterateL1ToL2Messages(range?: CustomRange<bigint>): AsyncIterableIterator<InboxMessage>;
301
- removeL1ToL2Messages(startIndex: bigint): Promise<void>;
302
- getLastL1ToL2Message(): Promise<InboxMessage | undefined>;
303
- getPendingChainValidationStatus(): Promise<ValidateCheckpointResult | undefined>;
304
- setPendingChainValidationStatus(status: ValidateCheckpointResult | undefined): Promise<void>;
305
- }
306
- export {};
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9hcmNoaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekcsT0FBTyxFQUFZLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxFQUFFLFlBQVksRUFBa0IsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVduRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFFcEIsbUJBQW1CLEVBR25CLE9BQU8sRUFDUCxVQUFVLEVBQ1YsS0FBSyxXQUFXLEVBQ2hC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
@@ -1 +0,0 @@
1
- {"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}