@aztec/archiver 0.0.0-test.1 → 0.0.1-commit.1142ef1
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 +27 -6
- package/dest/archiver/archiver.d.ts +204 -94
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +1616 -414
- package/dest/archiver/archiver_store.d.ts +178 -83
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +2373 -397
- package/dest/archiver/config.d.ts +7 -22
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +30 -14
- package/dest/archiver/errors.d.ts +33 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/errors.js +49 -0
- package/dest/archiver/index.d.ts +3 -4
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/index.js +1 -2
- package/dest/archiver/instrumentation.d.ts +14 -6
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +45 -41
- package/dest/archiver/kv_archiver_store/block_store.d.ts +98 -21
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +495 -86
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +4 -4
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.js +13 -19
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +12 -9
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.js +30 -16
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +81 -75
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +145 -83
- package/dest/archiver/kv_archiver_store/log_store.d.ts +12 -16
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +151 -114
- package/dest/archiver/kv_archiver_store/message_store.d.ts +25 -18
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +152 -49
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
- package/dest/archiver/l1/bin/retrieve-calldata.js +149 -0
- package/dest/archiver/l1/calldata_retriever.d.ts +112 -0
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/archiver/l1/calldata_retriever.js +471 -0
- package/dest/archiver/l1/data_retrieval.d.ts +90 -0
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
- package/dest/archiver/l1/data_retrieval.js +331 -0
- package/dest/archiver/l1/debug_tx.d.ts +19 -0
- package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
- package/dest/archiver/l1/debug_tx.js +73 -0
- package/dest/archiver/l1/spire_proposer.d.ts +70 -0
- package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
- package/dest/archiver/l1/spire_proposer.js +157 -0
- package/dest/archiver/l1/trace_tx.d.ts +97 -0
- package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
- package/dest/archiver/l1/trace_tx.js +91 -0
- package/dest/archiver/l1/types.d.ts +12 -0
- package/dest/archiver/l1/types.d.ts.map +1 -0
- package/dest/archiver/l1/types.js +3 -0
- package/dest/archiver/l1/validate_trace.d.ts +29 -0
- package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
- package/dest/archiver/l1/validate_trace.js +150 -0
- package/dest/archiver/structs/data_retrieval.d.ts +1 -1
- package/dest/archiver/structs/inbox_message.d.ts +15 -0
- package/dest/archiver/structs/inbox_message.d.ts.map +1 -0
- package/dest/archiver/structs/inbox_message.js +39 -0
- package/dest/archiver/structs/published.d.ts +2 -11
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/archiver/structs/published.js +1 -1
- package/dest/archiver/validation.d.ts +17 -0
- package/dest/archiver/validation.d.ts.map +1 -0
- package/dest/archiver/validation.js +98 -0
- package/dest/factory.d.ts +9 -14
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +22 -52
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/rpc/index.d.ts +2 -3
- package/dest/rpc/index.d.ts.map +1 -1
- package/dest/rpc/index.js +1 -4
- package/dest/test/index.d.ts +1 -1
- package/dest/test/mock_archiver.d.ts +16 -8
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +19 -14
- package/dest/test/mock_l1_to_l2_message_source.d.ts +9 -6
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +30 -7
- package/dest/test/mock_l2_block_source.d.ts +56 -13
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +196 -25
- package/dest/test/mock_structs.d.ts +10 -0
- package/dest/test/mock_structs.d.ts.map +1 -0
- package/dest/test/mock_structs.js +38 -0
- package/package.json +29 -30
- package/src/archiver/archiver.ts +1596 -512
- package/src/archiver/archiver_store.ts +205 -88
- package/src/archiver/archiver_store_test_suite.ts +2386 -354
- package/src/archiver/config.ts +38 -46
- package/src/archiver/errors.ts +85 -0
- package/src/archiver/index.ts +2 -3
- package/src/archiver/instrumentation.ts +65 -45
- package/src/archiver/kv_archiver_store/block_store.ts +668 -101
- package/src/archiver/kv_archiver_store/contract_class_store.ts +14 -24
- package/src/archiver/kv_archiver_store/contract_instance_store.ts +36 -28
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +197 -113
- package/src/archiver/kv_archiver_store/log_store.ts +204 -132
- package/src/archiver/kv_archiver_store/message_store.ts +213 -54
- package/src/archiver/l1/README.md +98 -0
- package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
- package/src/archiver/l1/calldata_retriever.ts +641 -0
- package/src/archiver/l1/data_retrieval.ts +512 -0
- package/src/archiver/l1/debug_tx.ts +99 -0
- package/src/archiver/l1/spire_proposer.ts +160 -0
- package/src/archiver/l1/trace_tx.ts +128 -0
- package/src/archiver/l1/types.ts +13 -0
- package/src/archiver/l1/validate_trace.ts +211 -0
- package/src/archiver/structs/inbox_message.ts +41 -0
- package/src/archiver/structs/published.ts +1 -11
- package/src/archiver/validation.ts +124 -0
- package/src/factory.ts +28 -69
- package/src/index.ts +1 -1
- package/src/rpc/index.ts +1 -5
- package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
- package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
- package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
- package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
- package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
- package/src/test/fixtures/trace_transaction-proxied.json +128 -0
- package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
- package/src/test/mock_archiver.ts +22 -16
- package/src/test/mock_l1_to_l2_message_source.ts +26 -8
- package/src/test/mock_l2_block_source.ts +254 -31
- package/src/test/mock_structs.ts +50 -0
- package/dest/archiver/data_retrieval.d.ts +0 -74
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/data_retrieval.js +0 -283
- package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
- package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/nullifier_store.js +0 -73
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +0 -49
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -175
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +0 -636
- package/src/archiver/data_retrieval.ts +0 -422
- package/src/archiver/kv_archiver_store/nullifier_store.ts +0 -97
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +0 -61
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +0 -801
|
@@ -1,64 +1,149 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { L1BlockId } from '@aztec/ethereum/l1-types';
|
|
2
|
+
import type { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import type { CustomRange } from '@aztec/kv-store';
|
|
2
5
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
7
|
+
import type { CheckpointedL2Block, L2BlockNew, ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
8
|
+
import type { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
9
|
+
import type { ContractClassPublic, ContractInstanceUpdateWithAddress, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UtilityFunctionWithMembershipProof } from '@aztec/stdlib/contract';
|
|
6
10
|
import type { GetContractClassLogsResponse, GetPublicLogsResponse } from '@aztec/stdlib/interfaces/client';
|
|
7
|
-
import type { LogFilter,
|
|
8
|
-
import type
|
|
9
|
-
import
|
|
10
|
-
import type {
|
|
11
|
-
import type {
|
|
11
|
+
import type { LogFilter, SiloedTag, Tag, TxScopedL2Log } from '@aztec/stdlib/logs';
|
|
12
|
+
import { BlockHeader, type IndexedTxEffect, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
13
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
14
|
+
import type { CheckpointData } from './kv_archiver_store/block_store.js';
|
|
15
|
+
import type { InboxMessage } from './structs/inbox_message.js';
|
|
12
16
|
/**
|
|
13
17
|
* Represents the latest L1 block processed by the archiver for various objects in L2.
|
|
14
18
|
*/
|
|
15
19
|
export type ArchiverL1SynchPoint = {
|
|
16
|
-
/** Number of the last L1 block that added a new L2
|
|
20
|
+
/** Number of the last L1 block that added a new L2 checkpoint metadata. */
|
|
17
21
|
blocksSynchedTo?: bigint;
|
|
18
|
-
/**
|
|
19
|
-
messagesSynchedTo?:
|
|
20
|
-
/** Number of the last L1 block that added a new proven block. */
|
|
21
|
-
provenLogsSynchedTo?: bigint;
|
|
22
|
+
/** Last L1 block checked for L1 to L2 messages. */
|
|
23
|
+
messagesSynchedTo?: L1BlockId;
|
|
22
24
|
};
|
|
23
25
|
/**
|
|
24
26
|
* Interface describing a data store to be used by the archiver to store all its relevant data
|
|
25
27
|
* (blocks, encrypted logs, aztec contract data extended contract data).
|
|
26
28
|
*/
|
|
27
29
|
export interface ArchiverDataStore {
|
|
30
|
+
/** Opens a new transaction to the underlying store and runs all operations within it. */
|
|
31
|
+
transactionAsync<T>(callback: () => Promise<T>): Promise<T>;
|
|
28
32
|
/**
|
|
29
33
|
* Append new blocks to the store's list.
|
|
30
34
|
* @param blocks - The L2 blocks to be added to the store and the last processed L1 block.
|
|
35
|
+
* @param opts - Options for the operation.
|
|
36
|
+
* @param opts.force - If true, the blocks will be added even if they have gaps.
|
|
31
37
|
* @returns True if the operation is successful.
|
|
32
38
|
*/
|
|
33
|
-
addBlocks(blocks:
|
|
39
|
+
addBlocks(blocks: L2BlockNew[], opts?: {
|
|
40
|
+
force?: boolean;
|
|
41
|
+
}): Promise<boolean>;
|
|
34
42
|
/**
|
|
35
|
-
*
|
|
43
|
+
* Appends new checkpoints, and their blocks to the store's collection
|
|
44
|
+
* @param checkpoints The collectionn of checkpoints to be added
|
|
45
|
+
* @returns True if the operation is successful
|
|
46
|
+
*/
|
|
47
|
+
addCheckpoints(checkpoints: PublishedCheckpoint[]): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Retrieves all blocks for the requested chackpoint
|
|
50
|
+
* @param checkpointNumber Retreieves all blocks for the given checkpoint
|
|
51
|
+
* @returns The collection of blocks for the requested checkpoint if available (undefined otherwise)
|
|
52
|
+
*/
|
|
53
|
+
getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<L2BlockNew[] | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Returns an array of checkpoint objects
|
|
56
|
+
* @param from The first checkpoint number to be retrieved
|
|
57
|
+
* @param limit The maximum number of chackpoints to retrieve
|
|
58
|
+
* @returns The array of requested checkpoint data objects
|
|
59
|
+
*/
|
|
60
|
+
getRangeOfCheckpoints(from: CheckpointNumber, limit: number): Promise<CheckpointData[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Unwinds checkpoints from the database
|
|
36
63
|
* @param from - The tip of the chain, passed for verification purposes,
|
|
37
64
|
* ensuring that we don't end up deleting something we did not intend
|
|
38
|
-
* @param
|
|
65
|
+
* @param checkpointsToUnwind - The number of checkpoints we are to unwind
|
|
39
66
|
* @returns True if the operation is successful
|
|
40
67
|
*/
|
|
41
|
-
|
|
68
|
+
unwindCheckpoints(from: CheckpointNumber, checkpointsToUnwind: number): Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Returns the block for the given number, or undefined if not exists.
|
|
71
|
+
* @param number - The block number to return.
|
|
72
|
+
*/
|
|
73
|
+
getCheckpointedBlock(number: number): Promise<CheckpointedL2Block | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* Gets up to `limit` amount of checkpointed L2 blocks starting from `from`.
|
|
76
|
+
* @param from - Number of the first block to return (inclusive).
|
|
77
|
+
* @param limit - The number of blocks to return.
|
|
78
|
+
* @returns The requested checkpointed L2 blocks.
|
|
79
|
+
*/
|
|
80
|
+
getCheckpointedBlocks(from: number, limit: number): Promise<CheckpointedL2Block[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Returns the block for the given hash, or undefined if not exists.
|
|
83
|
+
* @param blockHash - The block hash to return.
|
|
84
|
+
*/
|
|
85
|
+
getCheckpointedBlockByHash(blockHash: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
86
|
+
/**
|
|
87
|
+
* Returns the block for the given archive root, or undefined if not exists.
|
|
88
|
+
* @param archive - The archive root to return.
|
|
89
|
+
*/
|
|
90
|
+
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
91
|
+
/**
|
|
92
|
+
* Returns checkpoint data for the requested checkpoint number
|
|
93
|
+
* @param checkpointNumber - The checkpoint requested
|
|
94
|
+
* @returns The checkpoint data or undefined if not found
|
|
95
|
+
*/
|
|
96
|
+
getCheckpointData(checkpointNumber: CheckpointNumber): Promise<CheckpointData | undefined>;
|
|
97
|
+
/**
|
|
98
|
+
* Returns the number of the latest block
|
|
99
|
+
* @returns The number of the latest block
|
|
100
|
+
*/
|
|
101
|
+
getLatestBlockNumber(): Promise<BlockNumber>;
|
|
102
|
+
/**
|
|
103
|
+
* Returns the block for the given number, or undefined if not exists.
|
|
104
|
+
* @param number - The block number to return.
|
|
105
|
+
*/
|
|
106
|
+
getBlock(number: number): Promise<L2BlockNew | undefined>;
|
|
107
|
+
/**
|
|
108
|
+
* Returns the block for the given hash, or undefined if not exists.
|
|
109
|
+
* @param blockHash - The block hash to return.
|
|
110
|
+
*/
|
|
111
|
+
getBlockByHash(blockHash: Fr): Promise<L2BlockNew | undefined>;
|
|
42
112
|
/**
|
|
43
|
-
*
|
|
113
|
+
* Returns the block for the given archive root, or undefined if not exists.
|
|
114
|
+
* @param archive - The archive root to return.
|
|
115
|
+
*/
|
|
116
|
+
getBlockByArchive(archive: Fr): Promise<L2BlockNew | undefined>;
|
|
117
|
+
/**
|
|
118
|
+
* Gets up to `limit` amount of published L2 blocks starting from `from`.
|
|
44
119
|
* @param from - Number of the first block to return (inclusive).
|
|
45
120
|
* @param limit - The number of blocks to return.
|
|
46
121
|
* @returns The requested L2 blocks.
|
|
47
122
|
*/
|
|
48
|
-
getBlocks(from: number, limit: number): Promise<
|
|
123
|
+
getBlocks(from: number, limit: number): Promise<L2BlockNew[]>;
|
|
49
124
|
/**
|
|
50
125
|
* Gets up to `limit` amount of L2 block headers starting from `from`.
|
|
51
126
|
* @param from - Number of the first block to return (inclusive).
|
|
52
127
|
* @param limit - The number of blocks to return.
|
|
53
128
|
* @returns The requested L2 block headers.
|
|
54
129
|
*/
|
|
55
|
-
getBlockHeaders(from:
|
|
130
|
+
getBlockHeaders(from: BlockNumber, limit: number): Promise<BlockHeader[]>;
|
|
131
|
+
/**
|
|
132
|
+
* Returns the block header for the given hash, or undefined if not exists.
|
|
133
|
+
* @param blockHash - The block hash to return.
|
|
134
|
+
*/
|
|
135
|
+
getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined>;
|
|
136
|
+
/**
|
|
137
|
+
* Returns the block header for the given archive root, or undefined if not exists.
|
|
138
|
+
* @param archive - The archive root to return.
|
|
139
|
+
*/
|
|
140
|
+
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
56
141
|
/**
|
|
57
142
|
* Gets a tx effect.
|
|
58
|
-
* @param txHash - The
|
|
59
|
-
* @returns The requested tx effect (or undefined if not found).
|
|
143
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
144
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
60
145
|
*/
|
|
61
|
-
getTxEffect(txHash: TxHash): Promise<
|
|
146
|
+
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
62
147
|
/**
|
|
63
148
|
* Gets a receipt of a settled tx.
|
|
64
149
|
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
@@ -70,35 +155,20 @@ export interface ArchiverDataStore {
|
|
|
70
155
|
* @param blocks - The blocks for which to add the logs.
|
|
71
156
|
* @returns True if the operation is successful.
|
|
72
157
|
*/
|
|
73
|
-
addLogs(blocks:
|
|
74
|
-
deleteLogs(blocks:
|
|
75
|
-
/**
|
|
76
|
-
* Append new nullifiers to the store's list.
|
|
77
|
-
* @param blocks - The blocks for which to add the nullifiers.
|
|
78
|
-
* @returns True if the operation is successful.
|
|
79
|
-
*/
|
|
80
|
-
addNullifiers(blocks: L2Block[]): Promise<boolean>;
|
|
81
|
-
deleteNullifiers(blocks: L2Block[]): Promise<boolean>;
|
|
82
|
-
/**
|
|
83
|
-
* Returns the provided nullifier indexes scoped to the block
|
|
84
|
-
* they were first included in, or undefined if they're not present in the tree
|
|
85
|
-
* @param blockNumber Max block number to search for the nullifiers
|
|
86
|
-
* @param nullifiers Nullifiers to get
|
|
87
|
-
* @returns The block scoped indexes of the provided nullifiers, or undefined if the nullifier doesn't exist in the tree
|
|
88
|
-
*/
|
|
89
|
-
findNullifiersIndexesWithBlock(blockNumber: number, nullifiers: Fr[]): Promise<(InBlock<bigint> | undefined)[]>;
|
|
158
|
+
addLogs(blocks: L2BlockNew[]): Promise<boolean>;
|
|
159
|
+
deleteLogs(blocks: L2BlockNew[]): Promise<boolean>;
|
|
90
160
|
/**
|
|
91
161
|
* Append L1 to L2 messages to the store.
|
|
92
|
-
* @param messages - The L1 to L2 messages to be added to the store
|
|
162
|
+
* @param messages - The L1 to L2 messages to be added to the store.
|
|
93
163
|
* @returns True if the operation is successful.
|
|
94
164
|
*/
|
|
95
|
-
addL1ToL2Messages(messages:
|
|
165
|
+
addL1ToL2Messages(messages: InboxMessage[]): Promise<void>;
|
|
96
166
|
/**
|
|
97
|
-
* Gets L1 to L2 message (to be) included in a given
|
|
98
|
-
* @param
|
|
167
|
+
* Gets L1 to L2 message (to be) included in a given checkpoint.
|
|
168
|
+
* @param checkpointNumber - Checkpoint number to get messages for.
|
|
99
169
|
* @returns The L1 to L2 messages/leaves of the messages subtree (throws if not found).
|
|
100
170
|
*/
|
|
101
|
-
getL1ToL2Messages(
|
|
171
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]>;
|
|
102
172
|
/**
|
|
103
173
|
* Gets the L1 to L2 message index in the L1 to L2 message tree.
|
|
104
174
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
@@ -111,19 +181,16 @@ export interface ArchiverDataStore {
|
|
|
111
181
|
*/
|
|
112
182
|
getTotalL1ToL2MessageCount(): Promise<bigint>;
|
|
113
183
|
/**
|
|
114
|
-
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* @returns An array of private logs from the specified range of blocks.
|
|
184
|
+
/**
|
|
185
|
+
* Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
|
|
186
|
+
* array implies no logs match that tag.
|
|
118
187
|
*/
|
|
119
|
-
|
|
188
|
+
getPrivateLogsByTags(tags: SiloedTag[]): Promise<TxScopedL2Log[][]>;
|
|
120
189
|
/**
|
|
121
|
-
* Gets all logs that match any of the
|
|
122
|
-
*
|
|
123
|
-
* @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
|
|
124
|
-
* that tag.
|
|
190
|
+
* Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
|
|
191
|
+
* logs is returned. An empty array implies no logs match that tag.
|
|
125
192
|
*/
|
|
126
|
-
|
|
193
|
+
getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[]): Promise<TxScopedL2Log[][]>;
|
|
127
194
|
/**
|
|
128
195
|
* Gets public logs based on the provided filter.
|
|
129
196
|
* @param filter - The filter to apply to the logs.
|
|
@@ -140,27 +207,36 @@ export interface ArchiverDataStore {
|
|
|
140
207
|
* Gets the number of the latest L2 block processed.
|
|
141
208
|
* @returns The number of the latest L2 block processed.
|
|
142
209
|
*/
|
|
143
|
-
|
|
210
|
+
getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
|
|
144
211
|
/**
|
|
145
|
-
* Gets the number of the latest
|
|
146
|
-
* @returns The number of the latest
|
|
212
|
+
* Gets the number of the latest published checkpoint processed.
|
|
213
|
+
* @returns The number of the latest published checkpoint processed
|
|
147
214
|
*/
|
|
148
|
-
|
|
215
|
+
getSynchedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
149
216
|
/**
|
|
150
|
-
*
|
|
151
|
-
* @
|
|
217
|
+
* Gets the number of the latest proven checkpoint processed.
|
|
218
|
+
* @returns The number of the latest proven checkpoint processed.
|
|
152
219
|
*/
|
|
153
|
-
|
|
220
|
+
getProvenCheckpointNumber(): Promise<CheckpointNumber>;
|
|
154
221
|
/**
|
|
155
|
-
*
|
|
156
|
-
* @
|
|
222
|
+
* Returns the number of the most recent proven block
|
|
223
|
+
* @returns The number of the most recent proven block
|
|
157
224
|
*/
|
|
158
|
-
|
|
225
|
+
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
159
226
|
/**
|
|
160
|
-
* Stores the
|
|
227
|
+
* Stores the number of the latest proven checkpoint processed.
|
|
228
|
+
* @param checkpointNumber - The number of the latest proven checkpoint processed.
|
|
229
|
+
*/
|
|
230
|
+
setProvenCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<void>;
|
|
231
|
+
/**
|
|
232
|
+
* Stores the l1 block number that checkpoints have been synched until
|
|
161
233
|
* @param l1BlockNumber - The l1 block number
|
|
162
234
|
*/
|
|
163
|
-
|
|
235
|
+
setCheckpointSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void>;
|
|
236
|
+
/**
|
|
237
|
+
* Stores the l1 block that messages have been synched until
|
|
238
|
+
*/
|
|
239
|
+
setMessageSynchedL1Block(l1Block: L1BlockId): Promise<void>;
|
|
164
240
|
/**
|
|
165
241
|
* Gets the synch point of the archiver
|
|
166
242
|
*/
|
|
@@ -171,8 +247,8 @@ export interface ArchiverDataStore {
|
|
|
171
247
|
* @param blockNumber - Number of the L2 block the contracts were registered in.
|
|
172
248
|
* @returns True if the operation is successful.
|
|
173
249
|
*/
|
|
174
|
-
addContractClasses(data: ContractClassPublic[], bytecodeCommitments: Fr[], blockNumber:
|
|
175
|
-
deleteContractClasses(data: ContractClassPublic[], blockNumber:
|
|
250
|
+
addContractClasses(data: ContractClassPublic[], bytecodeCommitments: Fr[], blockNumber: BlockNumber): Promise<boolean>;
|
|
251
|
+
deleteContractClasses(data: ContractClassPublic[], blockNumber: BlockNumber): Promise<boolean>;
|
|
176
252
|
getBytecodeCommitment(contractClassId: Fr): Promise<Fr | undefined>;
|
|
177
253
|
/**
|
|
178
254
|
* Returns a contract class given its id, or undefined if not exists.
|
|
@@ -185,36 +261,55 @@ export interface ArchiverDataStore {
|
|
|
185
261
|
* @param blockNumber - Number of the L2 block the instances were deployed in.
|
|
186
262
|
* @returns True if the operation is successful.
|
|
187
263
|
*/
|
|
188
|
-
addContractInstances(data: ContractInstanceWithAddress[], blockNumber:
|
|
189
|
-
deleteContractInstances(data: ContractInstanceWithAddress[], blockNumber:
|
|
264
|
+
addContractInstances(data: ContractInstanceWithAddress[], blockNumber: BlockNumber): Promise<boolean>;
|
|
265
|
+
deleteContractInstances(data: ContractInstanceWithAddress[], blockNumber: BlockNumber): Promise<boolean>;
|
|
190
266
|
/**
|
|
191
267
|
* Add new contract instance updates
|
|
192
268
|
* @param data - List of contract updates to be added.
|
|
193
|
-
* @param
|
|
269
|
+
* @param timestamp - Timestamp at which the updates were scheduled.
|
|
194
270
|
* @returns True if the operation is successful.
|
|
195
271
|
*/
|
|
196
|
-
addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[],
|
|
197
|
-
deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[],
|
|
272
|
+
addContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
|
|
273
|
+
deleteContractInstanceUpdates(data: ContractInstanceUpdateWithAddress[], timestamp: UInt64): Promise<boolean>;
|
|
198
274
|
/**
|
|
199
275
|
* Adds private functions to a contract class.
|
|
200
276
|
*/
|
|
201
|
-
addFunctions(contractClassId: Fr, privateFunctions: ExecutablePrivateFunctionWithMembershipProof[],
|
|
277
|
+
addFunctions(contractClassId: Fr, privateFunctions: ExecutablePrivateFunctionWithMembershipProof[], utilityFunctions: UtilityFunctionWithMembershipProof[]): Promise<boolean>;
|
|
202
278
|
/**
|
|
203
|
-
* Returns a contract instance given its address and the given
|
|
279
|
+
* Returns a contract instance given its address and the given timestamp, or undefined if not exists.
|
|
204
280
|
* @param address - Address of the contract.
|
|
281
|
+
* @param timestamp - Timestamp to get the contract instance at. Contract updates might change the instance.
|
|
282
|
+
* @returns The contract instance or undefined if not found.
|
|
205
283
|
*/
|
|
206
|
-
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
284
|
+
getContractInstance(address: AztecAddress, timestamp: UInt64): Promise<ContractInstanceWithAddress | undefined>;
|
|
207
285
|
/** Returns the list of all class ids known by the archiver. */
|
|
208
286
|
getContractClassIds(): Promise<Fr[]>;
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
|
|
213
|
-
|
|
287
|
+
/** Register a public function signature, so it can be looked up by selector. */
|
|
288
|
+
registerContractFunctionSignatures(signatures: string[]): Promise<void>;
|
|
289
|
+
/** Looks up a public function name given a selector. */
|
|
290
|
+
getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
291
|
+
/** Estimates the size of the store in bytes. */
|
|
214
292
|
estimateSize(): Promise<{
|
|
215
293
|
mappingSize: number;
|
|
294
|
+
physicalFileSize: number;
|
|
216
295
|
actualSize: number;
|
|
217
296
|
numItems: number;
|
|
218
297
|
}>;
|
|
298
|
+
/** Backups the archiver db to the target folder. Returns the path to the db file. */
|
|
299
|
+
backupTo(path: string): Promise<string>;
|
|
300
|
+
/** Closes the underlying data store. */
|
|
301
|
+
close(): Promise<void>;
|
|
302
|
+
/** Deletes all L1 to L2 messages up until (excluding) the target checkpoint number. */
|
|
303
|
+
rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber: CheckpointNumber): Promise<void>;
|
|
304
|
+
/** Returns an async iterator to all L1 to L2 messages on the range. */
|
|
305
|
+
iterateL1ToL2Messages(range?: CustomRange<bigint>): AsyncIterableIterator<InboxMessage>;
|
|
306
|
+
/** Removes all L1 to L2 messages starting from the given index (inclusive). */
|
|
307
|
+
removeL1ToL2Messages(startIndex: bigint): Promise<void>;
|
|
308
|
+
/** Returns the last L1 to L2 message stored. */
|
|
309
|
+
getLastL1ToL2Message(): Promise<InboxMessage | undefined>;
|
|
310
|
+
/** Returns the last synced validation status of the pending chain. */
|
|
311
|
+
getPendingChainValidationStatus(): Promise<ValidateCheckpointResult | undefined>;
|
|
312
|
+
/** Sets the last synced validation status of the pending chain. */
|
|
313
|
+
setPendingChainValidationStatus(status: ValidateCheckpointResult | undefined): Promise<void>;
|
|
219
314
|
}
|
|
220
|
-
//# sourceMappingURL=
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9hcmNoaXZlcl9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQ1YsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUNqQywyQkFBMkIsRUFDM0IsNENBQTRDLEVBQzVDLGtDQUFrQyxFQUNuQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLE1BQU0sRUFBRSxLQUFLLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xHLE9BQU8sS0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,4 @@ import type { ArchiverDataStore } from './archiver_store.js';
|
|
|
5
5
|
* @param getStore - Returns an instance of a store that's already been initialized.
|
|
6
6
|
*/
|
|
7
7
|
export declare function describeArchiverDataStore(testName: string, getStore: () => ArchiverDataStore | Promise<ArchiverDataStore>): void;
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc3RvcmVfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2FyY2hpdmVyX3N0b3JlX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUNBLE9BQU8sNEJBQTRCLENBQUM7QUFLcEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0scUJBQXFCLENBQUM7QUFhbkY7OztHQUdHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUN2QyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUEwdEYvRCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archiver_store_test_suite.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store_test_suite.ts"],"names":[],"mappings":"AAuCA,OAAO,4BAA4B,CAAC;AAKpC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAanF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,QA0tF/D"}
|