@aztec/archiver 3.0.3-rc.3 → 4.0.0-devnet.1-patch.0
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.
- package/README.md +156 -22
- package/dest/archiver.d.ts +136 -0
- package/dest/archiver.d.ts.map +1 -0
- package/dest/archiver.js +781 -0
- package/dest/{archiver/config.d.ts → config.d.ts} +11 -3
- package/dest/config.d.ts.map +1 -0
- package/dest/{archiver/config.js → config.js} +13 -4
- package/dest/errors.d.ts +41 -0
- package/dest/errors.d.ts.map +1 -0
- package/dest/errors.js +62 -0
- package/dest/factory.d.ts +9 -7
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +91 -11
- package/dest/index.d.ts +10 -4
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +8 -3
- package/dest/interfaces.d.ts +9 -0
- package/dest/interfaces.d.ts.map +1 -0
- package/dest/interfaces.js +3 -0
- package/dest/{archiver/l1 → l1}/bin/retrieve-calldata.d.ts +1 -1
- package/dest/l1/bin/retrieve-calldata.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/bin/retrieve-calldata.js +21 -20
- package/dest/{archiver/l1 → l1}/calldata_retriever.d.ts +18 -4
- package/dest/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/calldata_retriever.js +75 -7
- package/dest/l1/data_retrieval.d.ts +88 -0
- package/dest/l1/data_retrieval.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/data_retrieval.js +61 -67
- package/dest/{archiver/l1 → l1}/debug_tx.d.ts +1 -1
- package/dest/l1/debug_tx.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/spire_proposer.d.ts +1 -1
- package/dest/l1/spire_proposer.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/trace_tx.d.ts +1 -1
- package/dest/l1/trace_tx.d.ts.map +1 -0
- package/dest/l1/types.d.ts +12 -0
- package/dest/l1/types.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/validate_trace.d.ts +6 -3
- package/dest/l1/validate_trace.d.ts.map +1 -0
- package/dest/{archiver/l1 → l1}/validate_trace.js +14 -10
- package/dest/modules/data_source_base.d.ts +84 -0
- package/dest/modules/data_source_base.d.ts.map +1 -0
- package/dest/modules/data_source_base.js +260 -0
- package/dest/modules/data_store_updater.d.ts +73 -0
- package/dest/modules/data_store_updater.d.ts.map +1 -0
- package/dest/modules/data_store_updater.js +302 -0
- package/dest/modules/instrumentation.d.ts +37 -0
- package/dest/modules/instrumentation.d.ts.map +1 -0
- package/dest/{archiver → modules}/instrumentation.js +24 -65
- package/dest/modules/l1_synchronizer.d.ts +75 -0
- package/dest/modules/l1_synchronizer.d.ts.map +1 -0
- package/dest/modules/l1_synchronizer.js +1112 -0
- package/dest/modules/validation.d.ts +17 -0
- package/dest/modules/validation.d.ts.map +1 -0
- package/dest/{archiver → modules}/validation.js +7 -1
- package/dest/store/block_store.d.ts +192 -0
- package/dest/store/block_store.d.ts.map +1 -0
- package/dest/store/block_store.js +721 -0
- package/dest/store/contract_class_store.d.ts +18 -0
- package/dest/store/contract_class_store.d.ts.map +1 -0
- package/dest/{archiver/kv_archiver_store → store}/contract_class_store.js +12 -8
- package/dest/store/contract_instance_store.d.ts +24 -0
- package/dest/store/contract_instance_store.d.ts.map +1 -0
- package/dest/{archiver/kv_archiver_store → store}/contract_instance_store.js +1 -1
- package/dest/store/kv_archiver_store.d.ts +340 -0
- package/dest/store/kv_archiver_store.d.ts.map +1 -0
- package/dest/store/kv_archiver_store.js +446 -0
- package/dest/store/log_store.d.ts +54 -0
- package/dest/store/log_store.d.ts.map +1 -0
- package/dest/store/log_store.js +456 -0
- package/dest/{archiver/kv_archiver_store → store}/message_store.d.ts +1 -1
- package/dest/store/message_store.d.ts.map +1 -0
- package/dest/{archiver/structs → structs}/data_retrieval.d.ts +1 -1
- package/dest/structs/data_retrieval.d.ts.map +1 -0
- package/dest/structs/inbox_message.d.ts +15 -0
- package/dest/structs/inbox_message.d.ts.map +1 -0
- package/dest/structs/published.d.ts +2 -0
- package/dest/structs/published.d.ts.map +1 -0
- package/dest/test/fake_l1_state.d.ts +190 -0
- package/dest/test/fake_l1_state.d.ts.map +1 -0
- package/dest/test/fake_l1_state.js +383 -0
- package/dest/test/index.d.ts +2 -1
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +4 -1
- package/dest/test/mock_archiver.d.ts +2 -2
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +1 -2
- package/dest/test/mock_l1_to_l2_message_source.d.ts +2 -2
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +12 -3
- package/dest/test/mock_l2_block_source.d.ts +29 -15
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +173 -66
- package/dest/test/mock_structs.d.ts +78 -3
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +140 -7
- package/dest/test/noop_l1_archiver.d.ts +23 -0
- package/dest/test/noop_l1_archiver.d.ts.map +1 -0
- package/dest/test/noop_l1_archiver.js +68 -0
- package/package.json +16 -17
- package/src/archiver.ts +543 -0
- package/src/{archiver/config.ts → config.ts} +20 -5
- package/src/errors.ts +102 -0
- package/src/factory.ts +133 -11
- package/src/index.ts +10 -3
- package/src/interfaces.ts +9 -0
- package/src/{archiver/l1 → l1}/bin/retrieve-calldata.ts +18 -19
- package/src/{archiver/l1 → l1}/calldata_retriever.ts +119 -9
- package/src/{archiver/l1 → l1}/data_retrieval.ts +91 -87
- package/src/{archiver/l1 → l1}/validate_trace.ts +25 -7
- package/src/modules/data_source_base.ts +367 -0
- package/src/modules/data_store_updater.ts +423 -0
- package/src/{archiver → modules}/instrumentation.ts +24 -68
- package/src/modules/l1_synchronizer.ts +930 -0
- package/src/{archiver → modules}/validation.ts +11 -6
- package/src/store/block_store.ts +966 -0
- package/src/{archiver/kv_archiver_store → store}/contract_class_store.ts +12 -8
- package/src/{archiver/kv_archiver_store → store}/contract_instance_store.ts +1 -1
- package/src/store/kv_archiver_store.ts +639 -0
- package/src/store/log_store.ts +637 -0
- package/src/{archiver/structs → structs}/published.ts +0 -1
- package/src/test/fake_l1_state.ts +599 -0
- package/src/test/index.ts +4 -0
- package/src/test/mock_archiver.ts +2 -2
- package/src/test/mock_l1_to_l2_message_source.ts +10 -4
- package/src/test/mock_l2_block_source.ts +189 -79
- package/src/test/mock_structs.ts +269 -8
- package/src/test/noop_l1_archiver.ts +109 -0
- package/dest/archiver/archiver.d.ts +0 -284
- package/dest/archiver/archiver.d.ts.map +0 -1
- package/dest/archiver/archiver.js +0 -1454
- package/dest/archiver/archiver_store.d.ts +0 -249
- package/dest/archiver/archiver_store.d.ts.map +0 -1
- package/dest/archiver/archiver_store.js +0 -4
- package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
- package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
- package/dest/archiver/archiver_store_test_suite.js +0 -1273
- package/dest/archiver/config.d.ts.map +0 -1
- package/dest/archiver/errors.d.ts +0 -12
- package/dest/archiver/errors.d.ts.map +0 -1
- package/dest/archiver/errors.js +0 -17
- package/dest/archiver/index.d.ts +0 -7
- package/dest/archiver/index.d.ts.map +0 -1
- package/dest/archiver/index.js +0 -4
- package/dest/archiver/instrumentation.d.ts +0 -37
- package/dest/archiver/instrumentation.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/block_store.d.ts +0 -125
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/block_store.js +0 -371
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -24
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -162
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +0 -288
- package/dest/archiver/kv_archiver_store/log_store.d.ts +0 -42
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/log_store.js +0 -314
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +0 -1
- package/dest/archiver/l1/calldata_retriever.d.ts.map +0 -1
- package/dest/archiver/l1/data_retrieval.d.ts +0 -87
- package/dest/archiver/l1/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/l1/debug_tx.d.ts.map +0 -1
- package/dest/archiver/l1/spire_proposer.d.ts.map +0 -1
- package/dest/archiver/l1/trace_tx.d.ts.map +0 -1
- package/dest/archiver/l1/types.d.ts +0 -12
- package/dest/archiver/l1/types.d.ts.map +0 -1
- package/dest/archiver/l1/validate_trace.d.ts.map +0 -1
- package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/structs/inbox_message.d.ts +0 -15
- package/dest/archiver/structs/inbox_message.d.ts.map +0 -1
- package/dest/archiver/structs/published.d.ts +0 -3
- package/dest/archiver/structs/published.d.ts.map +0 -1
- package/dest/archiver/validation.d.ts +0 -17
- package/dest/archiver/validation.d.ts.map +0 -1
- package/dest/rpc/index.d.ts +0 -9
- package/dest/rpc/index.d.ts.map +0 -1
- package/dest/rpc/index.js +0 -15
- package/src/archiver/archiver.ts +0 -1906
- package/src/archiver/archiver_store.ts +0 -302
- package/src/archiver/archiver_store_test_suite.ts +0 -1286
- package/src/archiver/errors.ts +0 -26
- package/src/archiver/index.ts +0 -6
- package/src/archiver/kv_archiver_store/block_store.ts +0 -482
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +0 -413
- package/src/archiver/kv_archiver_store/log_store.ts +0 -380
- package/src/rpc/index.ts +0 -16
- /package/dest/{archiver/l1 → l1}/debug_tx.js +0 -0
- /package/dest/{archiver/l1 → l1}/spire_proposer.js +0 -0
- /package/dest/{archiver/l1 → l1}/trace_tx.js +0 -0
- /package/dest/{archiver/l1 → l1}/types.js +0 -0
- /package/dest/{archiver/kv_archiver_store → store}/message_store.js +0 -0
- /package/dest/{archiver/structs → structs}/data_retrieval.js +0 -0
- /package/dest/{archiver/structs → structs}/inbox_message.js +0 -0
- /package/dest/{archiver/structs → structs}/published.js +0 -0
- /package/src/{archiver/l1 → l1}/README.md +0 -0
- /package/src/{archiver/l1 → l1}/debug_tx.ts +0 -0
- /package/src/{archiver/l1 → l1}/spire_proposer.ts +0 -0
- /package/src/{archiver/l1 → l1}/trace_tx.ts +0 -0
- /package/src/{archiver/l1 → l1}/types.ts +0 -0
- /package/src/{archiver/kv_archiver_store → store}/message_store.ts +0 -0
- /package/src/{archiver/structs → structs}/data_retrieval.ts +0 -0
- /package/src/{archiver/structs → structs}/inbox_message.ts +0 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { callTraceSchema } from './debug_tx.js';
|
|
3
3
|
import { traceTransactionResponseSchema } from './trace_tx.js';
|
|
4
|
-
const logger = createLogger('aztec:archiver:validate_trace');
|
|
5
4
|
/**
|
|
6
5
|
* Helper function to test a trace method with validation
|
|
7
6
|
*
|
|
@@ -10,8 +9,9 @@ const logger = createLogger('aztec:archiver:validate_trace');
|
|
|
10
9
|
* @param schema - Zod schema to validate the response
|
|
11
10
|
* @param method - Name of the RPC method ('debug_traceTransaction' or 'trace_transaction')
|
|
12
11
|
* @param blockType - Type of block being tested ('recent' or 'old')
|
|
12
|
+
* @param logger - Logger instance
|
|
13
13
|
* @returns true if the method works and validation passes, false otherwise
|
|
14
|
-
*/ async function testTraceMethod(client, txHash, schema, method, blockType) {
|
|
14
|
+
*/ async function testTraceMethod(client, txHash, schema, method, blockType, logger) {
|
|
15
15
|
try {
|
|
16
16
|
// Make request with appropriate params based on method name
|
|
17
17
|
const result = await client.request(method === 'debug_traceTransaction' ? {
|
|
@@ -40,8 +40,10 @@ const logger = createLogger('aztec:archiver:validate_trace');
|
|
|
40
40
|
* Validates the availability of debug/trace methods on the Ethereum client.
|
|
41
41
|
*
|
|
42
42
|
* @param client - The Viem public debug client
|
|
43
|
+
* @param bindings - Optional logger bindings for context
|
|
43
44
|
* @returns Object indicating which trace methods are available for recent and old blocks
|
|
44
|
-
*/ export async function validateTraceAvailability(client) {
|
|
45
|
+
*/ export async function validateTraceAvailability(client, bindings) {
|
|
46
|
+
const logger = createLogger('archiver:validate_trace', bindings);
|
|
45
47
|
const result = {
|
|
46
48
|
debugTraceRecent: false,
|
|
47
49
|
traceTransactionRecent: false,
|
|
@@ -68,9 +70,9 @@ const logger = createLogger('aztec:archiver:validate_trace');
|
|
|
68
70
|
// Get a transaction from the found block
|
|
69
71
|
const recentTxHash = latestBlock.transactions[0];
|
|
70
72
|
// Test debug_traceTransaction with recent block
|
|
71
|
-
result.debugTraceRecent = await testTraceMethod(client, recentTxHash, callTraceSchema, 'debug_traceTransaction', 'recent');
|
|
73
|
+
result.debugTraceRecent = await testTraceMethod(client, recentTxHash, callTraceSchema, 'debug_traceTransaction', 'recent', logger);
|
|
72
74
|
// Test trace_transaction with recent block
|
|
73
|
-
result.traceTransactionRecent = await testTraceMethod(client, recentTxHash, traceTransactionResponseSchema, 'trace_transaction', 'recent');
|
|
75
|
+
result.traceTransactionRecent = await testTraceMethod(client, recentTxHash, traceTransactionResponseSchema, 'trace_transaction', 'recent', logger);
|
|
74
76
|
// Get a block from 512 blocks ago
|
|
75
77
|
const oldBlockNumber = latestBlock.number ? latestBlock.number - 512n : null;
|
|
76
78
|
if (!oldBlockNumber || oldBlockNumber < 0n) {
|
|
@@ -94,9 +96,9 @@ const logger = createLogger('aztec:archiver:validate_trace');
|
|
|
94
96
|
}
|
|
95
97
|
const oldTxHash = oldBlock.transactions[0];
|
|
96
98
|
// Test debug_traceTransaction with old block
|
|
97
|
-
result.debugTraceOld = await testTraceMethod(client, oldTxHash, callTraceSchema, 'debug_traceTransaction', 'old');
|
|
99
|
+
result.debugTraceOld = await testTraceMethod(client, oldTxHash, callTraceSchema, 'debug_traceTransaction', 'old', logger);
|
|
98
100
|
// Test trace_transaction with old block
|
|
99
|
-
result.traceTransactionOld = await testTraceMethod(client, oldTxHash, traceTransactionResponseSchema, 'trace_transaction', 'old');
|
|
101
|
+
result.traceTransactionOld = await testTraceMethod(client, oldTxHash, traceTransactionResponseSchema, 'trace_transaction', 'old', logger);
|
|
100
102
|
} catch (error) {
|
|
101
103
|
logger.warn(`Error validating debug_traceTransaction and trace_transaction availability: ${error}`);
|
|
102
104
|
}
|
|
@@ -111,10 +113,12 @@ function hasTxs(block) {
|
|
|
111
113
|
*
|
|
112
114
|
* @param client - The Viem public debug client
|
|
113
115
|
* @param ethereumAllowNoDebugHosts - If false, throws an error when no trace methods are available
|
|
116
|
+
* @param bindings - Optional logger bindings for context
|
|
114
117
|
* @throws Error if ethereumAllowNoDebugHosts is false and no trace methods are available
|
|
115
|
-
*/ export async function validateAndLogTraceAvailability(client, ethereumAllowNoDebugHosts) {
|
|
116
|
-
logger
|
|
117
|
-
|
|
118
|
+
*/ export async function validateAndLogTraceAvailability(client, ethereumAllowNoDebugHosts, bindings) {
|
|
119
|
+
const logger = createLogger('archiver:validate_trace', bindings);
|
|
120
|
+
logger.debug('Validating trace/debug method availability...');
|
|
121
|
+
const availability = await validateTraceAvailability(client, bindings);
|
|
118
122
|
// Check if we have support for old blocks (either debug or trace)
|
|
119
123
|
const hasOldBlockSupport = availability.debugTraceOld || availability.traceTransactionOld;
|
|
120
124
|
if (hasOldBlockSupport) {
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { BlockNumber, CheckpointNumber, type EpochNumber, type SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
5
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
+
import { type BlockHash, CheckpointedL2Block, L2Block, type L2Tips } from '@aztec/stdlib/block';
|
|
7
|
+
import { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
8
|
+
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
9
|
+
import { type L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
10
|
+
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
11
|
+
import type { L2LogsSource } from '@aztec/stdlib/interfaces/server';
|
|
12
|
+
import type { LogFilter, SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
13
|
+
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
14
|
+
import type { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
15
|
+
import type { BlockHeader, IndexedTxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
16
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
17
|
+
import type { ArchiverDataSource } from '../interfaces.js';
|
|
18
|
+
import type { KVArchiverDataStore } from '../store/kv_archiver_store.js';
|
|
19
|
+
import type { ValidateCheckpointResult } from './validation.js';
|
|
20
|
+
/**
|
|
21
|
+
* Abstract base class implementing ArchiverDataSource using a KVArchiverDataStore.
|
|
22
|
+
* Provides implementations for all store-delegating methods and declares abstract methods
|
|
23
|
+
* for L1-dependent functionality that subclasses must implement.
|
|
24
|
+
*/
|
|
25
|
+
export declare abstract class ArchiverDataSourceBase implements ArchiverDataSource, L2LogsSource, ContractDataSource, L1ToL2MessageSource {
|
|
26
|
+
protected readonly store: KVArchiverDataStore;
|
|
27
|
+
protected readonly l1Constants?: L1RollupConstants | undefined;
|
|
28
|
+
constructor(store: KVArchiverDataStore, l1Constants?: L1RollupConstants | undefined);
|
|
29
|
+
abstract getRollupAddress(): Promise<EthAddress>;
|
|
30
|
+
abstract getRegistryAddress(): Promise<EthAddress>;
|
|
31
|
+
abstract getL1Constants(): Promise<L1RollupConstants>;
|
|
32
|
+
abstract getGenesisValues(): Promise<{
|
|
33
|
+
genesisArchiveRoot: Fr;
|
|
34
|
+
}>;
|
|
35
|
+
abstract getL1Timestamp(): Promise<bigint | undefined>;
|
|
36
|
+
abstract getL2Tips(): Promise<L2Tips>;
|
|
37
|
+
abstract getL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
38
|
+
abstract getL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
39
|
+
abstract isEpochComplete(epochNumber: EpochNumber): Promise<boolean>;
|
|
40
|
+
abstract syncImmediate(): Promise<void>;
|
|
41
|
+
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
42
|
+
getSynchedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
43
|
+
getProvenCheckpointNumber(): Promise<CheckpointNumber>;
|
|
44
|
+
getBlockNumber(): Promise<BlockNumber>;
|
|
45
|
+
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
46
|
+
getBlockHeader(number: BlockNumber | 'latest'): Promise<BlockHeader | undefined>;
|
|
47
|
+
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
48
|
+
getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
|
|
49
|
+
getFinalizedL2BlockNumber(): Promise<BlockNumber>;
|
|
50
|
+
getCheckpointHeader(number: CheckpointNumber | 'latest'): Promise<CheckpointHeader | undefined>;
|
|
51
|
+
getLastBlockNumberInCheckpoint(checkpointNumber: CheckpointNumber): Promise<BlockNumber | undefined>;
|
|
52
|
+
getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
|
|
53
|
+
getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
|
|
54
|
+
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
55
|
+
getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
|
|
56
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
57
|
+
getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
|
|
58
|
+
isPendingChainInvalid(): Promise<boolean>;
|
|
59
|
+
getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
|
|
60
|
+
getPrivateLogsByTags(tags: SiloedTag[], page?: number): Promise<TxScopedL2Log[][]>;
|
|
61
|
+
getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[], page?: number): Promise<TxScopedL2Log[][]>;
|
|
62
|
+
getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse>;
|
|
63
|
+
getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
|
|
64
|
+
getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
|
|
65
|
+
getBytecodeCommitment(id: Fr): Promise<Fr | undefined>;
|
|
66
|
+
getContract(address: AztecAddress, maybeTimestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
67
|
+
getContractClassIds(): Promise<Fr[]>;
|
|
68
|
+
getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
69
|
+
registerContractFunctionSignatures(signatures: string[]): Promise<void>;
|
|
70
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
|
|
71
|
+
getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
72
|
+
getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
|
|
73
|
+
getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
|
|
74
|
+
getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
|
|
75
|
+
getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
76
|
+
getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
|
|
77
|
+
getBlock(number: BlockNumber): Promise<L2Block | undefined>;
|
|
78
|
+
getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
|
|
79
|
+
getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
|
|
80
|
+
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
81
|
+
getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
|
|
82
|
+
getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zb3VyY2VfYmFzZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZXMvZGF0YV9zb3VyY2VfYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkgsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQUUsbUJBQW1CLEVBQXdCLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkYsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data_source_base.d.ts","sourceRoot":"","sources":["../../src/modules/data_source_base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { isDefined } from '@aztec/foundation/types';
|
|
3
|
+
import { CommitteeAttestation } from '@aztec/stdlib/block';
|
|
4
|
+
import { Checkpoint, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
5
|
+
import { getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
6
|
+
/**
|
|
7
|
+
* Abstract base class implementing ArchiverDataSource using a KVArchiverDataStore.
|
|
8
|
+
* Provides implementations for all store-delegating methods and declares abstract methods
|
|
9
|
+
* for L1-dependent functionality that subclasses must implement.
|
|
10
|
+
*/ export class ArchiverDataSourceBase {
|
|
11
|
+
store;
|
|
12
|
+
l1Constants;
|
|
13
|
+
constructor(store, l1Constants){
|
|
14
|
+
this.store = store;
|
|
15
|
+
this.l1Constants = l1Constants;
|
|
16
|
+
}
|
|
17
|
+
getCheckpointNumber() {
|
|
18
|
+
return this.store.getSynchedCheckpointNumber();
|
|
19
|
+
}
|
|
20
|
+
getSynchedCheckpointNumber() {
|
|
21
|
+
return this.store.getSynchedCheckpointNumber();
|
|
22
|
+
}
|
|
23
|
+
getProvenCheckpointNumber() {
|
|
24
|
+
return this.store.getProvenCheckpointNumber();
|
|
25
|
+
}
|
|
26
|
+
getBlockNumber() {
|
|
27
|
+
return this.store.getLatestBlockNumber();
|
|
28
|
+
}
|
|
29
|
+
getProvenBlockNumber() {
|
|
30
|
+
return this.store.getProvenBlockNumber();
|
|
31
|
+
}
|
|
32
|
+
async getBlockHeader(number) {
|
|
33
|
+
const blockNumber = number === 'latest' ? await this.store.getLatestBlockNumber() : number;
|
|
34
|
+
if (blockNumber === 0) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
const headers = await this.store.getBlockHeaders(blockNumber, 1);
|
|
38
|
+
return headers.length === 0 ? undefined : headers[0];
|
|
39
|
+
}
|
|
40
|
+
getCheckpointedBlock(number) {
|
|
41
|
+
return this.store.getCheckpointedBlock(number);
|
|
42
|
+
}
|
|
43
|
+
getCheckpointedL2BlockNumber() {
|
|
44
|
+
return this.store.getCheckpointedL2BlockNumber();
|
|
45
|
+
}
|
|
46
|
+
getFinalizedL2BlockNumber() {
|
|
47
|
+
return this.store.getFinalizedL2BlockNumber();
|
|
48
|
+
}
|
|
49
|
+
async getCheckpointHeader(number) {
|
|
50
|
+
if (number === 'latest') {
|
|
51
|
+
number = await this.store.getSynchedCheckpointNumber();
|
|
52
|
+
}
|
|
53
|
+
if (number === 0) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
const checkpoint = await this.store.getCheckpointData(number);
|
|
57
|
+
if (!checkpoint) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return checkpoint.header;
|
|
61
|
+
}
|
|
62
|
+
async getLastBlockNumberInCheckpoint(checkpointNumber) {
|
|
63
|
+
const checkpointData = await this.store.getCheckpointData(checkpointNumber);
|
|
64
|
+
if (!checkpointData) {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
return BlockNumber(checkpointData.startBlock + checkpointData.numBlocks - 1);
|
|
68
|
+
}
|
|
69
|
+
getCheckpointedBlocks(from, limit) {
|
|
70
|
+
return this.store.getCheckpointedBlocks(from, limit);
|
|
71
|
+
}
|
|
72
|
+
getBlockHeaderByHash(blockHash) {
|
|
73
|
+
return this.store.getBlockHeaderByHash(blockHash);
|
|
74
|
+
}
|
|
75
|
+
getBlockHeaderByArchive(archive) {
|
|
76
|
+
return this.store.getBlockHeaderByArchive(archive);
|
|
77
|
+
}
|
|
78
|
+
async getL2Block(number) {
|
|
79
|
+
// If the number provided is -ve, then return the latest block.
|
|
80
|
+
if (number < 0) {
|
|
81
|
+
number = await this.store.getLatestBlockNumber();
|
|
82
|
+
}
|
|
83
|
+
if (number === 0) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
const publishedBlock = await this.store.getBlock(number);
|
|
87
|
+
return publishedBlock;
|
|
88
|
+
}
|
|
89
|
+
getTxEffect(txHash) {
|
|
90
|
+
return this.store.getTxEffect(txHash);
|
|
91
|
+
}
|
|
92
|
+
getSettledTxReceipt(txHash) {
|
|
93
|
+
return this.store.getSettledTxReceipt(txHash);
|
|
94
|
+
}
|
|
95
|
+
isPendingChainInvalid() {
|
|
96
|
+
return this.getPendingChainValidationStatus().then((status)=>!status.valid);
|
|
97
|
+
}
|
|
98
|
+
async getPendingChainValidationStatus() {
|
|
99
|
+
return await this.store.getPendingChainValidationStatus() ?? {
|
|
100
|
+
valid: true
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
getPrivateLogsByTags(tags, page) {
|
|
104
|
+
return this.store.getPrivateLogsByTags(tags, page);
|
|
105
|
+
}
|
|
106
|
+
getPublicLogsByTagsFromContract(contractAddress, tags, page) {
|
|
107
|
+
return this.store.getPublicLogsByTagsFromContract(contractAddress, tags, page);
|
|
108
|
+
}
|
|
109
|
+
getPublicLogs(filter) {
|
|
110
|
+
return this.store.getPublicLogs(filter);
|
|
111
|
+
}
|
|
112
|
+
getContractClassLogs(filter) {
|
|
113
|
+
return this.store.getContractClassLogs(filter);
|
|
114
|
+
}
|
|
115
|
+
getContractClass(id) {
|
|
116
|
+
return this.store.getContractClass(id);
|
|
117
|
+
}
|
|
118
|
+
getBytecodeCommitment(id) {
|
|
119
|
+
return this.store.getBytecodeCommitment(id);
|
|
120
|
+
}
|
|
121
|
+
async getContract(address, maybeTimestamp) {
|
|
122
|
+
let timestamp;
|
|
123
|
+
if (maybeTimestamp === undefined) {
|
|
124
|
+
const latestBlockHeader = await this.getBlockHeader('latest');
|
|
125
|
+
// If we get undefined block header, it means that the archiver has not yet synced any block so we default to 0.
|
|
126
|
+
timestamp = latestBlockHeader ? latestBlockHeader.globalVariables.timestamp : 0n;
|
|
127
|
+
} else {
|
|
128
|
+
timestamp = maybeTimestamp;
|
|
129
|
+
}
|
|
130
|
+
return this.store.getContractInstance(address, timestamp);
|
|
131
|
+
}
|
|
132
|
+
getContractClassIds() {
|
|
133
|
+
return this.store.getContractClassIds();
|
|
134
|
+
}
|
|
135
|
+
getDebugFunctionName(address, selector) {
|
|
136
|
+
return this.store.getDebugFunctionName(address, selector);
|
|
137
|
+
}
|
|
138
|
+
registerContractFunctionSignatures(signatures) {
|
|
139
|
+
return this.store.registerContractFunctionSignatures(signatures);
|
|
140
|
+
}
|
|
141
|
+
getL1ToL2Messages(checkpointNumber) {
|
|
142
|
+
return this.store.getL1ToL2Messages(checkpointNumber);
|
|
143
|
+
}
|
|
144
|
+
getL1ToL2MessageIndex(l1ToL2Message) {
|
|
145
|
+
return this.store.getL1ToL2MessageIndex(l1ToL2Message);
|
|
146
|
+
}
|
|
147
|
+
async getCheckpoints(checkpointNumber, limit) {
|
|
148
|
+
const checkpoints = await this.store.getRangeOfCheckpoints(checkpointNumber, limit);
|
|
149
|
+
const blocks = (await Promise.all(checkpoints.map((ch)=>this.store.getBlocksForCheckpoint(ch.checkpointNumber)))).filter(isDefined);
|
|
150
|
+
const fullCheckpoints = [];
|
|
151
|
+
for(let i = 0; i < checkpoints.length; i++){
|
|
152
|
+
const blocksForCheckpoint = blocks[i];
|
|
153
|
+
const checkpoint = checkpoints[i];
|
|
154
|
+
const fullCheckpoint = new Checkpoint(checkpoint.archive, checkpoint.header, blocksForCheckpoint, checkpoint.checkpointNumber);
|
|
155
|
+
const publishedCheckpoint = new PublishedCheckpoint(fullCheckpoint, checkpoint.l1, checkpoint.attestations.map((x)=>CommitteeAttestation.fromBuffer(x)));
|
|
156
|
+
fullCheckpoints.push(publishedCheckpoint);
|
|
157
|
+
}
|
|
158
|
+
return fullCheckpoints;
|
|
159
|
+
}
|
|
160
|
+
getBlocksForSlot(slotNumber) {
|
|
161
|
+
return this.store.getBlocksForSlot(slotNumber);
|
|
162
|
+
}
|
|
163
|
+
async getCheckpointedBlocksForEpoch(epochNumber) {
|
|
164
|
+
if (!this.l1Constants) {
|
|
165
|
+
throw new Error('L1 constants not set');
|
|
166
|
+
}
|
|
167
|
+
const [start, end] = getSlotRangeForEpoch(epochNumber, this.l1Constants);
|
|
168
|
+
const blocks = [];
|
|
169
|
+
// Walk the list of checkpoints backwards and filter by slots matching the requested epoch.
|
|
170
|
+
// We'll typically ask for checkpoints for a very recent epoch, so we shouldn't need an index here.
|
|
171
|
+
let checkpoint = await this.store.getCheckpointData(await this.store.getSynchedCheckpointNumber());
|
|
172
|
+
const slot = (b)=>b.header.slotNumber;
|
|
173
|
+
while(checkpoint && slot(checkpoint) >= start){
|
|
174
|
+
if (slot(checkpoint) <= end) {
|
|
175
|
+
// push the blocks on backwards
|
|
176
|
+
const endBlock = checkpoint.startBlock + checkpoint.numBlocks - 1;
|
|
177
|
+
for(let i = endBlock; i >= checkpoint.startBlock; i--){
|
|
178
|
+
const checkpointedBlock = await this.getCheckpointedBlock(BlockNumber(i));
|
|
179
|
+
if (checkpointedBlock) {
|
|
180
|
+
blocks.push(checkpointedBlock);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
checkpoint = await this.store.getCheckpointData(CheckpointNumber(checkpoint.checkpointNumber - 1));
|
|
185
|
+
}
|
|
186
|
+
return blocks.reverse();
|
|
187
|
+
}
|
|
188
|
+
async getCheckpointedBlockHeadersForEpoch(epochNumber) {
|
|
189
|
+
if (!this.l1Constants) {
|
|
190
|
+
throw new Error('L1 constants not set');
|
|
191
|
+
}
|
|
192
|
+
const [start, end] = getSlotRangeForEpoch(epochNumber, this.l1Constants);
|
|
193
|
+
const blocks = [];
|
|
194
|
+
// Walk the list of checkpoints backwards and filter by slots matching the requested epoch.
|
|
195
|
+
// We'll typically ask for checkpoints for a very recent epoch, so we shouldn't need an index here.
|
|
196
|
+
let checkpoint = await this.store.getCheckpointData(await this.store.getSynchedCheckpointNumber());
|
|
197
|
+
const slot = (b)=>b.header.slotNumber;
|
|
198
|
+
while(checkpoint && slot(checkpoint) >= start){
|
|
199
|
+
if (slot(checkpoint) <= end) {
|
|
200
|
+
// push the blocks on backwards
|
|
201
|
+
const endBlock = checkpoint.startBlock + checkpoint.numBlocks - 1;
|
|
202
|
+
for(let i = endBlock; i >= checkpoint.startBlock; i--){
|
|
203
|
+
const block = await this.getBlockHeader(BlockNumber(i));
|
|
204
|
+
if (block) {
|
|
205
|
+
blocks.push(block);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
checkpoint = await this.store.getCheckpointData(CheckpointNumber(checkpoint.checkpointNumber - 1));
|
|
210
|
+
}
|
|
211
|
+
return blocks.reverse();
|
|
212
|
+
}
|
|
213
|
+
async getCheckpointsForEpoch(epochNumber) {
|
|
214
|
+
if (!this.l1Constants) {
|
|
215
|
+
throw new Error('L1 constants not set');
|
|
216
|
+
}
|
|
217
|
+
const [start, end] = getSlotRangeForEpoch(epochNumber, this.l1Constants);
|
|
218
|
+
const checkpoints = [];
|
|
219
|
+
// Walk the list of checkpoints backwards and filter by slots matching the requested epoch.
|
|
220
|
+
// We'll typically ask for checkpoints for a very recent epoch, so we shouldn't need an index here.
|
|
221
|
+
let checkpointData = await this.store.getCheckpointData(await this.store.getSynchedCheckpointNumber());
|
|
222
|
+
const slot = (b)=>b.header.slotNumber;
|
|
223
|
+
while(checkpointData && slot(checkpointData) >= start){
|
|
224
|
+
if (slot(checkpointData) <= end) {
|
|
225
|
+
// push the checkpoints on backwards
|
|
226
|
+
const [checkpoint] = await this.getCheckpoints(checkpointData.checkpointNumber, 1);
|
|
227
|
+
checkpoints.push(checkpoint.checkpoint);
|
|
228
|
+
}
|
|
229
|
+
checkpointData = await this.store.getCheckpointData(CheckpointNumber(checkpointData.checkpointNumber - 1));
|
|
230
|
+
}
|
|
231
|
+
return checkpoints.reverse();
|
|
232
|
+
}
|
|
233
|
+
async getBlock(number) {
|
|
234
|
+
// If the number provided is -ve, then return the latest block.
|
|
235
|
+
if (number < 0) {
|
|
236
|
+
number = await this.store.getLatestBlockNumber();
|
|
237
|
+
}
|
|
238
|
+
if (number === 0) {
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
return this.store.getBlock(number);
|
|
242
|
+
}
|
|
243
|
+
getBlocks(from, limit) {
|
|
244
|
+
return this.store.getBlocks(from, limit);
|
|
245
|
+
}
|
|
246
|
+
getCheckpointedBlockByHash(blockHash) {
|
|
247
|
+
return this.store.getCheckpointedBlockByHash(blockHash);
|
|
248
|
+
}
|
|
249
|
+
getCheckpointedBlockByArchive(archive) {
|
|
250
|
+
return this.store.getCheckpointedBlockByArchive(archive);
|
|
251
|
+
}
|
|
252
|
+
async getL2BlockByHash(blockHash) {
|
|
253
|
+
const checkpointedBlock = await this.store.getCheckpointedBlockByHash(blockHash);
|
|
254
|
+
return checkpointedBlock?.block;
|
|
255
|
+
}
|
|
256
|
+
async getL2BlockByArchive(archive) {
|
|
257
|
+
const checkpointedBlock = await this.store.getCheckpointedBlockByArchive(archive);
|
|
258
|
+
return checkpointedBlock?.block;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { L2Block, ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
3
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
4
|
+
import type { KVArchiverDataStore } from '../store/kv_archiver_store.js';
|
|
5
|
+
/** Result of adding checkpoints with information about any pruned blocks. */
|
|
6
|
+
type ReconcileCheckpointsResult = {
|
|
7
|
+
/** Blocks that were pruned due to conflict with L1 checkpoints. */
|
|
8
|
+
prunedBlocks: L2Block[] | undefined;
|
|
9
|
+
/** Last block number that was already inserted locally, or undefined if none. */
|
|
10
|
+
lastAlreadyInsertedBlockNumber: BlockNumber | undefined;
|
|
11
|
+
};
|
|
12
|
+
/** Archiver helper module to handle updates to the data store. */
|
|
13
|
+
export declare class ArchiverDataStoreUpdater {
|
|
14
|
+
private store;
|
|
15
|
+
private readonly log;
|
|
16
|
+
constructor(store: KVArchiverDataStore);
|
|
17
|
+
/**
|
|
18
|
+
* Adds proposed blocks to the store with contract class/instance extraction from logs.
|
|
19
|
+
* These are uncheckpointed blocks that have been proposed by the sequencer but not yet included in a checkpoint on L1.
|
|
20
|
+
* Extracts ContractClassPublished, ContractInstancePublished, ContractInstanceUpdated events,
|
|
21
|
+
* and individually broadcasted functions from the block logs.
|
|
22
|
+
*
|
|
23
|
+
* @param blocks - The proposed L2 blocks to add.
|
|
24
|
+
* @param pendingChainValidationStatus - Optional validation status to set.
|
|
25
|
+
* @returns True if the operation is successful.
|
|
26
|
+
*/
|
|
27
|
+
addProposedBlocks(blocks: L2Block[], pendingChainValidationStatus?: ValidateCheckpointResult): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Reconciles local blocks with incoming checkpoints from L1.
|
|
30
|
+
* Adds new checkpoints to the store with contract class/instance extraction from logs.
|
|
31
|
+
* Prunes any local blocks that conflict with checkpoint data (by comparing archive roots).
|
|
32
|
+
* Extracts ContractClassPublished, ContractInstancePublished, ContractInstanceUpdated events,
|
|
33
|
+
* and individually broadcasted functions from the checkpoint block logs.
|
|
34
|
+
*
|
|
35
|
+
* @param checkpoints - The published checkpoints to add.
|
|
36
|
+
* @param pendingChainValidationStatus - Optional validation status to set.
|
|
37
|
+
* @returns Result with information about any pruned blocks.
|
|
38
|
+
*/
|
|
39
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[], pendingChainValidationStatus?: ValidateCheckpointResult): Promise<ReconcileCheckpointsResult>;
|
|
40
|
+
private pruneMismatchingLocalBlocks;
|
|
41
|
+
/**
|
|
42
|
+
* Removes all uncheckpointed blocks strictly after the specified block number and cleans up associated contract data.
|
|
43
|
+
* This handles removal of provisionally added blocks along with their contract classes/instances.
|
|
44
|
+
* Verifies that each block being removed is not part of a stored checkpoint.
|
|
45
|
+
*
|
|
46
|
+
* @param blockNumber - Remove all blocks with number greater than this.
|
|
47
|
+
* @returns The removed blocks.
|
|
48
|
+
* @throws Error if any block to be removed is checkpointed.
|
|
49
|
+
*/
|
|
50
|
+
removeUncheckpointedBlocksAfter(blockNumber: BlockNumber): Promise<L2Block[]>;
|
|
51
|
+
private removeBlocksAfter;
|
|
52
|
+
/**
|
|
53
|
+
* Removes all checkpoints after the given checkpoint number.
|
|
54
|
+
* Deletes ContractClassPublished, ContractInstancePublished, ContractInstanceUpdated data
|
|
55
|
+
* that was stored for the removed checkpoints. Also removes ALL blocks (both checkpointed
|
|
56
|
+
* and uncheckpointed) after the last block of the given checkpoint.
|
|
57
|
+
*
|
|
58
|
+
* @param checkpointNumber - Remove all checkpoints strictly after this one.
|
|
59
|
+
* @returns True if the operation is successful.
|
|
60
|
+
*/
|
|
61
|
+
removeCheckpointsAfter(checkpointNumber: CheckpointNumber): Promise<boolean>;
|
|
62
|
+
/** Extracts and stores contract data from a single block. */
|
|
63
|
+
private addContractDataToDb;
|
|
64
|
+
/** Removes contract data associated with a block. */
|
|
65
|
+
private removeContractDataFromDb;
|
|
66
|
+
private updateContractDataOnDb;
|
|
67
|
+
private updatePublishedContractClasses;
|
|
68
|
+
private updateDeployedContractInstances;
|
|
69
|
+
private updateUpdatedContractInstances;
|
|
70
|
+
private storeBroadcastedIndividualFunctions;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zdG9yZV91cGRhdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9kYXRhX3N0b3JlX3VwZGF0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBWWhGLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFhcEUsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVF6RSw2RUFBNkU7QUFDN0UsS0FBSywwQkFBMEIsR0FBRztJQUNoQyxtRUFBbUU7SUFDbkUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUNwQyxpRkFBaUY7SUFDakYsOEJBQThCLEVBQUUsV0FBVyxHQUFHLFNBQVMsQ0FBQztDQUN6RCxDQUFDO0FBRUYsa0VBQWtFO0FBQ2xFLHFCQUFhLHdCQUF3QjtJQUd2QixPQUFPLENBQUMsS0FBSztJQUZ6QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBMEM7SUFFOUQsWUFBb0IsS0FBSyxFQUFFLG1CQUFtQixFQUFJO0lBRWxEOzs7Ozs7Ozs7T0FTRztJQUNJLGlCQUFpQixDQUN0QixNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQ2pCLDRCQUE0QixDQUFDLEVBQUUsd0JBQXdCLEdBQ3RELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FlbEI7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksY0FBYyxDQUNuQixXQUFXLEVBQUUsbUJBQW1CLEVBQUUsRUFDbEMsNEJBQTRCLENBQUMsRUFBRSx3QkFBd0IsR0FDdEQsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBdUJyQztZQVFhLDJCQUEyQjtJQW1FekM7Ozs7Ozs7O09BUUc7SUFDSSwrQkFBK0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQVluRjtZQU1hLGlCQUFpQjtJQWEvQjs7Ozs7Ozs7T0FRRztJQUNVLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FZeEY7SUFFRCw2REFBNkQ7SUFDN0QsT0FBTyxDQUFDLG1CQUFtQjtJQUkzQixxREFBcUQ7SUFDckQsT0FBTyxDQUFDLHdCQUF3QjtZQUtsQixzQkFBc0I7WUFvQnRCLDhCQUE4QjtZQTRCOUIsK0JBQStCO1lBeUIvQiw4QkFBOEI7WUE2QjlCLG1DQUFtQztDQXdEbEQifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data_store_updater.d.ts","sourceRoot":"","sources":["../../src/modules/data_store_updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAYhF,OAAO,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAapE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAQzE,6EAA6E;AAC7E,KAAK,0BAA0B,GAAG;IAChC,mEAAmE;IACnE,YAAY,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,8BAA8B,EAAE,WAAW,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,kEAAkE;AAClE,qBAAa,wBAAwB;IAGvB,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0C;IAE9D,YAAoB,KAAK,EAAE,mBAAmB,EAAI;IAElD;;;;;;;;;OASG;IACI,iBAAiB,CACtB,MAAM,EAAE,OAAO,EAAE,EACjB,4BAA4B,CAAC,EAAE,wBAAwB,GACtD,OAAO,CAAC,OAAO,CAAC,CAelB;IAED;;;;;;;;;;OAUG;IACI,cAAc,CACnB,WAAW,EAAE,mBAAmB,EAAE,EAClC,4BAA4B,CAAC,EAAE,wBAAwB,GACtD,OAAO,CAAC,0BAA0B,CAAC,CAuBrC;YAQa,2BAA2B;IAmEzC;;;;;;;;OAQG;IACI,+BAA+B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAYnF;YAMa,iBAAiB;IAa/B;;;;;;;;OAQG;IACU,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAYxF;IAED,6DAA6D;IAC7D,OAAO,CAAC,mBAAmB;IAI3B,qDAAqD;IACrD,OAAO,CAAC,wBAAwB;YAKlB,sBAAsB;YAoBtB,8BAA8B;YA4B9B,+BAA+B;YAyB/B,8BAA8B;YA6B9B,mCAAmC;CAwDlD"}
|