@aztec-labs/archiver 6.0.0-rc.1 → 6.0.0-rc.3
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 -1
- package/dest/errors.d.ts +20 -1
- package/dest/errors.d.ts.map +1 -1
- package/dest/errors.js +22 -0
- package/dest/l1/bin/retrieve-calldata.js +14 -4
- package/dest/l1/calldata_retriever.d.ts +15 -17
- package/dest/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/l1/calldata_retriever.js +2 -9
- package/dest/l1/data_retrieval.d.ts +7 -3
- package/dest/l1/data_retrieval.d.ts.map +1 -1
- package/dest/l1/data_retrieval.js +14 -9
- package/dest/modules/data_store_updater.js +5 -5
- package/dest/modules/l1_synchronizer.d.ts +1 -1
- package/dest/modules/l1_synchronizer.d.ts.map +1 -1
- package/dest/modules/l1_synchronizer.js +228 -191
- package/dest/modules/validation.d.ts +14 -8
- package/dest/modules/validation.d.ts.map +1 -1
- package/dest/modules/validation.js +72 -22
- package/dest/store/block_store.d.ts +2 -1
- package/dest/store/block_store.d.ts.map +1 -1
- package/dest/store/block_store.js +34 -14
- package/dest/store/contract_class_store.d.ts +1 -1
- package/dest/store/contract_class_store.d.ts.map +1 -1
- package/dest/store/contract_class_store.js +4 -2
- package/dest/store/contract_instance_store.d.ts +5 -4
- package/dest/store/contract_instance_store.d.ts.map +1 -1
- package/dest/store/contract_instance_store.js +20 -9
- package/dest/test/fake_l1_state.d.ts +3 -1
- package/dest/test/fake_l1_state.d.ts.map +1 -1
- package/dest/test/fake_l1_state.js +4 -4
- package/package.json +13 -13
- package/src/errors.ts +32 -0
- package/src/l1/bin/retrieve-calldata.ts +15 -4
- package/src/l1/calldata_retriever.ts +14 -20
- package/src/l1/data_retrieval.ts +22 -14
- package/src/modules/data_store_updater.ts +4 -4
- package/src/modules/l1_synchronizer.ts +294 -261
- package/src/modules/validation.ts +87 -28
- package/src/store/block_store.ts +41 -13
- package/src/store/contract_class_store.ts +4 -4
- package/src/store/contract_instance_store.ts +24 -17
- package/src/test/fake_l1_state.ts +9 -3
package/README.md
CHANGED
|
@@ -84,7 +84,7 @@ Checkpoints are synced from the Rollup contract via `handleCheckpoints()`:
|
|
|
84
84
|
- Verify archive matches (checkpoint still in chain)
|
|
85
85
|
- Validate attestations (2/3 + 1 committee signatures required)
|
|
86
86
|
- Skip invalid checkpoints (see "Invalid Checkpoints" in Edge Cases)
|
|
87
|
-
- Store valid checkpoints with their blocks
|
|
87
|
+
- Store valid checkpoints with their blocks, refusing the whole batch if a checkpoint repeats a tx hash, either within itself or from an ancestor block (see "Events of Pruned or Replaced Checkpoints" in Edge Cases)
|
|
88
88
|
6. Update proven checkpoint again (may have advanced after storing new checkpoints)
|
|
89
89
|
7. Handle epoch prune if applicable
|
|
90
90
|
8. Check for checkpoints behind syncpoint (L1 reorg case)
|
|
@@ -156,6 +156,12 @@ This handles the case where an epoch's proof submission window has passed withou
|
|
|
156
156
|
3. Emits `L2PruneUnproven` event so subscribed subsystems can react
|
|
157
157
|
4. Local state now shows checkpoint 10 as latest
|
|
158
158
|
|
|
159
|
+
#### Events of Pruned or Replaced Checkpoints
|
|
160
|
+
|
|
161
|
+
`CheckpointProposed` logs are never removed from L1, so any re-read of an L1 range (a syncpoint rollback, a retried batch, a fresh sync from genesis) returns logs for checkpoints that have since been pruned or replaced. Before fetching blobs or validating anything, `processCheckpointProposedLogs` compares each log's archive against the Rollup's `archiveAt(checkpointNumber)` at the current L1 head and drops mismatches. `archiveAt` returns zero above the pending tip, so a pruned checkpoint is dropped even before a replacement lands at its number.
|
|
162
|
+
|
|
163
|
+
Consequently, a checkpoint the archiver refuses to ingest (for example one that fails `validateCheckpoint`, or one that repeats a tx hash already included in an ancestor block) stalls sync only while it is still canonical on L1. Once L1 prunes it, its log is filtered out on the next re-read and sync resumes. The L1 prune is lazy: it runs on the next `propose` or an explicit `prune()` call, not when the proof window closes, so `archiveAt` keeps returning the refused checkpoint's archive until the prune executes. The prune still happens when this node and every other node are stuck on the refused checkpoint: a proposer's cannot-build fallback (`tryVoteAndPruneWhenCannotBuild` in the sequencer) runs before `checkSync` once it passes the build-start deadline, and sends `prune()` whenever L1 reports `canPruneAtTime` (the escape-hatch voting path returns before this fallback, so no prune is sent from it while the escape hatch is open for the target epoch). A stuck archiver therefore does not prevent the prune, and sync resumes on the first re-read after it.
|
|
164
|
+
|
|
159
165
|
#### Checkpoints Behind Syncpoint
|
|
160
166
|
|
|
161
167
|
If after processing all logs the local checkpoint count is less than L1's pending checkpoint count, an L1 reorg may have added checkpoints _behind_ the syncpoint. The archiver rolls back the syncpoint to re-fetch.
|
package/dest/errors.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BlockNumber, CheckpointNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
2
|
import type { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
3
|
+
import type { TxHash } from '@aztec-labs/stdlib/tx';
|
|
3
4
|
export declare class NoBlobBodiesFoundError extends Error {
|
|
4
5
|
constructor(l2BlockNum: number);
|
|
5
6
|
}
|
|
@@ -26,6 +27,16 @@ export declare class BlockIndexNotSequentialError extends Error {
|
|
|
26
27
|
export declare class BlockArchiveNotConsistentError extends Error {
|
|
27
28
|
constructor(newBlockNumber: number, previousBlockNumber: number | undefined, newBlockArchive: Fr, previousBlockArchive: Fr);
|
|
28
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Thrown when a block lists a tx hash already included in a lower stored block. Blocks below the one being inserted
|
|
32
|
+
* are its ancestors, so the tx would be included twice (and its nullifiers repeated), which no valid chain allows.
|
|
33
|
+
*/
|
|
34
|
+
export declare class DuplicateTxHashError extends Error {
|
|
35
|
+
readonly txHash: TxHash;
|
|
36
|
+
readonly blockNumber: BlockNumber;
|
|
37
|
+
readonly existingBlockNumber: BlockNumber;
|
|
38
|
+
constructor(txHash: TxHash, blockNumber: BlockNumber, existingBlockNumber: BlockNumber);
|
|
39
|
+
}
|
|
29
40
|
export declare class CheckpointNotFoundError extends Error {
|
|
30
41
|
constructor(checkpointNumber: number);
|
|
31
42
|
}
|
|
@@ -146,4 +157,12 @@ export declare class UndecodableCheckpointAttestationsError extends Error {
|
|
|
146
157
|
readonly cause: unknown;
|
|
147
158
|
constructor(checkpointNumber: number, committeeSize: number, cause: unknown);
|
|
148
159
|
}
|
|
149
|
-
|
|
160
|
+
/** Thrown when a checkpoint's attestations tuple does not decode for its epoch committee. */
|
|
161
|
+
export declare class CheckpointAttestationsDecodeError extends Error {
|
|
162
|
+
readonly checkpointNumber: number;
|
|
163
|
+
readonly epoch: number;
|
|
164
|
+
readonly committeeSize: number;
|
|
165
|
+
readonly cause: unknown;
|
|
166
|
+
constructor(checkpointNumber: number, epoch: number, committeeSize: number, cause: unknown);
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELHFCQUFhLHNCQUF1QixTQUFRLEtBQUs7SUFDL0MsWUFBWSxVQUFVLEVBQUUsTUFBTSxFQUc3QjtDQUNGO0FBRUQscUJBQWEsNkJBQThCLFNBQVEsS0FBSztJQUN0RCxZQUFZLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBRy9EO0NBQ0Y7QUFFRCxxQkFBYSx5Q0FBMEMsU0FBUSxLQUFLO2FBRWhELG1CQUFtQixFQUFFLE1BQU07YUFDM0Isd0JBQXdCLEVBQUUsTUFBTSxHQUFHLFNBQVM7SUFGOUQsWUFDa0IsbUJBQW1CLEVBQUUsTUFBTSxFQUMzQix3QkFBd0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQVE3RDtDQUNGO0FBRUQscUJBQWEsa0NBQW1DLFNBQVEsS0FBSzthQUV6QyxtQkFBbUIsRUFBRSxnQkFBZ0I7YUFDckMsd0JBQXdCLEVBQUUsZ0JBQWdCLEdBQUcsU0FBUztJQUZ4RSxZQUNrQixtQkFBbUIsRUFBRSxnQkFBZ0IsRUFDckMsd0JBQXdCLEVBQUUsZ0JBQWdCLEdBQUcsU0FBUyxFQUN0RSxNQUFNLENBQUMsRUFBRSxVQUFVLEdBQUcsV0FBVyxFQU9sQztDQUNGO0FBRUQsb0dBQW9HO0FBQ3BHLHFCQUFhLHVDQUF3QyxTQUFRLEtBQUs7SUFDaEUsWUFDRSxXQUFXLEVBQUUsV0FBVyxFQUN4QixxQkFBcUIsRUFBRSxnQkFBZ0IsRUFDdkMsUUFBUSxFQUFFLGdCQUFnQixHQUFHLFNB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
|
package/dest/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dest/errors.js
CHANGED
|
@@ -45,6 +45,18 @@ export class BlockArchiveNotConsistentError extends Error {
|
|
|
45
45
|
this.name = 'BlockArchiveNotConsistentError';
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Thrown when a block lists a tx hash already included in a lower stored block. Blocks below the one being inserted
|
|
50
|
+
* are its ancestors, so the tx would be included twice (and its nullifiers repeated), which no valid chain allows.
|
|
51
|
+
*/ export class DuplicateTxHashError extends Error {
|
|
52
|
+
txHash;
|
|
53
|
+
blockNumber;
|
|
54
|
+
existingBlockNumber;
|
|
55
|
+
constructor(txHash, blockNumber, existingBlockNumber){
|
|
56
|
+
super(`Cannot insert block ${blockNumber}: tx ${txHash} is already included in block ${existingBlockNumber}`), this.txHash = txHash, this.blockNumber = blockNumber, this.existingBlockNumber = existingBlockNumber;
|
|
57
|
+
this.name = 'DuplicateTxHashError';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
48
60
|
export class CheckpointNotFoundError extends Error {
|
|
49
61
|
constructor(checkpointNumber){
|
|
50
62
|
super(`Failed to find expected checkpoint number ${checkpointNumber}`);
|
|
@@ -196,3 +208,13 @@ export class BlockNotFoundError extends Error {
|
|
|
196
208
|
this.name = 'UndecodableCheckpointAttestationsError';
|
|
197
209
|
}
|
|
198
210
|
}
|
|
211
|
+
/** Thrown when a checkpoint's attestations tuple does not decode for its epoch committee. */ export class CheckpointAttestationsDecodeError extends Error {
|
|
212
|
+
checkpointNumber;
|
|
213
|
+
epoch;
|
|
214
|
+
committeeSize;
|
|
215
|
+
cause;
|
|
216
|
+
constructor(checkpointNumber, epoch, committeeSize, cause){
|
|
217
|
+
super(`Attestations tuple of checkpoint ${checkpointNumber} does not decode for the committee of ${committeeSize} ` + `recorded for epoch ${epoch} (${cause instanceof Error ? cause.message : String(cause)})`), this.checkpointNumber = checkpointNumber, this.epoch = epoch, this.committeeSize = committeeSize, this.cause = cause;
|
|
218
|
+
this.name = 'CheckpointAttestationsDecodeError';
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -3,6 +3,7 @@ import { RollupAbi } from '@aztec-foundation/l1-artifacts/RollupAbi';
|
|
|
3
3
|
import { CheckpointNumber } from '@aztec-labs/foundation/branded-types';
|
|
4
4
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
5
5
|
import { createLogger } from '@aztec-labs/foundation/log';
|
|
6
|
+
import { CommitteeAttestation } from '@aztec-labs/stdlib/block';
|
|
6
7
|
import { createPublicClient, decodeEventLog, getAbiItem, http, toEventSelector } from 'viem';
|
|
7
8
|
import { mainnet } from 'viem/chains';
|
|
8
9
|
import { CalldataRetriever } from '../calldata_retriever.js';
|
|
@@ -75,7 +76,7 @@ async function main() {
|
|
|
75
76
|
}
|
|
76
77
|
logger.info(`Transaction found in block ${tx.blockNumber}`);
|
|
77
78
|
// Create CalldataRetriever
|
|
78
|
-
const retriever = new CalldataRetriever(publicClient, publicClient,
|
|
79
|
+
const retriever = new CalldataRetriever(publicClient, publicClient, undefined, logger, rollupAddress);
|
|
79
80
|
// Extract checkpoint number and hashes from transaction logs
|
|
80
81
|
logger.info('Decoding transaction to extract checkpoint number and hashes...');
|
|
81
82
|
const receipt = await publicClient.getTransactionReceipt({
|
|
@@ -133,9 +134,18 @@ async function main() {
|
|
|
133
134
|
logger.info(` Fee Recipient: ${result.header.feeRecipient.toString()}`);
|
|
134
135
|
logger.info(` Total Mana Used: ${result.header.totalManaUsed.toString()}`);
|
|
135
136
|
logger.info('');
|
|
136
|
-
|
|
137
|
-
logger.info(
|
|
138
|
-
logger.info(`
|
|
137
|
+
// The target committee size is only a guess at the epoch committee size, and escape-hatch tuples may not decode.
|
|
138
|
+
logger.info('Attestations (packed):');
|
|
139
|
+
logger.info(` Signature bitmap: ${result.verbatimAttestations.signatureIndices}`);
|
|
140
|
+
logger.info(` Signatures or addresses: ${result.verbatimAttestations.signaturesOrAddresses}`);
|
|
141
|
+
try {
|
|
142
|
+
const attestations = CommitteeAttestation.fromPacked(result.verbatimAttestations, targetCommitteeSize);
|
|
143
|
+
logger.info(` Decoded for a committee of ${targetCommitteeSize}:`);
|
|
144
|
+
logger.info(` Count: ${attestations.length}`);
|
|
145
|
+
logger.info(` Non-empty attestations: ${attestations.filter((a)=>!a.signature.isEmpty()).length}`);
|
|
146
|
+
} catch (err) {
|
|
147
|
+
logger.info(` Does not decode for a committee of ${targetCommitteeSize}: ${err instanceof Error ? err.message : err}`);
|
|
148
|
+
}
|
|
139
149
|
process.exit(0);
|
|
140
150
|
} catch (error) {
|
|
141
151
|
logger.error('Error retrieving block header:');
|
|
@@ -4,20 +4,20 @@ import { CheckpointNumber } from '@aztec-labs/foundation/branded-types';
|
|
|
4
4
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
5
5
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
6
6
|
import type { Logger } from '@aztec-labs/foundation/log';
|
|
7
|
-
import { CommitteeAttestation } from '@aztec-labs/stdlib/block';
|
|
8
7
|
import { CheckpointHeader } from '@aztec-labs/stdlib/rollup';
|
|
9
8
|
import { type Hex, type Transaction } from 'viem';
|
|
10
9
|
import type { ArchiverInstrumentation } from '../modules/instrumentation.js';
|
|
11
|
-
/**
|
|
12
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Checkpoint data extracted from a propose calldata. The attestations tuple is left packed, since decoding it
|
|
12
|
+
* depends on the checkpoint's epoch (escape-hatch proposers may post an arbitrary tuple).
|
|
13
|
+
*/
|
|
14
|
+
export type RawCheckpointFromCalldata = {
|
|
13
15
|
checkpointNumber: CheckpointNumber;
|
|
14
16
|
archiveRoot: Fr;
|
|
15
17
|
header: CheckpointHeader;
|
|
16
|
-
attestations: CommitteeAttestation[];
|
|
17
18
|
/**
|
|
18
|
-
* The exact packed `CommitteeAttestations` tuple as it appears in the propose calldata
|
|
19
|
-
*
|
|
20
|
-
* the on-chain `attestationsHash`.
|
|
19
|
+
* The exact packed `CommitteeAttestations` tuple as it appears in the propose calldata. It is what the
|
|
20
|
+
* rollup hashed into `attestationsHash`, and repacking decoded attestations does not reproduce it.
|
|
21
21
|
*/
|
|
22
22
|
verbatimAttestations: ViemCommitteeAttestations;
|
|
23
23
|
blockHash: string;
|
|
@@ -31,7 +31,6 @@ type CheckpointData = {
|
|
|
31
31
|
export declare class CalldataRetriever {
|
|
32
32
|
private readonly publicClient;
|
|
33
33
|
private readonly debugClient;
|
|
34
|
-
private readonly targetCommitteeSize;
|
|
35
34
|
private readonly instrumentation;
|
|
36
35
|
private readonly logger;
|
|
37
36
|
private readonly rollupAddress;
|
|
@@ -39,7 +38,7 @@ export declare class CalldataRetriever {
|
|
|
39
38
|
private static readonly traceFailureWarnedTxHashes;
|
|
40
39
|
/** Clears the trace-failure warned set. For testing only. */
|
|
41
40
|
static resetTraceFailureWarnedForTesting(): void;
|
|
42
|
-
constructor(publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient,
|
|
41
|
+
constructor(publicClient: ViemPublicClient, debugClient: ViemPublicDebugClient, instrumentation: ArchiverInstrumentation | undefined, logger: Logger, rollupAddress: EthAddress);
|
|
43
42
|
private getSignatureContext;
|
|
44
43
|
/**
|
|
45
44
|
* Gets checkpoint header and metadata from the calldata of an L1 transaction.
|
|
@@ -53,12 +52,12 @@ export declare class CalldataRetriever {
|
|
|
53
52
|
getCheckpointFromRollupTx(txHash: `0x${string}`, _blobHashes: Buffer[], checkpointNumber: CheckpointNumber, expectedHashes: {
|
|
54
53
|
attestationsHash: Hex;
|
|
55
54
|
payloadDigest: Hex;
|
|
56
|
-
}): Promise<
|
|
55
|
+
}): Promise<RawCheckpointFromCalldata>;
|
|
57
56
|
/** Gets checkpoint data from a transaction by trying decode strategies then falling back to trace. */
|
|
58
57
|
protected getCheckpointFromTx(tx: Transaction, checkpointNumber: CheckpointNumber, expectedHashes: {
|
|
59
58
|
attestationsHash: Hex;
|
|
60
59
|
payloadDigest: Hex;
|
|
61
|
-
}): Promise<
|
|
60
|
+
}): Promise<RawCheckpointFromCalldata>;
|
|
62
61
|
/**
|
|
63
62
|
* Attempts to decode a transaction as a Spire Proposer multicall wrapper.
|
|
64
63
|
* If successful, iterates all wrapped calls and validates each as either multicall3
|
|
@@ -72,7 +71,7 @@ export declare class CalldataRetriever {
|
|
|
72
71
|
protected tryDecodeSpireProposer(tx: Transaction, expectedHashes: {
|
|
73
72
|
attestationsHash: Hex;
|
|
74
73
|
payloadDigest: Hex;
|
|
75
|
-
}, checkpointNumber: CheckpointNumber, blockHash: Hex): Promise<
|
|
74
|
+
}, checkpointNumber: CheckpointNumber, blockHash: Hex): Promise<RawCheckpointFromCalldata | undefined>;
|
|
76
75
|
/**
|
|
77
76
|
* Attempts to decode transaction input as multicall3 and extract propose calldata.
|
|
78
77
|
* Finds all calls matching the rollup address and propose selector, then decodes
|
|
@@ -90,7 +89,7 @@ export declare class CalldataRetriever {
|
|
|
90
89
|
}, expectedHashes: {
|
|
91
90
|
attestationsHash: Hex;
|
|
92
91
|
payloadDigest: Hex;
|
|
93
|
-
}, checkpointNumber: CheckpointNumber, blockHash: Hex):
|
|
92
|
+
}, checkpointNumber: CheckpointNumber, blockHash: Hex): RawCheckpointFromCalldata | undefined;
|
|
94
93
|
/**
|
|
95
94
|
* Attempts to decode transaction as a direct propose call to the rollup contract.
|
|
96
95
|
* Decodes, verifies hashes, and builds checkpoint data in a single pass.
|
|
@@ -107,7 +106,7 @@ export declare class CalldataRetriever {
|
|
|
107
106
|
}, expectedHashes: {
|
|
108
107
|
attestationsHash: Hex;
|
|
109
108
|
payloadDigest: Hex;
|
|
110
|
-
}, checkpointNumber: CheckpointNumber, blockHash: Hex):
|
|
109
|
+
}, checkpointNumber: CheckpointNumber, blockHash: Hex): RawCheckpointFromCalldata | undefined;
|
|
111
110
|
/**
|
|
112
111
|
* Uses debug/trace RPC to extract the actual calldata from the successful propose call.
|
|
113
112
|
* This is the definitive fallback that works for any transaction pattern.
|
|
@@ -128,11 +127,10 @@ export declare class CalldataRetriever {
|
|
|
128
127
|
protected tryDecodeAndVerifyPropose(proposeCalldata: Hex, expectedHashes: {
|
|
129
128
|
attestationsHash: Hex;
|
|
130
129
|
payloadDigest: Hex;
|
|
131
|
-
}, checkpointNumber: CheckpointNumber, blockHash: Hex):
|
|
130
|
+
}, checkpointNumber: CheckpointNumber, blockHash: Hex): RawCheckpointFromCalldata | undefined;
|
|
132
131
|
/** Computes the keccak256 hash of ABI-encoded CommitteeAttestations. */
|
|
133
132
|
private computeAttestationsHash;
|
|
134
133
|
/** Computes the keccak256 payload digest from the checkpoint header, archive root, and fee asset price modifier. */
|
|
135
134
|
private computePayloadDigest;
|
|
136
135
|
}
|
|
137
|
-
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxLQUFLLHlCQUF5QixFQUcvQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxXQUFXLEVBQXFFLE1BQU0sTUFBTSxDQUFDO0FBRXJILE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFNN0UsdURBQXVEO0FBQ3ZELEtBQUssY0FBYyxHQUFHO0lBQ3BCLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDaEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDOzs7O09BSUc7SUFDSCxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQztJQUNoRCxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztDQUMvQixDQUFDO0FBRUY7Ozs7R0FJRztB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
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGRhdGFfcmV0cmlldmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbDEvY2FsbGRhdGFfcmV0cmlldmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxLQUFLLHlCQUF5QixFQUcvQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxXQUFXLEVBQXFFLE1BQU0sTUFBTSxDQUFDO0FBRXJILE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFNN0U7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLHlCQUF5QixHQUFHO0lBQ3RDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDaEIsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCOzs7T0FHRztJQUNILG9CQUFvQixFQUFFLHlCQUF5QixDQUFDO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gscUJBQWEsaUJBQWlCO0lBVTFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../src/l1/calldata_retriever.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"calldata_retriever.d.ts","sourceRoot":"","sources":["../../src/l1/calldata_retriever.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { MULTI_CALL_3_ADDRESS, computeAttestationsHash } from '@aztec-labs/ether
|
|
|
3
3
|
import { LruSet } from '@aztec-labs/foundation/collection';
|
|
4
4
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
5
5
|
import { EthAddress } from '@aztec-labs/foundation/eth-address';
|
|
6
|
-
import { CommitteeAttestation } from '@aztec-labs/stdlib/block';
|
|
7
6
|
import { computeCheckpointPayloadDigest } from '@aztec-labs/stdlib/checkpoint';
|
|
8
7
|
import { CheckpointHeader } from '@aztec-labs/stdlib/rollup';
|
|
9
8
|
import { decodeFunctionData, hexToBytes, multicall3Abi, toFunctionSelector } from 'viem';
|
|
@@ -17,7 +16,6 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
17
16
|
*/ export class CalldataRetriever {
|
|
18
17
|
publicClient;
|
|
19
18
|
debugClient;
|
|
20
|
-
targetCommitteeSize;
|
|
21
19
|
instrumentation;
|
|
22
20
|
logger;
|
|
23
21
|
rollupAddress;
|
|
@@ -25,10 +23,9 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
25
23
|
/** Clears the trace-failure warned set. For testing only. */ static resetTraceFailureWarnedForTesting() {
|
|
26
24
|
CalldataRetriever.traceFailureWarnedTxHashes.clear();
|
|
27
25
|
}
|
|
28
|
-
constructor(publicClient, debugClient,
|
|
26
|
+
constructor(publicClient, debugClient, instrumentation, logger, rollupAddress){
|
|
29
27
|
this.publicClient = publicClient;
|
|
30
28
|
this.debugClient = debugClient;
|
|
31
|
-
this.targetCommitteeSize = targetCommitteeSize;
|
|
32
29
|
this.instrumentation = instrumentation;
|
|
33
30
|
this.logger = logger;
|
|
34
31
|
this.rollupAddress = rollupAddress;
|
|
@@ -348,21 +345,17 @@ import { getSuccessfulCallsFromTrace } from './trace_tx.js';
|
|
|
348
345
|
});
|
|
349
346
|
return undefined;
|
|
350
347
|
}
|
|
351
|
-
const attestations = CommitteeAttestation.fromPacked(verbatimAttestations, this.targetCommitteeSize);
|
|
352
348
|
this.logger.trace(`Validated and decoded propose calldata for checkpoint ${checkpointNumber}`, {
|
|
353
349
|
checkpointNumber,
|
|
354
350
|
archive: decodedArgs.archive,
|
|
355
351
|
header: decodedArgs.header,
|
|
356
352
|
l1BlockHash: blockHash,
|
|
357
|
-
|
|
358
|
-
verbatimAttestations,
|
|
359
|
-
targetCommitteeSize: this.targetCommitteeSize
|
|
353
|
+
verbatimAttestations
|
|
360
354
|
});
|
|
361
355
|
return {
|
|
362
356
|
checkpointNumber,
|
|
363
357
|
archiveRoot,
|
|
364
358
|
header,
|
|
365
|
-
attestations,
|
|
366
359
|
verbatimAttestations,
|
|
367
360
|
blockHash,
|
|
368
361
|
feeAssetPriceModifier
|
|
@@ -22,7 +22,6 @@ type RetrievedCheckpointBase = {
|
|
|
22
22
|
l1: L1PublishedData;
|
|
23
23
|
chainId: Fr;
|
|
24
24
|
version: Fr;
|
|
25
|
-
attestations: CommitteeAttestation[];
|
|
26
25
|
/**
|
|
27
26
|
* The exact packed `CommitteeAttestations` tuple from the propose calldata, carried verbatim: it is what
|
|
28
27
|
* the rollup hashed into `attestationsHash`, and repacking the decoded attestations does not reproduce it.
|
|
@@ -31,15 +30,20 @@ type RetrievedCheckpointBase = {
|
|
|
31
30
|
};
|
|
32
31
|
/** Checkpoint data as retrieved from L1 calldata and blob data. */
|
|
33
32
|
export type RetrievedCheckpoint = RetrievedCheckpointBase & {
|
|
33
|
+
attestations: CommitteeAttestation[];
|
|
34
34
|
checkpointBlobData: CheckpointBlobData;
|
|
35
35
|
};
|
|
36
|
-
/** Checkpoint data retrieved from L1 calldata only, without blob data. */
|
|
36
|
+
/** Checkpoint data retrieved from L1 calldata only, without blob data or decoded attestations. */
|
|
37
37
|
export type RetrievedCheckpointFromCalldata = RetrievedCheckpointBase & {
|
|
38
38
|
/** Versioned blob hashes from the checkpoint proposed event. */
|
|
39
39
|
blobHashes: Buffer[];
|
|
40
40
|
/** Parent beacon block root from the L1 block, used for blob fetching. */
|
|
41
41
|
parentBeaconBlockRoot: string | undefined;
|
|
42
42
|
};
|
|
43
|
+
/** A calldata-only checkpoint with its attestations decoded for its epoch committee. */
|
|
44
|
+
export type ResolvedCheckpointFromCalldata = RetrievedCheckpointFromCalldata & {
|
|
45
|
+
attestations: CommitteeAttestation[];
|
|
46
|
+
};
|
|
43
47
|
export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archiveRoot, feeAssetPriceModifier, header: checkpointHeader, checkpointBlobData, l1, chainId, version, attestations, verbatimAttestations }: RetrievedCheckpoint): Promise<PublishedCheckpoint>;
|
|
44
48
|
/**
|
|
45
49
|
* Fetches checkpoint calldata from the rollup contract without fetching blob data.
|
|
@@ -102,4 +106,4 @@ export type SubmitEpochProof = {
|
|
|
102
106
|
*/
|
|
103
107
|
export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
|
|
104
108
|
export {};
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMS9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFFTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFHTCxLQUFLLGFBQWEsRUFFbEIsS0FBSyxjQUFjLEVBQ25CLEtBQUsseUJBQXlCLEVBRy9CLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQXdDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFRLG9CQUFvQixFQUFXLE1BQU0sMEJBQTBCLENBQUM7QUFDL0UsT0FBTyxFQUFjLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQThDLE1BQU0sTUFBTSxDQUFDO0FBRzVFLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxLQUFL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/l1/data_retrieval.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAEL,KAAK,kBAAkB,EAIxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAG/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAwC,MAAM,sCAAsC,CAAC;AAC9G,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAQ,oBAAoB,EAAW,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAc,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EAAE,KAAK,GAAG,EAA8C,MAAM,MAAM,CAAC;AAG5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,KAAK,uBAAuB,GAAG;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,EAAE,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;IACZ
|
|
1
|
+
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/l1/data_retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,15 +106,13 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
106
106
|
const lastLog = checkpointProposedLogs.at(-1);
|
|
107
107
|
logger.debug(`Got ${checkpointProposedLogs.length} processed logs for checkpoints ${checkpointProposedLogs[0].args.checkpointNumber}-${lastLog.args.checkpointNumber} between L1 blocks ${searchStartBlock}-${searchEndBlock}`);
|
|
108
108
|
if (rollupConstants === undefined) {
|
|
109
|
-
const [chainId, version
|
|
109
|
+
const [chainId, version] = await Promise.all([
|
|
110
110
|
publicClient.getChainId(),
|
|
111
|
-
rollup.getVersion()
|
|
112
|
-
rollup.getTargetCommitteeSize()
|
|
111
|
+
rollup.getVersion()
|
|
113
112
|
]);
|
|
114
113
|
rollupConstants = {
|
|
115
114
|
chainId: new Fr(chainId),
|
|
116
|
-
version: new Fr(version)
|
|
117
|
-
targetCommitteeSize
|
|
115
|
+
version: new Fr(version)
|
|
118
116
|
};
|
|
119
117
|
}
|
|
120
118
|
const newCheckpoints = await processCheckpointProposedLogs(rollup, publicClient, debugClient, checkpointProposedLogs, rollupConstants, instrumentation, logger);
|
|
@@ -129,16 +127,23 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
129
127
|
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
130
128
|
* @param debugClient - The viem debug client to use for trace/debug RPC methods (optional).
|
|
131
129
|
* @param logs - CheckpointProposed logs.
|
|
132
|
-
* @param rollupConstants - The rollup constants (chainId, version
|
|
130
|
+
* @param rollupConstants - The rollup constants (chainId, version).
|
|
133
131
|
* @param instrumentation - The archiver instrumentation instance.
|
|
134
132
|
* @param logger - The logger instance.
|
|
135
133
|
* @returns An array of calldata-only checkpoints.
|
|
136
|
-
*/ async function processCheckpointProposedLogs(rollup, publicClient, debugClient, logs, { chainId, version
|
|
134
|
+
*/ async function processCheckpointProposedLogs(rollup, publicClient, debugClient, logs, { chainId, version }, instrumentation, logger) {
|
|
137
135
|
const retrievedCheckpoints = [];
|
|
138
|
-
const calldataRetriever = new CalldataRetriever(publicClient, debugClient,
|
|
136
|
+
const calldataRetriever = new CalldataRetriever(publicClient, debugClient, instrumentation, logger, EthAddress.fromString(rollup.address));
|
|
139
137
|
await asyncPool(10, logs, async (log)=>{
|
|
140
138
|
const checkpointNumber = log.args.checkpointNumber;
|
|
141
139
|
const archive = log.args.archive;
|
|
140
|
+
// CheckpointProposed logs stay on L1 after their checkpoint is pruned or replaced, so every re-read of a range
|
|
141
|
+
// (a sync point rewind, a fresh sync from genesis) sees them. Rollup.archiveAt only answers up to the current
|
|
142
|
+
// pending tip, so a pruned or replaced checkpoint mismatches here and is dropped before its blobs are fetched or
|
|
143
|
+
// it is validated. A checkpoint the archiver refuses to ingest therefore blocks sync only while it is still
|
|
144
|
+
// canonical: the L1 prune is lazy (it runs on the next propose or an explicit prune() call), and until then
|
|
145
|
+
// archiveAt keeps returning the refused checkpoint's archive. Proposers send prune() from their cannot-build
|
|
146
|
+
// fallback even when their own sync is stuck, so the refused checkpoint is eventually dropped here.
|
|
142
147
|
const archiveFromChain = await rollup.archiveAt(checkpointNumber);
|
|
143
148
|
const blobHashes = log.args.versionedBlobHashes;
|
|
144
149
|
if (archive.equals(archiveFromChain)) {
|
|
@@ -161,7 +166,7 @@ export async function retrievedToPublishedCheckpoint({ checkpointNumber, archive
|
|
|
161
166
|
l1BlockNumber: log.l1BlockNumber,
|
|
162
167
|
checkpointNumber,
|
|
163
168
|
archive: archive.toString(),
|
|
164
|
-
|
|
169
|
+
verbatimAttestations: checkpoint.verbatimAttestations
|
|
165
170
|
});
|
|
166
171
|
} else {
|
|
167
172
|
logger.warn(`Ignoring checkpoint ${checkpointNumber} due to archive root mismatch`, {
|
|
@@ -409,16 +409,16 @@ import { prepareBlockTxEffectsTreeData } from '../store/tx_effect_tree_data.js';
|
|
|
409
409
|
*/ async removeCheckpointsAfter(checkpointNumber) {
|
|
410
410
|
const result = await this.stores.db.transactionAsync(async ()=>{
|
|
411
411
|
const { blocksRemoved = [] } = await this.stores.blocks.removeCheckpointsAfter(checkpointNumber);
|
|
412
|
-
const
|
|
412
|
+
const [, logsDeleted, ...contractDataRemoved] = await Promise.all([
|
|
413
413
|
// Prune rolls back to the last proven block, which is by definition valid
|
|
414
414
|
this.stores.blocks.setPendingChainValidationStatus({
|
|
415
415
|
valid: true
|
|
416
416
|
}),
|
|
417
|
+
this.stores.logs.deleteLogs(blocksRemoved),
|
|
417
418
|
// Remove contract data for all blocks being removed
|
|
418
|
-
...blocksRemoved.map((block)=>this.removeContractDataFromDb(block))
|
|
419
|
-
this.stores.logs.deleteLogs(blocksRemoved)
|
|
419
|
+
...blocksRemoved.map((block)=>this.removeContractDataFromDb(block))
|
|
420
420
|
]);
|
|
421
|
-
return
|
|
421
|
+
return logsDeleted && contractDataRemoved.every(Boolean);
|
|
422
422
|
});
|
|
423
423
|
await this.l2FrontierCache?.refresh();
|
|
424
424
|
return result;
|
|
@@ -541,7 +541,7 @@ import { prepareBlockTxEffectsTreeData } from '../store/tx_effect_tree_data.js';
|
|
|
541
541
|
if (operation == 0) {
|
|
542
542
|
return await this.stores.contractInstances.addContractInstances(contractInstances, blockNum);
|
|
543
543
|
} else if (operation == 1) {
|
|
544
|
-
return await this.stores.contractInstances.deleteContractInstances(contractInstances);
|
|
544
|
+
return await this.stores.contractInstances.deleteContractInstances(contractInstances, blockNum);
|
|
545
545
|
}
|
|
546
546
|
}
|
|
547
547
|
return true;
|
|
@@ -96,4 +96,4 @@ export declare class ArchiverL1Synchronizer implements Traceable {
|
|
|
96
96
|
private getLocalProgressCheckpoint;
|
|
97
97
|
private getCheckpointHeader;
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfc3luY2hyb25pemVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9sMV9zeW5jaHJvbml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUcvRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQWtCLE1BQU0sOEJBQThCLENBQUM7QUFFNUUsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixLQUFLLE9BQU8sRUFHYixNQUFNLDBCQUEwQixDQUFDO0FBUWxDLE9BQU8sRUFBRSxLQUFLLGlCQUFpQixFQUF3QyxNQUFNLGtDQUFrQyxDQUFDO0FBRWhILE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLE1BQU0sRUFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQVVsRyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3JFLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFvQnBFOzs7R0FHRztBQUNILHFCQUFhLHNCQUF1QixZQUFXLFNBQVM7SUFnQnBELE9BQU8s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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_synchronizer.d.ts","sourceRoot":"","sources":["../../src/modules/l1_synchronizer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"l1_synchronizer.d.ts","sourceRoot":"","sources":["../../src/modules/l1_synchronizer.ts"],"names":[],"mappings":"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"}
|