@aztec/archiver 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a
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 +7 -5
- package/dest/archiver.d.ts +49 -14
- package/dest/archiver.d.ts.map +1 -1
- package/dest/archiver.js +216 -68
- package/dest/config.d.ts +4 -3
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +11 -16
- package/dest/errors.d.ts +19 -13
- package/dest/errors.d.ts.map +1 -1
- package/dest/errors.js +32 -16
- package/dest/factory.d.ts +12 -6
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +31 -21
- package/dest/index.d.ts +9 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +8 -1
- package/dest/l1/calldata_retriever.d.ts +2 -1
- package/dest/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/l1/calldata_retriever.js +13 -4
- package/dest/l1/trace_tx.d.ts +12 -66
- package/dest/l1/trace_tx.d.ts.map +1 -1
- package/dest/modules/contract_data_source_adapter.d.ts +25 -0
- package/dest/modules/contract_data_source_adapter.d.ts.map +1 -0
- package/dest/modules/contract_data_source_adapter.js +40 -0
- package/dest/modules/data_source_base.d.ts +71 -49
- package/dest/modules/data_source_base.d.ts.map +1 -1
- package/dest/modules/data_source_base.js +269 -143
- package/dest/modules/data_store_updater.d.ts +18 -6
- package/dest/modules/data_store_updater.d.ts.map +1 -1
- package/dest/modules/data_store_updater.js +108 -59
- package/dest/modules/instrumentation.js +3 -1
- package/dest/modules/l1_synchronizer.d.ts +6 -5
- package/dest/modules/l1_synchronizer.d.ts.map +1 -1
- package/dest/modules/l1_synchronizer.js +203 -100
- package/dest/modules/outbox_trees_resolver.d.ts +62 -0
- package/dest/modules/outbox_trees_resolver.d.ts.map +1 -0
- package/dest/modules/outbox_trees_resolver.js +162 -0
- package/dest/modules/validation.d.ts +4 -3
- package/dest/modules/validation.d.ts.map +1 -1
- package/dest/modules/validation.js +4 -4
- package/dest/store/block_store.d.ts +155 -98
- package/dest/store/block_store.d.ts.map +1 -1
- package/dest/store/block_store.js +473 -265
- package/dest/store/contract_class_store.d.ts +17 -3
- package/dest/store/contract_class_store.d.ts.map +1 -1
- package/dest/store/contract_class_store.js +17 -1
- package/dest/store/contract_instance_store.d.ts +28 -1
- package/dest/store/contract_instance_store.d.ts.map +1 -1
- package/dest/store/contract_instance_store.js +31 -0
- package/dest/store/data_stores.d.ts +68 -0
- package/dest/store/data_stores.d.ts.map +1 -0
- package/dest/store/data_stores.js +54 -0
- package/dest/store/function_names_cache.d.ts +17 -0
- package/dest/store/function_names_cache.d.ts.map +1 -0
- package/dest/store/function_names_cache.js +30 -0
- package/dest/store/l2_tips_cache.d.ts +13 -8
- package/dest/store/l2_tips_cache.d.ts.map +1 -1
- package/dest/store/l2_tips_cache.js +13 -96
- package/dest/store/log_store.d.ts +42 -40
- package/dest/store/log_store.d.ts.map +1 -1
- package/dest/store/log_store.js +257 -478
- package/dest/store/log_store_codec.d.ts +70 -0
- package/dest/store/log_store_codec.d.ts.map +1 -0
- package/dest/store/log_store_codec.js +101 -0
- package/dest/store/message_store.d.ts +9 -3
- package/dest/store/message_store.d.ts.map +1 -1
- package/dest/store/message_store.js +31 -1
- package/dest/test/fake_l1_state.d.ts +2 -1
- package/dest/test/fake_l1_state.d.ts.map +1 -1
- package/dest/test/fake_l1_state.js +25 -8
- package/dest/test/mock_l2_block_source.d.ts +47 -51
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +223 -185
- package/dest/test/noop_l1_archiver.d.ts +10 -6
- package/dest/test/noop_l1_archiver.d.ts.map +1 -1
- package/dest/test/noop_l1_archiver.js +19 -8
- package/package.json +14 -14
- package/src/archiver.ts +265 -72
- package/src/config.ts +12 -19
- package/src/errors.ts +46 -23
- package/src/factory.ts +38 -20
- package/src/index.ts +16 -1
- package/src/l1/calldata_retriever.ts +14 -4
- package/src/modules/contract_data_source_adapter.ts +55 -0
- package/src/modules/data_source_base.ts +335 -187
- package/src/modules/data_store_updater.ts +118 -61
- package/src/modules/instrumentation.ts +1 -1
- package/src/modules/l1_synchronizer.ts +278 -120
- package/src/modules/outbox_trees_resolver.ts +199 -0
- package/src/modules/validation.ts +8 -7
- package/src/store/block_store.ts +566 -323
- package/src/store/contract_class_store.ts +28 -2
- package/src/store/contract_instance_store.ts +43 -0
- package/src/store/data_stores.ts +104 -0
- package/src/store/function_names_cache.ts +37 -0
- package/src/store/l2_tips_cache.ts +16 -115
- package/src/store/log_store.ts +296 -650
- package/src/store/log_store_codec.ts +132 -0
- package/src/store/message_store.ts +35 -2
- package/src/test/fake_l1_state.ts +24 -14
- package/src/test/mock_l2_block_source.ts +271 -239
- package/src/test/noop_l1_archiver.ts +39 -8
- package/dest/store/kv_archiver_store.d.ts +0 -383
- package/dest/store/kv_archiver_store.d.ts.map +0 -1
- package/dest/store/kv_archiver_store.js +0 -501
- package/src/store/kv_archiver_store.ts +0 -728
|
@@ -2,14 +2,58 @@ import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/bra
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
4
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
import { type BlockData, BlockHash,
|
|
5
|
+
import { type BlockData, BlockHash, CommitteeAttestation, L2Block, type L2Tips, type ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
6
6
|
import { type CheckpointData, type CommonCheckpointData, L1PublishedData, type ProposedCheckpointData, type ProposedCheckpointInput, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
7
|
-
import { type
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import { type IndexedTxEffect, TxHash } from '@aztec/stdlib/tx';
|
|
8
|
+
export type { TxEffect, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
9
|
+
/** Reason a checkpoint was rejected during sync. */
|
|
10
|
+
export type RejectedCheckpointReason = 'invalid-attestations' | 'descends-from-invalid-attestations';
|
|
11
|
+
/**
|
|
12
|
+
* A checkpoint observed on L1 that the archiver decided not to ingest, recorded so that
|
|
13
|
+
* any descendant that builds on top of it can also be skipped (rather than throwing
|
|
14
|
+
* `InitialCheckpointNumberNotSequentialError` and looping). An entry is dropped via
|
|
15
|
+
* {@link BlockStore.removeRejectedCheckpointByArchiveRoot} once a checkpoint with the same
|
|
16
|
+
* archive root is later ingested as valid (e.g. it gathered enough attestations), which
|
|
17
|
+
* re-enables its descendants.
|
|
18
|
+
*/
|
|
19
|
+
export type RejectedCheckpoint = {
|
|
20
|
+
/** Checkpoint number this entry represents. */
|
|
21
|
+
checkpointNumber: CheckpointNumber;
|
|
22
|
+
/** Archive root produced by this rejected checkpoint (matched against descendants' `lastArchiveRoot`). */
|
|
23
|
+
archiveRoot: Fr;
|
|
24
|
+
/** `lastArchiveRoot` from this checkpoint's header (the ancestor it built on). */
|
|
25
|
+
parentArchiveRoot: Fr;
|
|
26
|
+
/** Slot number of the rejected checkpoint. */
|
|
27
|
+
slotNumber: SlotNumber;
|
|
28
|
+
/** L1 publication data for the rejected checkpoint (block number, hash, timestamp). */
|
|
29
|
+
l1: L1PublishedData;
|
|
30
|
+
/** Why the entry was recorded. */
|
|
31
|
+
reason: RejectedCheckpointReason;
|
|
32
|
+
};
|
|
10
33
|
export type RemoveCheckpointsResult = {
|
|
11
34
|
blocksRemoved: L2Block[] | undefined;
|
|
12
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Single-block lookup with the chain-tip `tag` variant of {@link BlockQuery} already resolved
|
|
38
|
+
* to a concrete block number. The `tag` branch is unrepresentable here so storage code does
|
|
39
|
+
* not need to handle it at runtime.
|
|
40
|
+
*/
|
|
41
|
+
export type ResolvedBlockQuery = {
|
|
42
|
+
number: BlockNumber;
|
|
43
|
+
} | {
|
|
44
|
+
hash: BlockHash;
|
|
45
|
+
} | {
|
|
46
|
+
archive: Fr;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Range lookup with the `epoch` variant of {@link BlocksQuery} already resolved to a
|
|
50
|
+
* `{ from, limit }` pair. Storage code never needs to map epoch numbers to block ranges.
|
|
51
|
+
*/
|
|
52
|
+
export type ResolvedBlocksQuery = {
|
|
53
|
+
from: BlockNumber;
|
|
54
|
+
limit: number;
|
|
55
|
+
onlyCheckpointed?: boolean;
|
|
56
|
+
};
|
|
13
57
|
/**
|
|
14
58
|
* LMDB-based block storage for the archiver.
|
|
15
59
|
*/
|
|
@@ -46,7 +90,7 @@ export declare class BlockStore {
|
|
|
46
90
|
/**
|
|
47
91
|
* Validates that blocks are sequential, have correct indexes, and chain via archive roots.
|
|
48
92
|
* This is the same validation used for both confirmed checkpoints (addCheckpoints) and
|
|
49
|
-
* proposed checkpoints (
|
|
93
|
+
* proposed checkpoints (addProposedCheckpoint).
|
|
50
94
|
*/
|
|
51
95
|
private validateCheckpointBlocks;
|
|
52
96
|
private addBlockToDatabase;
|
|
@@ -61,6 +105,12 @@ export declare class BlockStore {
|
|
|
61
105
|
getRangeOfCheckpoints(from: CheckpointNumber, limit: number): Promise<CheckpointData[]>;
|
|
62
106
|
/** Returns checkpoint data for all checkpoints whose slot falls within the given range (inclusive). */
|
|
63
107
|
getCheckpointDataForSlotRange(startSlot: SlotNumber, endSlot: SlotNumber): Promise<CheckpointData[]>;
|
|
108
|
+
/**
|
|
109
|
+
* Returns the checkpoint numbers for all checkpoints whose slot falls within the given range (inclusive).
|
|
110
|
+
* Lighter than {@link getCheckpointDataForSlotRange} when callers only need to identify which
|
|
111
|
+
* checkpoints fall in the range and will fetch full data for at most a few of them.
|
|
112
|
+
*/
|
|
113
|
+
getCheckpointNumbersForSlotRange(startSlot: SlotNumber, endSlot: SlotNumber): Promise<CheckpointNumber[]>;
|
|
64
114
|
private checkpointDataFromCheckpointStorage;
|
|
65
115
|
getBlocksForCheckpoint(checkpointNumber: CheckpointNumber): Promise<L2Block[] | undefined>;
|
|
66
116
|
/**
|
|
@@ -80,104 +130,69 @@ export declare class BlockStore {
|
|
|
80
130
|
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
81
131
|
getLatestCheckpointNumber(): Promise<CheckpointNumber>;
|
|
82
132
|
hasProposedCheckpoint(): Promise<boolean>;
|
|
83
|
-
/** Deletes
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Promotes the proposed checkpoint singleton to a confirmed checkpoint entry.
|
|
87
|
-
* This persists the checkpoint to the store, clears the proposed singleton, and updates the L1 sync point.
|
|
88
|
-
* Should only be called after the checkpoint has been validated.
|
|
89
|
-
* @param expectedArchiveRoot - The archive root to match against the proposed checkpoint, to guard against races.
|
|
90
|
-
*/
|
|
91
|
-
promoteProposedToCheckpointed(l1: L1PublishedData, attestations: CommitteeAttestation[], expectedArchiveRoot: Fr): Promise<void>;
|
|
92
|
-
/** Clears the proposed checkpoint if the given confirmed checkpoint number supersedes it. */
|
|
93
|
-
clearProposedCheckpointIfSuperseded(confirmedCheckpointNumber: CheckpointNumber): Promise<void>;
|
|
94
|
-
/** Returns the proposed checkpoint data, or undefined if no proposed checkpoint exists. No fallback to confirmed. */
|
|
95
|
-
getProposedCheckpointOnly(): Promise<ProposedCheckpointData | undefined>;
|
|
96
|
-
/**
|
|
97
|
-
* Gets the checkpoint at the proposed tip
|
|
98
|
-
* - pending checkpoint if it exists
|
|
99
|
-
* - fallsback to latest confirmed checkpoint otherwise
|
|
100
|
-
* @returns CommonCheckpointData
|
|
101
|
-
*/
|
|
102
|
-
getProposedCheckpoint(): Promise<CommonCheckpointData | undefined>;
|
|
103
|
-
private convertToProposedCheckpointData;
|
|
104
|
-
/**
|
|
105
|
-
* Attempts to get the proposedCheckpoint's number, if there is not one, then fallback to the latest confirmed checkpoint number.
|
|
106
|
-
* @returns CheckpointNumber
|
|
107
|
-
*/
|
|
108
|
-
getProposedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
109
|
-
/**
|
|
110
|
-
* Attempts to get the proposedCheckpoint's block number, if there is not one, then fallback to the checkpointed block number
|
|
111
|
-
* @returns BlockNumber
|
|
112
|
-
*/
|
|
113
|
-
getProposedCheckpointL2BlockNumber(): Promise<BlockNumber>;
|
|
114
|
-
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
115
|
-
/**
|
|
116
|
-
* Gets up to `limit` amount of Checkpointed L2 blocks starting from `from`.
|
|
117
|
-
* @param start - Number of the first block to return (inclusive).
|
|
118
|
-
* @param limit - The number of blocks to return.
|
|
119
|
-
* @returns The requested L2 blocks
|
|
120
|
-
*/
|
|
121
|
-
getCheckpointedBlocks(start: BlockNumber, limit: number): AsyncIterableIterator<CheckpointedL2Block>;
|
|
122
|
-
getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
|
|
123
|
-
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
124
|
-
/**
|
|
125
|
-
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
126
|
-
* @param start - Number of the first block to return (inclusive).
|
|
127
|
-
* @param limit - The number of blocks to return.
|
|
128
|
-
* @returns The requested L2 blocks
|
|
129
|
-
*/
|
|
130
|
-
getBlocks(start: BlockNumber, limit: number): AsyncIterableIterator<L2Block>;
|
|
131
|
-
/**
|
|
132
|
-
* Gets block metadata (without tx data) by block number.
|
|
133
|
-
* @param blockNumber - The number of the block to return.
|
|
134
|
-
* @returns The requested block data.
|
|
135
|
-
*/
|
|
136
|
-
getBlockData(blockNumber: BlockNumber): Promise<BlockData | undefined>;
|
|
133
|
+
/** Deletes all pending proposed checkpoints from storage. */
|
|
134
|
+
deleteProposedCheckpoints(): Promise<void>;
|
|
137
135
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
136
|
+
* Promotes a specific pending checkpoint to a confirmed checkpoint entry.
|
|
137
|
+
* This persists the checkpoint to the store, removes only that pending entry, and updates the L1 sync point.
|
|
138
|
+
* Remaining pending entries (e.g. N+1, N+2) are left intact — they chain off the just-promoted one.
|
|
139
|
+
* @param checkpointNumber - The checkpoint number to promote.
|
|
140
|
+
* @param l1 - L1 published data for the checkpoint.
|
|
141
|
+
* @param attestations - Committee attestations.
|
|
142
|
+
* @param expectedArchiveRoot - Archive root guard against races.
|
|
141
143
|
*/
|
|
142
|
-
|
|
144
|
+
promoteProposedToCheckpointed(checkpointNumber: CheckpointNumber, l1: L1PublishedData, attestations: CommitteeAttestation[], expectedArchiveRoot: Fr): Promise<void>;
|
|
143
145
|
/**
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
* @returns The requested L2 block.
|
|
146
|
+
* Returns the latest pending checkpoint (highest-numbered entry), or undefined if none.
|
|
147
|
+
* No fallback to confirmed.
|
|
147
148
|
*/
|
|
148
|
-
|
|
149
|
+
getLastProposedCheckpoint(): Promise<ProposedCheckpointData | undefined>;
|
|
150
|
+
/** Returns the pending checkpoint for a specific checkpoint number, or undefined if not found. */
|
|
151
|
+
getProposedCheckpointByNumber(n: CheckpointNumber): Promise<ProposedCheckpointData | undefined>;
|
|
149
152
|
/**
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
+
* Returns the pending checkpoint whose header slot matches the given slot, or undefined if not found.
|
|
154
|
+
* Iterates `#proposedCheckpoints` rather than reading an index because the map carries 0–1 entries
|
|
155
|
+
* in normal operation (bounded by the proposer pipelining window). Returns the first match.
|
|
153
156
|
*/
|
|
154
|
-
|
|
157
|
+
getProposedCheckpointBySlot(slot: SlotNumber): Promise<ProposedCheckpointData | undefined>;
|
|
155
158
|
/**
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
+
* Evicts all pending checkpoints with checkpoint number >= fromNumber.
|
|
160
|
+
* Used for divergent-mined-checkpoint cleanup: when L1 mines checkpoint N with a different archive,
|
|
161
|
+
* all pending >= N must be evicted since they chain off the now-invalid pending N.
|
|
159
162
|
*/
|
|
160
|
-
|
|
163
|
+
evictProposedCheckpointsFrom(fromNumber: CheckpointNumber): Promise<void>;
|
|
161
164
|
/**
|
|
162
|
-
* Gets
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
+
* Gets the checkpoint at the proposed tip:
|
|
166
|
+
* - latest pending checkpoint if any exist
|
|
167
|
+
* - fallsback to latest confirmed checkpoint otherwise
|
|
165
168
|
*/
|
|
166
|
-
|
|
169
|
+
getLastCheckpoint(): Promise<CommonCheckpointData | undefined>;
|
|
170
|
+
private convertToProposedCheckpointData;
|
|
167
171
|
/**
|
|
168
|
-
*
|
|
169
|
-
* @
|
|
170
|
-
* @returns The requested block header.
|
|
172
|
+
* Attempts to get the proposedCheckpoint's number, if there is not one, then fallback to the latest confirmed checkpoint number.
|
|
173
|
+
* @returns CheckpointNumber
|
|
171
174
|
*/
|
|
172
|
-
|
|
175
|
+
getProposedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
173
176
|
/**
|
|
174
|
-
*
|
|
175
|
-
* @
|
|
176
|
-
* @param limit - The number of blocks to return.
|
|
177
|
-
* @returns The requested L2 block headers
|
|
177
|
+
* Attempts to get the proposedCheckpoint's block number, if there is not one, then fallback to the checkpointed block number
|
|
178
|
+
* @returns BlockNumber
|
|
178
179
|
*/
|
|
179
|
-
|
|
180
|
+
getProposedCheckpointL2BlockNumber(): Promise<BlockNumber>;
|
|
181
|
+
/** Returns the checkpoint number that contains the given slot (or undefined if not found). */
|
|
182
|
+
getCheckpointNumberBySlot(slot: SlotNumber): Promise<CheckpointNumber | undefined>;
|
|
183
|
+
/** Gets a single L2 block matching the given resolved query. */
|
|
184
|
+
getBlock(query: ResolvedBlockQuery): Promise<L2Block | undefined>;
|
|
185
|
+
/** Gets a collection of L2 blocks for a resolved range. */
|
|
186
|
+
getBlocks(query: ResolvedBlocksQuery): Promise<L2Block[]>;
|
|
187
|
+
/** Gets single block metadata matching the given resolved query. */
|
|
188
|
+
getBlockData(query: ResolvedBlockQuery): Promise<BlockData | undefined>;
|
|
189
|
+
/** Gets a collection of block metadata entries for a resolved range. */
|
|
190
|
+
getBlocksData(query: ResolvedBlocksQuery): Promise<BlockData[]>;
|
|
191
|
+
private iterateBlocks;
|
|
192
|
+
private iterateBlocksData;
|
|
180
193
|
private getBlockStorages;
|
|
194
|
+
/** Resolves a ResolvedBlockQuery discriminant to a block number, or undefined if not found. */
|
|
195
|
+
getBlockNumber(query: ResolvedBlockQuery): Promise<BlockNumber | undefined>;
|
|
181
196
|
private getBlockDataFromBlockStorage;
|
|
182
197
|
private getBlockFromBlockStorage;
|
|
183
198
|
/**
|
|
@@ -186,18 +201,26 @@ export declare class BlockStore {
|
|
|
186
201
|
* @returns The requested tx effect with block info (or undefined if not found).
|
|
187
202
|
*/
|
|
188
203
|
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
189
|
-
/**
|
|
190
|
-
* Gets a receipt of a settled tx.
|
|
191
|
-
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
192
|
-
* @returns The requested tx receipt (or undefined if not found).
|
|
193
|
-
*/
|
|
194
|
-
getSettledTxReceipt(txHash: TxHash, l1Constants?: Pick<L1RollupConstants, 'epochDuration'>): Promise<TxReceipt | undefined>;
|
|
195
204
|
/**
|
|
196
205
|
* Looks up which block included the requested tx effect.
|
|
197
206
|
* @param txHash - The txHash of the tx.
|
|
198
207
|
* @returns The block number and index of the tx.
|
|
199
208
|
*/
|
|
200
209
|
getTxLocation(txHash: TxHash): Promise<[blockNumber: number, txIndex: number] | undefined>;
|
|
210
|
+
/**
|
|
211
|
+
* Batched, partial deserializer that fetches `noteHashes` and `nullifiers` (all of them) for the given
|
|
212
|
+
* txs. For each input txHash, returns a `[noteHashes, nullifiers]` tuple. Returns `[[], []]` for any
|
|
213
|
+
* unknown txHash. Preserves input order. Used by the log read path when `includeEffects` is set to
|
|
214
|
+
* attach effect data on demand without paying for a full {@link TxEffect} deserialization.
|
|
215
|
+
*
|
|
216
|
+
* The on-disk `IndexedTxEffect` layout starts with a fixed-length header
|
|
217
|
+
* (`blockHash(32) + l2BlockNumber(4) + txIndexInBlock(4) + slotNumber(4) + revertCode(1) + txHash(32) +
|
|
218
|
+
* transactionFee(32)` = 109 bytes), followed by `noteHashes` and `nullifiers` (both u8-length-prefixed `Fr`
|
|
219
|
+
* vectors). We
|
|
220
|
+
* skip the header, then read the two vectors, and stop — the large tail (`l2ToL1Msgs`,
|
|
221
|
+
* `publicDataWrites`, `privateLogs`, `publicLogs`, `contractClassLogs`) is never touched.
|
|
222
|
+
*/
|
|
223
|
+
getNoteHashesAndNullifiers(txHashes: TxHash[]): Promise<[Fr[], Fr[]][]>;
|
|
201
224
|
/**
|
|
202
225
|
* Looks up which block deployed a particular contract.
|
|
203
226
|
* @param contractAddress - The address of the contract to look up.
|
|
@@ -210,15 +233,37 @@ export declare class BlockStore {
|
|
|
210
233
|
*/
|
|
211
234
|
getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
|
|
212
235
|
getLatestL2BlockNumber(): Promise<BlockNumber>;
|
|
236
|
+
/**
|
|
237
|
+
* Resolves all five L2 chain tips (proposed, proposedCheckpoint, checkpointed, proven, finalized)
|
|
238
|
+
* in a single read-only transaction so the snapshot is internally consistent. Each underlying
|
|
239
|
+
* record is read at most once: latest block, latest confirmed checkpoint, and latest pending
|
|
240
|
+
* checkpoint are each loaded directly (no separate "find the number, then look up data" hop),
|
|
241
|
+
* the proven/finalized checkpoint singletons are read once and their storage entries are
|
|
242
|
+
* reused if they coincide with the latest checkpoint, and per-tip block hashes are deduped
|
|
243
|
+
* when two tips land on the same block (e.g. finalized == proven, or proposedCheckpoint falls
|
|
244
|
+
* back to checkpointed when no pending checkpoint exists).
|
|
245
|
+
*
|
|
246
|
+
* The result is guaranteed to satisfy `finalized <= proven <= checkpointed <= proposed` (by
|
|
247
|
+
* block number). Genesis is represented by `(INITIAL_L2_BLOCK_NUM - 1)` and the supplied
|
|
248
|
+
* `genesisBlockHash`, paired with the synthetic genesis checkpoint id.
|
|
249
|
+
*
|
|
250
|
+
* @param genesisBlockHash - Block hash to report for the synthetic pre-initial block (used when
|
|
251
|
+
* a tip is still at genesis).
|
|
252
|
+
*/
|
|
253
|
+
getL2TipsData(genesisBlockHash: BlockHash): Promise<L2Tips>;
|
|
213
254
|
/**
|
|
214
255
|
* Gets the most recent L1 block processed.
|
|
215
256
|
* @returns The L1 block that published the latest L2 block
|
|
216
257
|
*/
|
|
217
258
|
getSynchedL1BlockNumber(): Promise<bigint | undefined>;
|
|
218
259
|
setSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<boolean>;
|
|
219
|
-
/**
|
|
220
|
-
*
|
|
221
|
-
|
|
260
|
+
/**
|
|
261
|
+
* Adds a proposed checkpoint to the pending queue.
|
|
262
|
+
* Accepts proposed.checkpointNumber === latestTip + 1, where latestTip is the highest of
|
|
263
|
+
* confirmed and the highest pending checkpoint number.
|
|
264
|
+
* Computes archive and checkpointOutHash from the stored blocks.
|
|
265
|
+
*/
|
|
266
|
+
addProposedCheckpoint(proposed: ProposedCheckpointInput): Promise<void>;
|
|
222
267
|
getProvenCheckpointNumber(): Promise<CheckpointNumber>;
|
|
223
268
|
setProvenCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<boolean>;
|
|
224
269
|
getFinalizedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
@@ -233,5 +278,17 @@ export declare class BlockStore {
|
|
|
233
278
|
* @param status - The validation status to store.
|
|
234
279
|
*/
|
|
235
280
|
setPendingChainValidationStatus(status: ValidateCheckpointResult | undefined): Promise<void>;
|
|
281
|
+
/** Records a rejected-checkpoint entry, keyed by its own archive root. */
|
|
282
|
+
addRejectedCheckpoint(entry: RejectedCheckpoint): Promise<void>;
|
|
283
|
+
/** Returns the rejected-checkpoint entry with the given archive root, or undefined if not present. */
|
|
284
|
+
getRejectedCheckpointByArchiveRoot(archiveRoot: Fr): Promise<RejectedCheckpoint | undefined>;
|
|
285
|
+
/** Returns the rejected-checkpoint entry recorded for the given checkpoint number, or undefined if none. */
|
|
286
|
+
getRejectedCheckpointByNumber(checkpointNumber: CheckpointNumber): Promise<RejectedCheckpoint | undefined>;
|
|
287
|
+
/** Returns the highest checkpoint number recorded across all rejected entries, or `INITIAL_CHECKPOINT_NUMBER - 1` if none. */
|
|
288
|
+
getLatestRejectedCheckpointNumber(): Promise<CheckpointNumber>;
|
|
289
|
+
/** Removes a rejected-checkpoint entry by its archive root (used when an entry no longer matches L1). */
|
|
290
|
+
removeRejectedCheckpointByArchiveRoot(archiveRoot: Fr): Promise<void>;
|
|
291
|
+
private advanceSynchedL1BlockNumber;
|
|
292
|
+
private rejectedCheckpointFromStorage;
|
|
236
293
|
}
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS9ibG9ja19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuSCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQTZDLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssU0FBUyxFQUNkLFNBQVMsRUFFVCxvQkFBb0IsRUFFcEIsT0FBTyxFQUVQLEtBQUssTUFBTSxFQUNYLEtBQUssd0JBQXdCLEVBRzlCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVMLEtBQUssY0FBYyxFQUNuQixLQUFLLG9CQUFvQixFQUN6QixlQUFlLEVBQ2YsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyx1QkFBdUIsRUFDNUIsbUJBQW1CLEVBQ3BCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUVMLEtBQUssZUFBZSxFQUVwQixNQUFNLEVBR1AsTUFBTSxrQkFBa0IsQ0FBQztBQW1CMUIsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFZcEUsb0RBQW9EO0FBQ3BELE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxzQkFBc0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUVyRzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLCtDQUErQztJQUMvQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQywwR0FBMEc7SUFDMUcsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUNoQixrRkFBa0Y7SUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../src/store/block_store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAyB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAMpD,OAAO,KAAK,EAAE,iBAAiB,EAA6C,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,SAAS,EACd,SAAS,EAET,
|
|
1
|
+
{"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../src/store/block_store.ts"],"names":[],"mappings":"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"}
|