@aztec/archiver 0.47.1 → 0.49.2
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/dest/archiver/archiver.d.ts +4 -0
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +53 -22
- package/dest/archiver/archiver_store.d.ts +5 -3
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +21 -5
- package/dest/archiver/config.d.ts +5 -15
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +30 -13
- package/dest/archiver/data_retrieval.d.ts +11 -5
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +26 -5
- package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
- package/dest/archiver/eth_log_handlers.js +35 -13
- package/dest/archiver/instrumentation.d.ts +3 -1
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +15 -6
- package/dest/archiver/kv_archiver_store/block_body_store.d.ts +11 -4
- package/dest/archiver/kv_archiver_store/block_body_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_body_store.js +27 -9
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +2 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +4 -3
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +7 -8
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +4 -2
- package/package.json +10 -10
- package/src/archiver/archiver.ts +61 -22
- package/src/archiver/archiver_store.ts +5 -3
- package/src/archiver/archiver_store_test_suite.ts +26 -9
- package/src/archiver/config.ts +33 -37
- package/src/archiver/data_retrieval.ts +39 -8
- package/src/archiver/eth_log_handlers.ts +43 -13
- package/src/archiver/instrumentation.ts +26 -6
- package/src/archiver/kv_archiver_store/block_body_store.ts +30 -10
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +3 -2
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +10 -12
- package/src/index.ts +4 -1
package/dest/archiver/config.js
CHANGED
|
@@ -1,20 +1,37 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l1ReaderConfigMappings } from '@aztec/ethereum';
|
|
2
|
+
import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
3
|
+
export const archiverConfigMappings = {
|
|
4
|
+
archiverUrl: {
|
|
5
|
+
env: 'ARCHIVER_URL',
|
|
6
|
+
description: 'URL for an archiver service. If set, will return an archiver client as opposed to starting a new one.',
|
|
7
|
+
},
|
|
8
|
+
archiverPollingIntervalMS: {
|
|
9
|
+
env: 'ARCHIVER_POLLING_INTERVAL_MS',
|
|
10
|
+
description: 'The polling interval in ms for retrieving new L2 blocks and encrypted logs.',
|
|
11
|
+
...numberConfigHelper(1000),
|
|
12
|
+
},
|
|
13
|
+
viemPollingIntervalMS: {
|
|
14
|
+
env: 'ARCHIVER_VIEM_POLLING_INTERVAL_MS',
|
|
15
|
+
description: 'The polling interval viem uses in ms',
|
|
16
|
+
...numberConfigHelper(1000),
|
|
17
|
+
},
|
|
18
|
+
dataDirectory: {
|
|
19
|
+
env: 'DATA_DIRECTORY',
|
|
20
|
+
description: 'Optional dir to store data. If omitted will store in memory.',
|
|
21
|
+
},
|
|
22
|
+
maxLogs: {
|
|
23
|
+
env: 'ARCHIVER_MAX_LOGS',
|
|
24
|
+
description: 'The max number of logs that can be obtained in 1 "getUnencryptedLogs" call.',
|
|
25
|
+
...numberConfigHelper(1000),
|
|
26
|
+
},
|
|
27
|
+
...l1ReaderConfigMappings,
|
|
28
|
+
};
|
|
2
29
|
/**
|
|
3
30
|
* Returns the archiver configuration from the environment variables.
|
|
4
31
|
* Note: If an environment variable is not set, the default value is used.
|
|
5
32
|
* @returns The archiver configuration.
|
|
6
33
|
*/
|
|
7
34
|
export function getArchiverConfigFromEnv() {
|
|
8
|
-
|
|
9
|
-
return {
|
|
10
|
-
rpcUrl: ETHEREUM_HOST || '',
|
|
11
|
-
l1ChainId: L1_CHAIN_ID ? +L1_CHAIN_ID : 31337, // 31337 is the default chain id for anvil
|
|
12
|
-
archiverPollingIntervalMS: ARCHIVER_POLLING_INTERVAL_MS ? +ARCHIVER_POLLING_INTERVAL_MS : 1000,
|
|
13
|
-
viemPollingIntervalMS: ARCHIVER_VIEM_POLLING_INTERVAL_MS ? +ARCHIVER_VIEM_POLLING_INTERVAL_MS : 1000,
|
|
14
|
-
apiKey: API_KEY,
|
|
15
|
-
l1Contracts: getL1ContractAddressesFromEnv(),
|
|
16
|
-
dataDirectory: DATA_DIRECTORY,
|
|
17
|
-
archiverUrl: ARCHIVER_URL,
|
|
18
|
-
};
|
|
35
|
+
return getConfigFromMappings(archiverConfigMappings);
|
|
19
36
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlELHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEcsT0FBTyxFQUEyQixxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBMEM5RyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBdUM7SUFDeEUsV0FBVyxFQUFFO1FBQ1gsR0FBRyxFQUFFLGNBQWM7UUFDbkIsV0FBVyxFQUNULHVHQUF1RztLQUMxRztJQUNELHlCQUF5QixFQUFFO1FBQ3pCLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsV0FBVyxFQUFFLDZFQUE2RTtRQUMxRixHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQztLQUM1QjtJQUNELHFCQUFxQixFQUFFO1FBQ3JCLEdBQUcsRUFBRSxtQ0FBbUM7UUFDeEMsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQztLQUM1QjtJQUNELGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxnQkFBZ0I7UUFDckIsV0FBVyxFQUFFLDhEQUE4RDtLQUM1RTtJQUNELE9BQU8sRUFBRTtRQUNQLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLDZFQUE2RTtRQUMxRixHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELEdBQUcsc0JBQXNCO0NBQzFCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxPQUFPLHFCQUFxQixDQUFpQixzQkFBc0IsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { type Body, type InboxLeaf } from '@aztec/circuit-types';
|
|
3
|
-
import { type AppendOnlyTreeSnapshot, type Header } from '@aztec/circuits.js';
|
|
2
|
+
import { type AppendOnlyTreeSnapshot, Fr, type Header } from '@aztec/circuits.js';
|
|
4
3
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
import { type DebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { type PublicClient } from 'viem';
|
|
6
6
|
/**
|
|
7
7
|
* Data retrieved from logs
|
|
@@ -26,7 +26,7 @@ export type DataRetrieval<T> = {
|
|
|
26
26
|
* @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
|
|
27
27
|
* @returns An array of tuples representing block metadata including the header, archive tree snapshot; as well as the next eth block to search from.
|
|
28
28
|
*/
|
|
29
|
-
export declare function retrieveBlockMetadataFromRollup(publicClient: PublicClient, rollupAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint, expectedNextL2BlockNum: bigint): Promise<DataRetrieval<[Header, AppendOnlyTreeSnapshot]>>;
|
|
29
|
+
export declare function retrieveBlockMetadataFromRollup(publicClient: PublicClient, rollupAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint, expectedNextL2BlockNum: bigint, logger?: DebugLogger): Promise<DataRetrieval<[Header, AppendOnlyTreeSnapshot]>>;
|
|
30
30
|
/**
|
|
31
31
|
* Fetches new L2 block bodies and their hashes.
|
|
32
32
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
@@ -34,9 +34,9 @@ export declare function retrieveBlockMetadataFromRollup(publicClient: PublicClie
|
|
|
34
34
|
* @param blockUntilSynced - If true, blocks until the archiver has fully synced.
|
|
35
35
|
* @param searchStartBlock - The block number to use for starting the search.
|
|
36
36
|
* @param searchEndBlock - The highest block number that we should search up to.
|
|
37
|
-
* @returns A array of
|
|
37
|
+
* @returns A array of L2 block bodies as well as the next eth block to search from
|
|
38
38
|
*/
|
|
39
|
-
export declare function retrieveBlockBodiesFromAvailabilityOracle(publicClient: PublicClient, availabilityOracleAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<
|
|
39
|
+
export declare function retrieveBlockBodiesFromAvailabilityOracle(publicClient: PublicClient, availabilityOracleAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<Body>>;
|
|
40
40
|
/**
|
|
41
41
|
* Fetch L1 to L2 messages.
|
|
42
42
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
@@ -47,4 +47,10 @@ export declare function retrieveBlockBodiesFromAvailabilityOracle(publicClient:
|
|
|
47
47
|
* @returns An array of InboxLeaf and next eth block to search from.
|
|
48
48
|
*/
|
|
49
49
|
export declare function retrieveL1ToL2Messages(publicClient: PublicClient, inboxAddress: EthAddress, blockUntilSynced: boolean, searchStartBlock: bigint, searchEndBlock: bigint): Promise<DataRetrieval<InboxLeaf>>;
|
|
50
|
+
/** Retrieves L2ProofVerified events from the rollup contract. */
|
|
51
|
+
export declare function retrieveL2ProofVerifiedEvents(publicClient: PublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
|
|
52
|
+
l1BlockNumber: bigint;
|
|
53
|
+
l2BlockNumber: bigint;
|
|
54
|
+
proverId: Fr;
|
|
55
|
+
}[]>;
|
|
50
56
|
//# sourceMappingURL=data_retrieval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,KAAK,sBAAsB,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,MAAM,CAAC;AAWrD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,EAC9B,MAAM,GAAE,WAAiD,GACxD,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,CA+B1D;AAED;;;;;;;;GAQG;AACH,wBAAsB,yCAAyC,CAC7D,YAAY,EAAE,YAAY,EAC1B,yBAAyB,EAAE,UAAU,EACrC,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAuB9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAgBnC;AAED,iEAAiE;AACjE,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,gBAAgB,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAA;CAAE,EAAE,CAAC,CAc3E"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { Fr } from '@aztec/circuits.js';
|
|
2
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
4
|
+
import { getAbiItem } from 'viem';
|
|
1
5
|
import { getL2BlockProcessedLogs, getMessageSentLogs, getTxsPublishedLogs, processL2BlockProcessedLogs, processMessageSentLogs, processTxsPublishedLogs, } from './eth_log_handlers.js';
|
|
2
6
|
/**
|
|
3
7
|
* Fetches new L2 block metadata (header, archive snapshot).
|
|
@@ -9,7 +13,7 @@ import { getL2BlockProcessedLogs, getMessageSentLogs, getTxsPublishedLogs, proce
|
|
|
9
13
|
* @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
|
|
10
14
|
* @returns An array of tuples representing block metadata including the header, archive tree snapshot; as well as the next eth block to search from.
|
|
11
15
|
*/
|
|
12
|
-
export async function retrieveBlockMetadataFromRollup(publicClient, rollupAddress, blockUntilSynced, searchStartBlock, searchEndBlock, expectedNextL2BlockNum) {
|
|
16
|
+
export async function retrieveBlockMetadataFromRollup(publicClient, rollupAddress, blockUntilSynced, searchStartBlock, searchEndBlock, expectedNextL2BlockNum, logger = createDebugLogger('aztec:archiver')) {
|
|
13
17
|
const retrievedBlockMetadata = [];
|
|
14
18
|
do {
|
|
15
19
|
if (searchStartBlock > searchEndBlock) {
|
|
@@ -19,9 +23,11 @@ export async function retrieveBlockMetadataFromRollup(publicClient, rollupAddres
|
|
|
19
23
|
if (l2BlockProcessedLogs.length === 0) {
|
|
20
24
|
break;
|
|
21
25
|
}
|
|
26
|
+
const lastLog = l2BlockProcessedLogs[l2BlockProcessedLogs.length - 1];
|
|
27
|
+
logger.debug(`Got L2 block processed logs for ${l2BlockProcessedLogs[0].blockNumber}-${lastLog.blockNumber} between ${searchStartBlock}-${searchEndBlock} L1 blocks`);
|
|
22
28
|
const newBlockMetadata = await processL2BlockProcessedLogs(publicClient, expectedNextL2BlockNum, l2BlockProcessedLogs);
|
|
23
29
|
retrievedBlockMetadata.push(...newBlockMetadata);
|
|
24
|
-
searchStartBlock =
|
|
30
|
+
searchStartBlock = lastLog.blockNumber + 1n;
|
|
25
31
|
expectedNextL2BlockNum += BigInt(newBlockMetadata.length);
|
|
26
32
|
} while (blockUntilSynced && searchStartBlock <= searchEndBlock);
|
|
27
33
|
return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedBlockMetadata };
|
|
@@ -33,7 +39,7 @@ export async function retrieveBlockMetadataFromRollup(publicClient, rollupAddres
|
|
|
33
39
|
* @param blockUntilSynced - If true, blocks until the archiver has fully synced.
|
|
34
40
|
* @param searchStartBlock - The block number to use for starting the search.
|
|
35
41
|
* @param searchEndBlock - The highest block number that we should search up to.
|
|
36
|
-
* @returns A array of
|
|
42
|
+
* @returns A array of L2 block bodies as well as the next eth block to search from
|
|
37
43
|
*/
|
|
38
44
|
export async function retrieveBlockBodiesFromAvailabilityOracle(publicClient, availabilityOracleAddress, blockUntilSynced, searchStartBlock, searchEndBlock) {
|
|
39
45
|
const retrievedBlockBodies = [];
|
|
@@ -46,7 +52,7 @@ export async function retrieveBlockBodiesFromAvailabilityOracle(publicClient, av
|
|
|
46
52
|
break;
|
|
47
53
|
}
|
|
48
54
|
const newBlockBodies = await processTxsPublishedLogs(publicClient, l2TxsPublishedLogs);
|
|
49
|
-
retrievedBlockBodies.push(...newBlockBodies);
|
|
55
|
+
retrievedBlockBodies.push(...newBlockBodies.map(([body]) => body));
|
|
50
56
|
searchStartBlock = l2TxsPublishedLogs[l2TxsPublishedLogs.length - 1].blockNumber + 1n;
|
|
51
57
|
} while (blockUntilSynced && searchStartBlock <= searchEndBlock);
|
|
52
58
|
return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedBlockBodies };
|
|
@@ -77,4 +83,19 @@ export async function retrieveL1ToL2Messages(publicClient, inboxAddress, blockUn
|
|
|
77
83
|
} while (blockUntilSynced && searchStartBlock <= searchEndBlock);
|
|
78
84
|
return { lastProcessedL1BlockNumber: searchStartBlock - 1n, retrievedData: retrievedL1ToL2Messages };
|
|
79
85
|
}
|
|
80
|
-
|
|
86
|
+
/** Retrieves L2ProofVerified events from the rollup contract. */
|
|
87
|
+
export async function retrieveL2ProofVerifiedEvents(publicClient, rollupAddress, searchStartBlock, searchEndBlock) {
|
|
88
|
+
const logs = await publicClient.getLogs({
|
|
89
|
+
address: rollupAddress.toString(),
|
|
90
|
+
fromBlock: searchStartBlock,
|
|
91
|
+
toBlock: searchEndBlock ? searchEndBlock + 1n : undefined,
|
|
92
|
+
strict: true,
|
|
93
|
+
event: getAbiItem({ abi: RollupAbi, name: 'L2ProofVerified' }),
|
|
94
|
+
});
|
|
95
|
+
return logs.map(log => ({
|
|
96
|
+
l1BlockNumber: log.blockNumber,
|
|
97
|
+
l2BlockNumber: log.args.blockNumber,
|
|
98
|
+
proverId: Fr.fromString(log.args.proverId),
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvZGF0YV9yZXRyaWV2YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUErQixFQUFFLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRixPQUFPLEVBQW9CLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0Isc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUN4QixNQUFNLHVCQUF1QixDQUFDO0FBZ0IvQjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUNuRCxZQUEwQixFQUMxQixhQUF5QixFQUN6QixnQkFBeUIsRUFDekIsZ0JBQXdCLEVBQ3hCLGNBQXNCLEVBQ3RCLHNCQUE4QixFQUM5QixTQUFzQixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQztJQUV6RCxNQUFNLHNCQUFzQixHQUF1QyxFQUFFLENBQUM7SUFDdEUsR0FBRyxDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSx1QkFBdUIsQ0FDeEQsWUFBWSxFQUNaLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsY0FBYyxDQUNmLENBQUM7UUFDRixJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,
|
|
1
|
+
{"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,YAAY,EAMlB,MAAM,MAAM,CAAC;AAEd;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,aAAa,CAAC,EAAE,GAClF,SAAS,EAAE,CAOb;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,EAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,GACxF,OAAO,CAAC,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAmB7C;AAED,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAC,EAAE,GAChG,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAQ3B;AA+FD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAU9F;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,6BAA6B,EAAE,UAAU,EACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,qBAAqB,EAAE,cAAc,CAAC,EAAE,CAAC,CAUtG;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAUxF"}
|
|
@@ -3,7 +3,7 @@ import { AppendOnlyTreeSnapshot, Header } from '@aztec/circuits.js';
|
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { numToUInt32BE } from '@aztec/foundation/serialize';
|
|
5
5
|
import { AvailabilityOracleAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
6
|
-
import { decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem';
|
|
6
|
+
import { decodeFunctionData, getAbiItem, getAddress, hexToBytes, slice, } from 'viem';
|
|
7
7
|
/**
|
|
8
8
|
* Processes newly received MessageSent (L1 to L2) logs.
|
|
9
9
|
* @param logs - MessageSent logs.
|
|
@@ -61,7 +61,7 @@ async function getBlockMetadataFromRollupTx(publicClient, txHash, l2BlockNum) {
|
|
|
61
61
|
abi: RollupAbi,
|
|
62
62
|
data,
|
|
63
63
|
});
|
|
64
|
-
if (functionName
|
|
64
|
+
if (!(functionName === 'process' || functionName === 'publishAndProcess')) {
|
|
65
65
|
throw new Error(`Unexpected method called ${functionName}`);
|
|
66
66
|
}
|
|
67
67
|
const [headerHex, archiveRootHex] = args;
|
|
@@ -78,7 +78,7 @@ async function getBlockMetadataFromRollupTx(publicClient, txHash, l2BlockNum) {
|
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Gets block bodies from calldata of an L1 transaction, and deserializes them into Body objects.
|
|
81
|
-
* Assumes that the block was published
|
|
81
|
+
* @note Assumes that the block was published using `publishAndProcess` or `publish`.
|
|
82
82
|
* TODO: Add retries and error management.
|
|
83
83
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
84
84
|
* @param txHash - Hash of the tx that published it.
|
|
@@ -86,16 +86,38 @@ async function getBlockMetadataFromRollupTx(publicClient, txHash, l2BlockNum) {
|
|
|
86
86
|
*/
|
|
87
87
|
async function getBlockBodiesFromAvailabilityOracleTx(publicClient, txHash) {
|
|
88
88
|
const { input: data } = await publicClient.getTransaction({ hash: txHash });
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
const DATA_INDEX = [3, 2, 0];
|
|
90
|
+
// @note Use `forge inspect Rollup methodIdentifiers to get this,
|
|
91
|
+
// If using `forge sig` you will get an INVALID value for the case with a struct.
|
|
92
|
+
// [
|
|
93
|
+
// "publishAndProcess(bytes calldata _header,bytes32 _archive,SignatureLib.Signature[] memory _signatures,bytes calldata _body)",
|
|
94
|
+
// "publishAndProcess(bytes calldata _header,bytes32 _archive,bytes calldata _body)",
|
|
95
|
+
// "publish(bytes calldata _body)"
|
|
96
|
+
// ]
|
|
97
|
+
const SUPPORTED_SIGS = ['0xe4e90c26', '0xe86e3595', '0x7fd28346'];
|
|
98
|
+
const signature = slice(data, 0, 4);
|
|
99
|
+
if (!SUPPORTED_SIGS.includes(signature)) {
|
|
100
|
+
throw new Error(`Unexpected method called ${signature}`);
|
|
101
|
+
}
|
|
102
|
+
if (signature === SUPPORTED_SIGS[2]) {
|
|
103
|
+
const { args } = decodeFunctionData({
|
|
104
|
+
abi: AvailabilityOracleAbi,
|
|
105
|
+
data,
|
|
106
|
+
});
|
|
107
|
+
const [bodyHex] = args;
|
|
108
|
+
const blockBody = Body.fromBuffer(Buffer.from(hexToBytes(bodyHex)));
|
|
109
|
+
return blockBody;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const { args } = decodeFunctionData({
|
|
113
|
+
abi: RollupAbi,
|
|
114
|
+
data,
|
|
115
|
+
});
|
|
116
|
+
const index = SUPPORTED_SIGS.indexOf(signature);
|
|
117
|
+
const bodyHex = args[DATA_INDEX[index]];
|
|
118
|
+
const blockBody = Body.fromBuffer(Buffer.from(hexToBytes(bodyHex)));
|
|
119
|
+
return blockBody;
|
|
95
120
|
}
|
|
96
|
-
const [bodyHex] = args;
|
|
97
|
-
const blockBody = Body.fromBuffer(Buffer.from(hexToBytes(bodyHex)));
|
|
98
|
-
return blockBody;
|
|
99
121
|
}
|
|
100
122
|
/**
|
|
101
123
|
* Gets relevant `L2BlockProcessed` logs from chain.
|
|
@@ -154,4 +176,4 @@ export function getMessageSentLogs(publicClient, inboxAddress, fromBlock, toBloc
|
|
|
154
176
|
toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
|
|
155
177
|
});
|
|
156
178
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBSUwsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssR0FDTixNQUFNLE1BQU0sQ0FBQztBQUVkOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLElBQW1GO0lBRW5GLE1BQU0sTUFBTSxHQUFnQixFQUFFLENBQUM7SUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLFlBQTBCLEVBQzFCLHFCQUE2QixFQUM3QixJQUF5RjtJ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
|
|
@@ -3,7 +3,9 @@ import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
|
3
3
|
export declare class ArchiverInstrumentation {
|
|
4
4
|
private blockHeight;
|
|
5
5
|
private blockSize;
|
|
6
|
+
private syncDuration;
|
|
6
7
|
constructor(telemetry: TelemetryClient);
|
|
7
|
-
processNewBlocks(blocks: L2Block[]): void;
|
|
8
|
+
processNewBlocks(syncTimePerBlock: number, blocks: L2Block[]): void;
|
|
9
|
+
updateLastProvenBlock(blockNumber: number): void;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/archiver/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/archiver/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAKL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,uBAAuB;IAClC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,YAAY,CAAY;gBAEpB,SAAS,EAAE,eAAe;IAsB/B,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAQ5D,qBAAqB,CAAC,WAAW,EAAE,MAAM;CAGjD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Metrics, ValueType } from '@aztec/telemetry-client';
|
|
1
|
+
import { Attributes, Metrics, ValueType, exponentialBuckets, } from '@aztec/telemetry-client';
|
|
2
2
|
export class ArchiverInstrumentation {
|
|
3
3
|
constructor(telemetry) {
|
|
4
4
|
const meter = telemetry.getMeter('Archiver');
|
|
@@ -6,19 +6,28 @@ export class ArchiverInstrumentation {
|
|
|
6
6
|
description: 'The height of the latest block processed by the archiver',
|
|
7
7
|
valueType: ValueType.INT,
|
|
8
8
|
});
|
|
9
|
-
this.blockSize = meter.
|
|
10
|
-
description: 'The number of transactions
|
|
9
|
+
this.blockSize = meter.createGauge(Metrics.ARCHIVER_BLOCK_SIZE, {
|
|
10
|
+
description: 'The number of transactions in a block',
|
|
11
|
+
valueType: ValueType.INT,
|
|
12
|
+
});
|
|
13
|
+
this.syncDuration = meter.createHistogram(Metrics.ARCHIVER_SYNC_DURATION, {
|
|
14
|
+
unit: 'ms',
|
|
15
|
+
description: 'Duration to sync a block',
|
|
11
16
|
valueType: ValueType.INT,
|
|
12
17
|
advice: {
|
|
13
|
-
explicitBucketBoundaries:
|
|
18
|
+
explicitBucketBoundaries: exponentialBuckets(1, 16),
|
|
14
19
|
},
|
|
15
20
|
});
|
|
16
21
|
}
|
|
17
|
-
processNewBlocks(blocks) {
|
|
22
|
+
processNewBlocks(syncTimePerBlock, blocks) {
|
|
23
|
+
this.syncDuration.record(syncTimePerBlock);
|
|
18
24
|
this.blockHeight.record(Math.max(...blocks.map(b => b.number)));
|
|
19
25
|
for (const block of blocks) {
|
|
20
26
|
this.blockSize.record(block.body.txEffects.length);
|
|
21
27
|
}
|
|
22
28
|
}
|
|
29
|
+
updateLastProvenBlock(blockNumber) {
|
|
30
|
+
this.blockHeight.record(blockNumber, { [Attributes.STATUS]: 'proven' });
|
|
31
|
+
}
|
|
23
32
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsVUFBVSxFQUdWLE9BQU8sRUFFUCxTQUFTLEVBQ1Qsa0JBQWtCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFFakMsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUFZLFNBQTBCO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtZQUNsRSxXQUFXLEVBQUUsMERBQTBEO1lBQ3ZFLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1lBQzlELFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDeEUsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRztZQUN4QixNQUFNLEVBQUU7Z0JBQ04sd0JBQXdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUNwRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxnQkFBd0IsRUFBRSxNQUFpQjtRQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBRU0scUJBQXFCLENBQUMsV0FBbUI7UUFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YifQ==
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { Body } from '@aztec/circuit-types';
|
|
3
3
|
import { type AztecKVStore } from '@aztec/kv-store';
|
|
4
|
+
import { type DataRetrieval } from '../data_retrieval.js';
|
|
4
5
|
export declare class BlockBodyStore {
|
|
5
6
|
#private;
|
|
6
7
|
private db;
|
|
7
|
-
|
|
8
|
+
private log;
|
|
9
|
+
constructor(db: AztecKVStore, log?: import("@aztec/foundation/log").Logger);
|
|
8
10
|
/**
|
|
9
11
|
* Append new block bodies to the store's map.
|
|
10
12
|
* @param blockBodies - The L2 block bodies to be added to the store.
|
|
11
13
|
* @returns True if the operation is successful.
|
|
12
14
|
*/
|
|
13
|
-
addBlockBodies(blockBodies: Body
|
|
15
|
+
addBlockBodies(blockBodies: DataRetrieval<Body>): Promise<boolean>;
|
|
14
16
|
/**
|
|
15
17
|
* Gets a list of L2 block bodies with its associated txsEffectsHashes
|
|
16
18
|
* @param txsEffectsHashes - The txsEffectsHashes list that corresponds to the blockBodies we want to retrieve
|
|
17
19
|
* @returns The requested L2 block bodies
|
|
18
20
|
*/
|
|
19
|
-
getBlockBodies(txsEffectsHashes: Buffer[]): Promise<Body[]>;
|
|
21
|
+
getBlockBodies(txsEffectsHashes: Buffer[]): Promise<(Body | undefined)[]>;
|
|
20
22
|
/**
|
|
21
23
|
* Gets an L2 block body.
|
|
22
|
-
* @param txsEffectsHash - The txHash of the
|
|
24
|
+
* @param txsEffectsHash - The txHash of the block body to return
|
|
23
25
|
* @returns The requested L2 block body
|
|
24
26
|
*/
|
|
25
27
|
getBlockBody(txsEffectsHash: Buffer): Body | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Gets the last L1 block number in which a L2 block body was included
|
|
30
|
+
* @returns The L1 block number
|
|
31
|
+
*/
|
|
32
|
+
getSynchedL1BlockNumber(): bigint;
|
|
26
33
|
}
|
|
27
34
|
//# sourceMappingURL=block_body_store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_body_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_body_store.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"block_body_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_body_store.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,cAAc;;IAOb,OAAO,CAAC,EAAE;IAAgB,OAAO,CAAC,GAAG;gBAA7B,EAAE,EAAE,YAAY,EAAU,GAAG,yCAAuD;IAKxG;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAUlE;;;;OAIG;IACG,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAiB/E;;;;OAIG;IACH,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAMtD;;;OAGG;IACH,uBAAuB,IAAI,MAAM;CAGlC"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
var _BlockBodyStore_blockBodies;
|
|
1
|
+
var _BlockBodyStore_blockBodies, _BlockBodyStore_lastSynchedL1Block;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { Body } from '@aztec/circuit-types';
|
|
4
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
5
|
export class BlockBodyStore {
|
|
5
|
-
constructor(db) {
|
|
6
|
+
constructor(db, log = createDebugLogger('aztec:archiver:block_body_store')) {
|
|
6
7
|
this.db = db;
|
|
8
|
+
this.log = log;
|
|
7
9
|
/** Map block body hash to block body */
|
|
8
10
|
_BlockBodyStore_blockBodies.set(this, void 0);
|
|
11
|
+
/** Stores L1 block number in which the last processed L2 block body was included */
|
|
12
|
+
_BlockBodyStore_lastSynchedL1Block.set(this, void 0);
|
|
9
13
|
__classPrivateFieldSet(this, _BlockBodyStore_blockBodies, db.openMap('archiver_block_bodies'), "f");
|
|
14
|
+
__classPrivateFieldSet(this, _BlockBodyStore_lastSynchedL1Block, db.openSingleton('archiver_block_bodies_last_synched_l1_block'), "f");
|
|
10
15
|
}
|
|
11
16
|
/**
|
|
12
17
|
* Append new block bodies to the store's map.
|
|
@@ -15,9 +20,10 @@ export class BlockBodyStore {
|
|
|
15
20
|
*/
|
|
16
21
|
addBlockBodies(blockBodies) {
|
|
17
22
|
return this.db.transaction(() => {
|
|
18
|
-
for (const body of blockBodies) {
|
|
23
|
+
for (const body of blockBodies.retrievedData) {
|
|
19
24
|
void __classPrivateFieldGet(this, _BlockBodyStore_blockBodies, "f").set(body.getTxsEffectsHash().toString('hex'), body.toBuffer());
|
|
20
25
|
}
|
|
26
|
+
void __classPrivateFieldGet(this, _BlockBodyStore_lastSynchedL1Block, "f").set(blockBodies.lastProcessedL1BlockNumber);
|
|
21
27
|
return true;
|
|
22
28
|
});
|
|
23
29
|
}
|
|
@@ -28,20 +34,32 @@ export class BlockBodyStore {
|
|
|
28
34
|
*/
|
|
29
35
|
async getBlockBodies(txsEffectsHashes) {
|
|
30
36
|
const blockBodiesBuffer = await this.db.transaction(() => txsEffectsHashes.map(txsEffectsHash => __classPrivateFieldGet(this, _BlockBodyStore_blockBodies, "f").get(txsEffectsHash.toString('hex'))));
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
const blockBodies = [];
|
|
38
|
+
for (let i = 0; i < blockBodiesBuffer.length; i++) {
|
|
39
|
+
const blockBodyBuffer = blockBodiesBuffer[i];
|
|
40
|
+
if (blockBodyBuffer === undefined) {
|
|
41
|
+
this.log.warn(`Block body buffer is undefined for txsEffectsHash: ${txsEffectsHashes[i].toString('hex')}`);
|
|
42
|
+
}
|
|
43
|
+
blockBodies.push(blockBodyBuffer ? Body.fromBuffer(blockBodyBuffer) : undefined);
|
|
33
44
|
}
|
|
34
|
-
return
|
|
45
|
+
return blockBodies;
|
|
35
46
|
}
|
|
36
47
|
/**
|
|
37
48
|
* Gets an L2 block body.
|
|
38
|
-
* @param txsEffectsHash - The txHash of the
|
|
49
|
+
* @param txsEffectsHash - The txHash of the block body to return
|
|
39
50
|
* @returns The requested L2 block body
|
|
40
51
|
*/
|
|
41
52
|
getBlockBody(txsEffectsHash) {
|
|
42
53
|
const blockBody = __classPrivateFieldGet(this, _BlockBodyStore_blockBodies, "f").get(txsEffectsHash.toString('hex'));
|
|
43
54
|
return blockBody && Body.fromBuffer(blockBody);
|
|
44
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Gets the last L1 block number in which a L2 block body was included
|
|
58
|
+
* @returns The L1 block number
|
|
59
|
+
*/
|
|
60
|
+
getSynchedL1BlockNumber() {
|
|
61
|
+
return __classPrivateFieldGet(this, _BlockBodyStore_lastSynchedL1Block, "f").get() ?? 0n;
|
|
62
|
+
}
|
|
45
63
|
}
|
|
46
|
-
_BlockBodyStore_blockBodies = new WeakMap();
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
_BlockBodyStore_blockBodies = new WeakMap(), _BlockBodyStore_lastSynchedL1Block = new WeakMap();
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfYm9keV9zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9ibG9ja19ib2R5X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFELE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQW9CLEVBQWdCLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQyxpQ0FBaUMsQ0FBQztRQUFwRixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBdUQ7UUFOeEcsd0NBQXdDO1FBQ3hDLDhDQUF1QztRQUV2QyxvRkFBb0Y7UUFDcEYscURBQTRDO1FBRzFDLHVCQUFBLElBQUksK0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsTUFBQSxDQUFDO1FBQ3hELHVCQUFBLElBQUksc0NBQXVCLEVBQUUsQ0FBQyxhQUFhLENBQUMsNkNBQTZDLENBQUMsTUFBQSxDQUFDO0lBQzdGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFdBQWdDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzlCLEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3QyxLQUFLLHVCQUFBLElBQUksbUNBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7WUFDRCxLQUFLLHVCQUFBLElBQUksMENBQW9CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsZ0JBQTBCO1FBQzdDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FDdkQsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsdUJBQUEsSUFBSSxtQ0FBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDOUYsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUF5QixFQUFFLENBQUM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzREFBc0QsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RyxDQUFDO1lBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxjQUFzQjtRQUNqQyxNQUFNLFNBQVMsR0FBRyx1QkFBQSxJQUFJLG1DQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RSxPQUFPLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCx1QkFBdUI7UUFDckIsT0FBTyx1QkFBQSxJQUFJLDBDQUFvQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YifQ==
|
|
@@ -26,14 +26,14 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
26
26
|
* @param blockBodies - The L2 block bodies to be added to the store.
|
|
27
27
|
* @returns True if the operation is successful.
|
|
28
28
|
*/
|
|
29
|
-
addBlockBodies(blockBodies: Body
|
|
29
|
+
addBlockBodies(blockBodies: DataRetrieval<Body>): Promise<boolean>;
|
|
30
30
|
/**
|
|
31
31
|
* Gets block bodies that have the same txHashes as we supply.
|
|
32
32
|
*
|
|
33
33
|
* @param txsEffectsHashes - A list of txsEffectsHashes (body hashes).
|
|
34
34
|
* @returns The requested L2 block bodies
|
|
35
35
|
*/
|
|
36
|
-
getBlockBodies(txsEffectsHashes: Buffer[]): Promise<Body[]>;
|
|
36
|
+
getBlockBodies(txsEffectsHashes: Buffer[]): Promise<(Body | undefined)[]>;
|
|
37
37
|
/**
|
|
38
38
|
* Append new blocks to the store's list.
|
|
39
39
|
* @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,4CAA4C,EACjD,KAAK,wCAAwC,EAC9C,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAS1D;;GAEG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;;gBAW/C,EAAE,EAAE,YAAY,EAAE,eAAe,GAAE,MAAa;IAU5D,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIjF,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAIlE,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAIpC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAItF,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7F,YAAY,CACV,eAAe,EAAE,EAAE,EACnB,gBAAgB,EAAE,4CAA4C,EAAE,EAChE,sBAAsB,EAAE,wCAAwC,EAAE,GACjE,OAAO,CAAC,OAAO,CAAC;IAIb,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvG;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -197,9 +197,10 @@ export class KVArchiverDataStore {
|
|
|
197
197
|
getSynchPoint() {
|
|
198
198
|
return Promise.resolve({
|
|
199
199
|
blocksSynchedTo: __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getSynchedL1BlockNumber(),
|
|
200
|
+
blockBodiesSynchedTo: __classPrivateFieldGet(this, _KVArchiverDataStore_blockBodyStore, "f").getSynchedL1BlockNumber(),
|
|
200
201
|
messagesSynchedTo: __classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getSynchedL1BlockNumber(),
|
|
201
202
|
});
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
205
|
_KVArchiverDataStore_blockStore = new WeakMap(), _KVArchiverDataStore_blockBodyStore = new WeakMap(), _KVArchiverDataStore_logStore = new WeakMap(), _KVArchiverDataStore_messageStore = new WeakMap(), _KVArchiverDataStore_contractClassStore = new WeakMap(), _KVArchiverDataStore_contractInstanceStore = new WeakMap(), _KVArchiverDataStore_contractArtifactStore = new WeakMap(), _KVArchiverDataStore_log = new WeakMap();
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXJjaGl2ZXJfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUva3ZfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFXMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QixZQUFZLEVBQWdCLEVBQUUsa0JBQTBCLElBQUk7UUFWNUQsa0RBQXdCO1FBQ3hCLHNEQUFnQztRQUNoQyxnREFBb0I7UUFDcEIsb0RBQTRCO1FBQzVCLDBEQUF3QztRQUN4Qyw2REFBOEM7UUFDOUMsNkRBQStDO1FBRS9DLG1DQUFPLGlCQUFpQixDQUFDLDJCQUEyQixDQUFDLEVBQUM7UUFHcEQsdUJBQUEsSUFBSSx1Q0FBbUIsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQUEsQ0FBQztRQUM5Qyx1QkFBQSxJQUFJLG1DQUFlLElBQUksVUFBVSxDQUFDLEVBQUUsRUFBRSx1QkFBQSxJQUFJLDJDQUFnQixDQUFDLE1BQUEsQ0FBQztRQUM1RCx1QkFBQSxJQUFJLGlDQUFhLElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSx1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
|
|
@@ -21,7 +21,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
21
21
|
*/
|
|
22
22
|
private l2BlockBodies;
|
|
23
23
|
/**
|
|
24
|
-
* An array containing all the
|
|
24
|
+
* An array containing all the tx effects in the L2 blocks that have been fetched so far.
|
|
25
25
|
*/
|
|
26
26
|
private txEffects;
|
|
27
27
|
/**
|
|
@@ -49,6 +49,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
49
49
|
private unconstrainedFunctions;
|
|
50
50
|
private contractInstances;
|
|
51
51
|
private lastL1BlockNewBlocks;
|
|
52
|
+
private lastL1BlockNewBlockBodies;
|
|
52
53
|
private lastL1BlockNewMessages;
|
|
53
54
|
private lastProvenL2BlockNumber;
|
|
54
55
|
constructor(
|
|
@@ -71,14 +72,14 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
71
72
|
* @param blockBodies - The L2 block bodies to be added to the store.
|
|
72
73
|
* @returns True if the operation is successful.
|
|
73
74
|
*/
|
|
74
|
-
addBlockBodies(blockBodies: Body
|
|
75
|
+
addBlockBodies(blockBodies: DataRetrieval<Body>): Promise<boolean>;
|
|
75
76
|
/**
|
|
76
77
|
* Gets block bodies that have the same txHashes as we supply.
|
|
77
78
|
*
|
|
78
79
|
* @param txsEffectsHashes - A list of txsEffectsHashes (body hashes).
|
|
79
80
|
* @returns The requested L2 block bodies
|
|
80
81
|
*/
|
|
81
|
-
getBlockBodies(txsEffectsHashes: Buffer[]): Promise<Body[]>;
|
|
82
|
+
getBlockBodies(txsEffectsHashes: Buffer[]): Promise<(Body | undefined)[]>;
|
|
82
83
|
/**
|
|
83
84
|
* Append new logs to the store's list.
|
|
84
85
|
* @param encryptedLogs - The encrypted logs to be added to the store.
|