@aztec/archiver 4.0.0-devnet.2-patch.4 → 4.0.0-devnet.3-patch.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/archiver.d.ts +3 -3
- package/dest/archiver.d.ts.map +1 -1
- package/dest/archiver.js +67 -22
- package/dest/errors.d.ts +7 -9
- package/dest/errors.d.ts.map +1 -1
- package/dest/errors.js +9 -14
- package/dest/factory.d.ts +3 -4
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +25 -23
- package/dest/l1/bin/retrieve-calldata.js +32 -28
- package/dest/l1/calldata_retriever.d.ts +70 -53
- package/dest/l1/calldata_retriever.d.ts.map +1 -1
- package/dest/l1/calldata_retriever.js +178 -260
- package/dest/l1/data_retrieval.d.ts +2 -6
- package/dest/l1/data_retrieval.d.ts.map +1 -1
- package/dest/l1/data_retrieval.js +6 -11
- package/dest/l1/spire_proposer.d.ts +5 -5
- package/dest/l1/spire_proposer.d.ts.map +1 -1
- package/dest/l1/spire_proposer.js +9 -17
- package/dest/modules/data_source_base.d.ts +3 -3
- package/dest/modules/data_source_base.d.ts.map +1 -1
- package/dest/modules/data_source_base.js +1 -1
- package/dest/modules/data_store_updater.d.ts +15 -7
- package/dest/modules/data_store_updater.d.ts.map +1 -1
- package/dest/modules/data_store_updater.js +75 -23
- package/dest/modules/l1_synchronizer.d.ts +3 -7
- package/dest/modules/l1_synchronizer.d.ts.map +1 -1
- package/dest/modules/l1_synchronizer.js +36 -6
- package/dest/store/block_store.d.ts +13 -13
- package/dest/store/block_store.d.ts.map +1 -1
- package/dest/store/block_store.js +111 -66
- 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 +6 -2
- package/dest/store/contract_instance_store.d.ts +1 -1
- package/dest/store/contract_instance_store.d.ts.map +1 -1
- package/dest/store/contract_instance_store.js +6 -2
- package/dest/store/kv_archiver_store.d.ts +20 -12
- package/dest/store/kv_archiver_store.d.ts.map +1 -1
- package/dest/store/kv_archiver_store.js +24 -13
- package/dest/store/log_store.d.ts +1 -1
- package/dest/store/log_store.d.ts.map +1 -1
- package/dest/store/log_store.js +48 -10
- package/dest/store/message_store.js +1 -1
- package/dest/test/fake_l1_state.d.ts +17 -1
- package/dest/test/fake_l1_state.d.ts.map +1 -1
- package/dest/test/fake_l1_state.js +83 -12
- package/dest/test/mock_l2_block_source.d.ts +4 -3
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +7 -4
- package/dest/test/mock_structs.d.ts +4 -1
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +13 -1
- package/dest/test/noop_l1_archiver.d.ts +4 -1
- package/dest/test/noop_l1_archiver.d.ts.map +1 -1
- package/dest/test/noop_l1_archiver.js +5 -1
- package/package.json +13 -13
- package/src/archiver.ts +80 -22
- package/src/errors.ts +10 -24
- package/src/factory.ts +22 -13
- package/src/l1/README.md +25 -68
- package/src/l1/bin/retrieve-calldata.ts +40 -27
- package/src/l1/calldata_retriever.ts +231 -383
- package/src/l1/data_retrieval.ts +3 -16
- package/src/l1/spire_proposer.ts +7 -15
- package/src/modules/data_source_base.ts +3 -3
- package/src/modules/data_store_updater.ts +81 -26
- package/src/modules/l1_synchronizer.ts +41 -10
- package/src/store/block_store.ts +134 -74
- package/src/store/contract_class_store.ts +7 -3
- package/src/store/contract_instance_store.ts +8 -5
- package/src/store/kv_archiver_store.ts +31 -17
- package/src/store/log_store.ts +66 -12
- package/src/store/message_store.ts +1 -1
- package/src/test/fake_l1_state.ts +110 -14
- package/src/test/mock_l2_block_source.ts +15 -3
- package/src/test/mock_structs.ts +20 -6
- package/src/test/noop_l1_archiver.ts +7 -1
|
@@ -7,10 +7,11 @@ import { RollupAbi } from '@aztec/l1-artifacts';
|
|
|
7
7
|
import { CommitteeAttestation, CommitteeAttestationsAndSigners } from '@aztec/stdlib/block';
|
|
8
8
|
import { getSlotAtTimestamp } from '@aztec/stdlib/epoch-helpers';
|
|
9
9
|
import { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
10
|
+
import { ConsensusPayload, SignatureDomainSeparator } from '@aztec/stdlib/p2p';
|
|
10
11
|
import { makeAndSignCommitteeAttestationsAndSigners, makeCheckpointAttestationFromCheckpoint, mockCheckpointAndMessages } from '@aztec/stdlib/testing';
|
|
11
12
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
12
13
|
import { mock } from 'jest-mock-extended';
|
|
13
|
-
import { encodeFunctionData, multicall3Abi, toHex } from 'viem';
|
|
14
|
+
import { encodeAbiParameters, encodeFunctionData, keccak256, multicall3Abi, toHex } from 'viem';
|
|
14
15
|
import { updateRollingHash } from '../structs/inbox_message.js';
|
|
15
16
|
/**
|
|
16
17
|
* Stateful fake for L1 data used by the archiver.
|
|
@@ -46,6 +47,8 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
46
47
|
canPruneResult;
|
|
47
48
|
// Computed from checkpoints based on L1 block visibility
|
|
48
49
|
pendingCheckpointNumber;
|
|
50
|
+
// The L1 block number reported as "finalized" (defaults to the start block)
|
|
51
|
+
finalizedL1BlockNumber;
|
|
49
52
|
constructor(config){
|
|
50
53
|
this.config = config;
|
|
51
54
|
this.log = createLogger('archiver:test:fake-l1');
|
|
@@ -58,6 +61,7 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
58
61
|
this.canPruneResult = false;
|
|
59
62
|
this.pendingCheckpointNumber = CheckpointNumber(0);
|
|
60
63
|
this.l1BlockNumber = config.l1StartBlock;
|
|
64
|
+
this.finalizedL1BlockNumber = config.l1StartBlock;
|
|
61
65
|
this.lastArchive = new AppendOnlyTreeSnapshot(config.genesisArchiveRoot, 1);
|
|
62
66
|
}
|
|
63
67
|
/**
|
|
@@ -100,8 +104,8 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
100
104
|
});
|
|
101
105
|
// Store the messages internally so they match the checkpoint's inHash
|
|
102
106
|
this.addMessages(checkpointNumber, messagesL1BlockNumber, messages);
|
|
103
|
-
// Create the transaction and
|
|
104
|
-
const tx = await this.makeRollupTx(checkpoint, signers);
|
|
107
|
+
// Create the transaction, blobs, and event hashes
|
|
108
|
+
const { tx, attestationsHash, payloadDigest } = await this.makeRollupTx(checkpoint, signers);
|
|
105
109
|
const blobHashes = await this.makeVersionedBlobHashes(checkpoint);
|
|
106
110
|
const blobs = await this.makeBlobsFromCheckpoint(checkpoint);
|
|
107
111
|
// Store the checkpoint data
|
|
@@ -112,7 +116,9 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
112
116
|
tx,
|
|
113
117
|
blobHashes,
|
|
114
118
|
blobs,
|
|
115
|
-
signers
|
|
119
|
+
signers,
|
|
120
|
+
attestationsHash,
|
|
121
|
+
payloadDigest
|
|
116
122
|
});
|
|
117
123
|
// Update last archive for auto-chaining
|
|
118
124
|
this.lastArchive = lastArchive ?? checkpoint.blocks.at(-1).archive;
|
|
@@ -154,9 +160,24 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
154
160
|
this.l1BlockNumber = blockNumber;
|
|
155
161
|
this.updatePendingCheckpointNumber();
|
|
156
162
|
}
|
|
163
|
+
/** Sets the L1 block number that will be reported as "finalized". */ setFinalizedL1BlockNumber(blockNumber) {
|
|
164
|
+
this.finalizedL1BlockNumber = blockNumber;
|
|
165
|
+
}
|
|
157
166
|
/** Marks a checkpoint as proven. Updates provenCheckpointNumber. */ markCheckpointAsProven(checkpointNumber) {
|
|
158
167
|
this.provenCheckpointNumber = checkpointNumber;
|
|
159
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Simulates what `rollup.getProvenCheckpointNumber({ blockNumber: atL1Block })` would return.
|
|
171
|
+
*/ getProvenCheckpointNumberAtL1Block(atL1Block) {
|
|
172
|
+
if (this.provenCheckpointNumber === 0) {
|
|
173
|
+
return CheckpointNumber(0);
|
|
174
|
+
}
|
|
175
|
+
const checkpoint = this.checkpoints.find((cp)=>cp.checkpointNumber === this.provenCheckpointNumber);
|
|
176
|
+
if (checkpoint && checkpoint.l1BlockNumber <= atL1Block) {
|
|
177
|
+
return this.provenCheckpointNumber;
|
|
178
|
+
}
|
|
179
|
+
return CheckpointNumber(0);
|
|
180
|
+
}
|
|
160
181
|
/** Sets the target committee size for attestation validation. */ setTargetCommitteeSize(size) {
|
|
161
182
|
this.targetCommitteeSize = size;
|
|
162
183
|
}
|
|
@@ -172,6 +193,19 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
172
193
|
this.updatePendingCheckpointNumber();
|
|
173
194
|
}
|
|
174
195
|
/**
|
|
196
|
+
* Moves a checkpoint to a different L1 block number (simulates L1 reorg that
|
|
197
|
+
* re-includes the same checkpoint transaction in a different block).
|
|
198
|
+
* The checkpoint content stays the same — only the L1 metadata changes.
|
|
199
|
+
* Auto-updates pending status.
|
|
200
|
+
*/ moveCheckpointToL1Block(checkpointNumber, newL1BlockNumber) {
|
|
201
|
+
for (const cpData of this.checkpoints){
|
|
202
|
+
if (cpData.checkpointNumber === checkpointNumber) {
|
|
203
|
+
cpData.l1BlockNumber = newL1BlockNumber;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
this.updatePendingCheckpointNumber();
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
175
209
|
* Removes messages after a given total index (simulates L1 reorg).
|
|
176
210
|
* Auto-updates rolling hash.
|
|
177
211
|
*/ removeMessagesAfter(totalIndex) {
|
|
@@ -243,6 +277,10 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
243
277
|
archiveOfMyCheckpoint: this.getArchiveAt(localCheckpointNum)
|
|
244
278
|
});
|
|
245
279
|
});
|
|
280
|
+
mockRollup.getProvenCheckpointNumber.mockImplementation((options)=>{
|
|
281
|
+
const atBlock = options?.blockNumber ?? this.l1BlockNumber;
|
|
282
|
+
return Promise.resolve(this.getProvenCheckpointNumberAtL1Block(atBlock));
|
|
283
|
+
});
|
|
246
284
|
mockRollup.canPruneAtTime.mockImplementation(()=>Promise.resolve(this.canPruneResult));
|
|
247
285
|
// Mock the wrapper method for fetching checkpoint events
|
|
248
286
|
mockRollup.getCheckpointProposedEvents.mockImplementation((fromBlock, toBlock)=>Promise.resolve(this.getCheckpointProposedLogs(fromBlock, toBlock)));
|
|
@@ -267,9 +305,13 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
267
305
|
const publicClient = mock();
|
|
268
306
|
publicClient.getChainId.mockResolvedValue(1);
|
|
269
307
|
publicClient.getBlockNumber.mockImplementation(()=>Promise.resolve(this.l1BlockNumber));
|
|
270
|
-
// Use async function pattern that existing test uses for getBlock
|
|
271
308
|
publicClient.getBlock.mockImplementation(async (args = {})=>{
|
|
272
|
-
|
|
309
|
+
let blockNum;
|
|
310
|
+
if (args.blockTag === 'finalized') {
|
|
311
|
+
blockNum = this.finalizedL1BlockNumber;
|
|
312
|
+
} else {
|
|
313
|
+
blockNum = args.blockNumber ?? await publicClient.getBlockNumber();
|
|
314
|
+
}
|
|
273
315
|
return {
|
|
274
316
|
number: blockNum,
|
|
275
317
|
timestamp: BigInt(blockNum) * BigInt(this.config.ethereumSlotDuration) + this.config.l1GenesisTime,
|
|
@@ -316,10 +358,8 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
316
358
|
checkpointNumber: cpData.checkpointNumber,
|
|
317
359
|
archive: cpData.checkpoint.archive.root,
|
|
318
360
|
versionedBlobHashes: cpData.blobHashes.map((h)=>Buffer.from(h.slice(2), 'hex')),
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
payloadDigest: undefined,
|
|
322
|
-
attestationsHash: undefined
|
|
361
|
+
attestationsHash: cpData.attestationsHash,
|
|
362
|
+
payloadDigest: cpData.payloadDigest
|
|
323
363
|
}
|
|
324
364
|
}));
|
|
325
365
|
}
|
|
@@ -343,6 +383,7 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
343
383
|
const archive = toHex(checkpoint.archive.root.toBuffer());
|
|
344
384
|
const attestationsAndSigners = new CommitteeAttestationsAndSigners(attestations.map((attestation)=>CommitteeAttestation.fromViem(attestation)));
|
|
345
385
|
const attestationsAndSignersSignature = makeAndSignCommitteeAttestationsAndSigners(attestationsAndSigners, signers[0]);
|
|
386
|
+
const packedAttestations = attestationsAndSigners.getPackedAttestations();
|
|
346
387
|
const rollupInput = encodeFunctionData({
|
|
347
388
|
abi: RollupAbi,
|
|
348
389
|
functionName: 'propose',
|
|
@@ -354,7 +395,7 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
354
395
|
feeAssetPriceModifier: 0n
|
|
355
396
|
}
|
|
356
397
|
},
|
|
357
|
-
|
|
398
|
+
packedAttestations,
|
|
358
399
|
attestationsAndSigners.getSigners().map((signer)=>signer.toString()),
|
|
359
400
|
attestationsAndSignersSignature.toViemSignature(),
|
|
360
401
|
blobInput
|
|
@@ -373,12 +414,42 @@ import { updateRollingHash } from '../structs/inbox_message.js';
|
|
|
373
414
|
]
|
|
374
415
|
]
|
|
375
416
|
});
|
|
376
|
-
|
|
417
|
+
// Compute attestationsHash (same logic as CalldataRetriever)
|
|
418
|
+
const attestationsHash = Buffer32.fromString(keccak256(encodeAbiParameters([
|
|
419
|
+
this.getCommitteeAttestationsStructDef()
|
|
420
|
+
], [
|
|
421
|
+
packedAttestations
|
|
422
|
+
])));
|
|
423
|
+
// Compute payloadDigest (same logic as CalldataRetriever)
|
|
424
|
+
const consensusPayload = ConsensusPayload.fromCheckpoint(checkpoint);
|
|
425
|
+
const payloadToSign = consensusPayload.getPayloadToSign(SignatureDomainSeparator.checkpointAttestation);
|
|
426
|
+
const payloadDigest = Buffer32.fromString(keccak256(payloadToSign));
|
|
427
|
+
const tx = {
|
|
377
428
|
input: multiCallInput,
|
|
378
429
|
hash: archive,
|
|
379
430
|
blockHash: archive,
|
|
380
431
|
to: MULTI_CALL_3_ADDRESS
|
|
381
432
|
};
|
|
433
|
+
return {
|
|
434
|
+
tx,
|
|
435
|
+
attestationsHash,
|
|
436
|
+
payloadDigest
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
/** Extracts the CommitteeAttestations struct definition from RollupAbi for hash computation. */ getCommitteeAttestationsStructDef() {
|
|
440
|
+
const proposeFunction = RollupAbi.find((item)=>item.type === 'function' && item.name === 'propose');
|
|
441
|
+
if (!proposeFunction) {
|
|
442
|
+
throw new Error('propose function not found in RollupAbi');
|
|
443
|
+
}
|
|
444
|
+
const attestationsParam = proposeFunction.inputs.find((param)=>param.name === '_attestations');
|
|
445
|
+
if (!attestationsParam) {
|
|
446
|
+
throw new Error('_attestations parameter not found in propose function');
|
|
447
|
+
}
|
|
448
|
+
const tupleParam = attestationsParam;
|
|
449
|
+
return {
|
|
450
|
+
type: 'tuple',
|
|
451
|
+
components: tupleParam.components || []
|
|
452
|
+
};
|
|
382
453
|
}
|
|
383
454
|
async makeVersionedBlobHashes(checkpoint) {
|
|
384
455
|
return (await getBlobsPerL1Block(checkpoint.toBlobFields())).map((b)=>`0x${b.getEthVersionedBlobHash().toString('hex')}`);
|
|
@@ -21,6 +21,7 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
21
21
|
private log;
|
|
22
22
|
/** Creates blocks grouped into single-block checkpoints. */
|
|
23
23
|
createBlocks(numBlocks: number): Promise<void>;
|
|
24
|
+
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
24
25
|
/** Creates checkpoints, each containing `blocksPerCheckpoint` blocks. */
|
|
25
26
|
createCheckpoints(numCheckpoints: number, blocksPerCheckpoint?: number): Promise<void>;
|
|
26
27
|
addProposedBlocks(blocks: L2Block[]): void;
|
|
@@ -101,8 +102,8 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
101
102
|
*/
|
|
102
103
|
getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
|
|
103
104
|
getL2Tips(): Promise<L2Tips>;
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
getSyncedL2EpochNumber(): Promise<EpochNumber>;
|
|
106
|
+
getSyncedL2SlotNumber(): Promise<SlotNumber>;
|
|
106
107
|
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean>;
|
|
107
108
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
108
109
|
getGenesisValues(): Promise<{
|
|
@@ -137,4 +138,4 @@ export declare class MockL2BlockSource implements L2BlockSource, ContractDataSou
|
|
|
137
138
|
/** Finds the checkpoint number for a block, or undefined if the block is not in any checkpoint. */
|
|
138
139
|
private findCheckpointNumberForBlock;
|
|
139
140
|
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19sMl9ibG9ja19zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L21vY2tfbDJfYmxvY2tfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXpHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsS0FBSyxTQUFTLEVBQ2QsU0FBUyxFQUNULG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsS0FBSyxhQUFhLEVBQ2xCLEtBQUssTUFBTSxFQUNYLEtBQUssd0JBQXdCLEVBQzlCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLGNBQWMsRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqSCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ILE9BQU8sRUFFTCxLQUFLLGlCQUFpQixFQUd2QixNQUFNLDZCQUE2QixDQUFDO0FBR3JDLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BHLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWtCLFlBQVcsYUFBYSxFQUFFLGtCQUFrQjtJQUN6RSxT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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEzG,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,SAAS,EACd,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAmB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACnH,OAAO,
|
|
1
|
+
{"version":3,"file":"mock_l2_block_source.d.ts","sourceRoot":"","sources":["../../src/test/mock_l2_block_source.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
7
7
|
import { createLogger } from '@aztec/foundation/log';
|
|
8
8
|
import { CheckpointedL2Block } from '@aztec/stdlib/block';
|
|
9
9
|
import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
10
|
-
import { EmptyL1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
10
|
+
import { EmptyL1RollupConstants, getEpochAtSlot, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
11
11
|
import { computeCheckpointOutHash } from '@aztec/stdlib/messaging';
|
|
12
12
|
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
13
13
|
import { TxExecutionResult, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
@@ -23,6 +23,9 @@ import { TxExecutionResult, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
23
23
|
/** Creates blocks grouped into single-block checkpoints. */ async createBlocks(numBlocks) {
|
|
24
24
|
await this.createCheckpoints(numBlocks, 1);
|
|
25
25
|
}
|
|
26
|
+
getCheckpointNumber() {
|
|
27
|
+
return Promise.resolve(this.checkpointList.length === 0 ? CheckpointNumber.ZERO : CheckpointNumber(this.checkpointList.length));
|
|
28
|
+
}
|
|
26
29
|
/** Creates checkpoints, each containing `blocksPerCheckpoint` blocks. */ async createCheckpoints(numCheckpoints, blocksPerCheckpoint = 1) {
|
|
27
30
|
for(let c = 0; c < numCheckpoints; c++){
|
|
28
31
|
const checkpointNum = CheckpointNumber(this.checkpointList.length + 1);
|
|
@@ -305,7 +308,7 @@ import { TxExecutionResult, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
305
308
|
for (const txEffect of block.body.txEffects){
|
|
306
309
|
if (txEffect.txHash.equals(txHash)) {
|
|
307
310
|
// In mock, assume all txs are checkpointed with successful execution
|
|
308
|
-
return new TxReceipt(txHash, TxStatus.CHECKPOINTED, TxExecutionResult.SUCCESS, undefined, txEffect.transactionFee.toBigInt(), await block.hash(), block.number);
|
|
311
|
+
return new TxReceipt(txHash, TxStatus.CHECKPOINTED, TxExecutionResult.SUCCESS, undefined, txEffect.transactionFee.toBigInt(), await block.hash(), block.number, getEpochAtSlot(block.slot, EmptyL1RollupConstants));
|
|
309
312
|
}
|
|
310
313
|
}
|
|
311
314
|
}
|
|
@@ -352,10 +355,10 @@ import { TxExecutionResult, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
|
352
355
|
finalized: makeTipId(finalizedBlockId)
|
|
353
356
|
};
|
|
354
357
|
}
|
|
355
|
-
|
|
358
|
+
getSyncedL2EpochNumber() {
|
|
356
359
|
throw new Error('Method not implemented.');
|
|
357
360
|
}
|
|
358
|
-
|
|
361
|
+
getSyncedL2SlotNumber() {
|
|
359
362
|
throw new Error('Method not implemented.');
|
|
360
363
|
}
|
|
361
364
|
isEpochComplete(_epochNumber) {
|
|
@@ -3,6 +3,7 @@ import { Buffer16 } from '@aztec/foundation/buffer';
|
|
|
3
3
|
import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
+
import { L2Block } from '@aztec/stdlib/block';
|
|
6
7
|
import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
7
8
|
import { PrivateLog, PublicLog, SiloedTag, Tag } from '@aztec/stdlib/logs';
|
|
8
9
|
import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
|
|
@@ -28,6 +29,8 @@ export declare function makeBlockHash(blockNumber: number): `0x${string}`;
|
|
|
28
29
|
export declare function makeStateForBlock(blockNumber: number, txsPerBlock: number): StateReference;
|
|
29
30
|
/** Creates L1PublishedData with deterministic values based on l1BlockNumber. */
|
|
30
31
|
export declare function makeL1PublishedData(l1BlockNumber: number): L1PublishedData;
|
|
32
|
+
/** Creates a Checkpoint from a list of blocks with a header that matches the blocks' structure. */
|
|
33
|
+
export declare function makeCheckpoint(blocks: L2Block[], checkpointNumber?: CheckpointNumber): Checkpoint;
|
|
31
34
|
/** Wraps a Checkpoint with L1 published data and random attestations. */
|
|
32
35
|
export declare function makePublishedCheckpoint(checkpoint: Checkpoint, l1BlockNumber: number, attestationCount?: number): PublishedCheckpoint;
|
|
33
36
|
export interface MakeChainedCheckpointsOptions {
|
|
@@ -82,4 +85,4 @@ export interface MockCheckpointWithLogsOptions {
|
|
|
82
85
|
}
|
|
83
86
|
/** Creates a checkpoint with specified logs on each tx effect. */
|
|
84
87
|
export declare function makeCheckpointWithLogs(blockNumber: number, options?: MockCheckpointWithLogsOptions): Promise<PublishedCheckpoint>;
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19zdHJ1Y3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2NrX3N0cnVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFlLGdCQUFnQixFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVqRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBd0IsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUF5QixjQUFjLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUVuRixPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFbkYsd0JBQWdCLGdCQUFnQixDQUM5QixtQkFBbUIsV0FBZ0IsRUFDbkMsU0FBUyxHQUFFLE9BQU8sQ0FBQyxZQUFZLENBQU0sR0FDcEMsWUFBWSxDQWdCZDtBQUVELHdCQUFnQixpQkFBaUIsQ0FDL0IsVUFBVSxFQUFFLE1BQU0sRUFDbEIsSUFBSSxHQUFFO0lBQ0osV0FBVyxDQUFDLEVBQUUsUUFBUSxDQUFDO0lBQ3ZCLHVCQUF1QixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDM0MscUJBQXFCLENBQUMsRUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock_structs.d.ts","sourceRoot":"","sources":["../../src/test/mock_structs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AACvG,OAAO,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"mock_structs.d.ts","sourceRoot":"","sources":["../../src/test/mock_structs.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,6 +77,18 @@ export function makeInboxMessages(totalCount, opts = {}) {
|
|
|
77
77
|
/** Creates L1PublishedData with deterministic values based on l1BlockNumber. */ export function makeL1PublishedData(l1BlockNumber) {
|
|
78
78
|
return new L1PublishedData(BigInt(l1BlockNumber), BigInt(l1BlockNumber * 1000), makeBlockHash(l1BlockNumber));
|
|
79
79
|
}
|
|
80
|
+
/** Creates a Checkpoint from a list of blocks with a header that matches the blocks' structure. */ export function makeCheckpoint(blocks, checkpointNumber = CheckpointNumber(1)) {
|
|
81
|
+
const firstBlock = blocks[0];
|
|
82
|
+
const { slotNumber, timestamp, coinbase, feeRecipient, gasFees } = firstBlock.header.globalVariables;
|
|
83
|
+
return new Checkpoint(blocks.at(-1).archive, CheckpointHeader.random({
|
|
84
|
+
lastArchiveRoot: firstBlock.header.lastArchive.root,
|
|
85
|
+
slotNumber,
|
|
86
|
+
timestamp,
|
|
87
|
+
coinbase,
|
|
88
|
+
feeRecipient,
|
|
89
|
+
gasFees
|
|
90
|
+
}), blocks, checkpointNumber);
|
|
91
|
+
}
|
|
80
92
|
/** Wraps a Checkpoint with L1 published data and random attestations. */ export function makePublishedCheckpoint(checkpoint, l1BlockNumber, attestationCount = 3) {
|
|
81
93
|
return new PublishedCheckpoint(checkpoint, makeL1PublishedData(l1BlockNumber), times(attestationCount, CommitteeAttestation.random));
|
|
82
94
|
}
|
|
@@ -164,7 +176,7 @@ export function makeInboxMessages(totalCount, opts = {}) {
|
|
|
164
176
|
txEffect.publicLogs = publicLogs ? makePublicLogs(blockNumber, txIndex, publicLogs.numLogsPerTx, publicLogs.contractAddress) : [];
|
|
165
177
|
return txEffect;
|
|
166
178
|
});
|
|
167
|
-
const checkpoint =
|
|
179
|
+
const checkpoint = makeCheckpoint([
|
|
168
180
|
block
|
|
169
181
|
], CheckpointNumber.fromBlockNumber(BlockNumber(blockNumber)));
|
|
170
182
|
return makePublishedCheckpoint(checkpoint, blockNumber);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
3
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -15,9 +16,11 @@ export declare class NoopL1Archiver extends Archiver {
|
|
|
15
16
|
}, instrumentation: ArchiverInstrumentation);
|
|
16
17
|
/** Override start to skip L1 validation checks. */
|
|
17
18
|
start(_blockUntilSynced?: boolean): Promise<void>;
|
|
19
|
+
/** Always reports as fully synced since there is no real L1 to sync from. */
|
|
20
|
+
getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
18
21
|
}
|
|
19
22
|
/** Creates an archiver with mocked L1 connectivity for testing. */
|
|
20
23
|
export declare function createNoopL1Archiver(dataStore: KVArchiverDataStore, l1Constants: L1RollupConstants & {
|
|
21
24
|
genesisArchiveRoot: Fr;
|
|
22
25
|
}, telemetry?: TelemetryClient): Promise<NoopL1Archiver>;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcF9sMV9hcmNoaXZlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qvbm9vcF9sMV9hcmNoaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFN0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXBELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFtQyxNQUFNLHlCQUF5QixDQUFDO0FBS2hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBeUJ6RTs7OztHQUlHO0FBQ0gscUJBQWEsY0FBZSxTQUFRLFFBQVE7SUFDMUMsWUFDRSxTQUFTLEVBQUUsbUJBQW1CLEVBQzlCLFdBQVcsRUFBRSxpQkFBaUIsR0FBRztRQUFFLGtCQUFrQixFQUFFLEVBQUUsQ0FBQTtLQUFFLEVBQzNELGVBQWUsRUFBRSx1QkFBdUIsRUF1Q3pDO0lBRUQsbURBQW1EO0lBQ25DLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSWhFO0lBRUQsNkVBQTZFO0lBQzdELHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBRXZFO0NBQ0Y7QUFFRCxtRUFBbUU7QUFDbkUsd0JBQXNCLG9CQUFvQixDQUN4QyxTQUFTLEVBQUUsbUJBQW1CLEVBQzlCLFdBQVcsRUFBRSxpQkFBaUIsR0FBRztJQUFFLGtCQUFrQixFQUFFLEVBQUUsQ0FBQTtDQUFFLEVBQzNELFNBQVMsR0FBRSxlQUFzQyxHQUNoRCxPQUFPLENBQUMsY0FBYyxDQUFDLENBR3pCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noop_l1_archiver.d.ts","sourceRoot":"","sources":["../../src/test/noop_l1_archiver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"noop_l1_archiver.d.ts","sourceRoot":"","sources":["../../src/test/noop_l1_archiver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,yBAAyB,CAAC;AAKhG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAyBzE;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,YACE,SAAS,EAAE,mBAAmB,EAC9B,WAAW,EAAE,iBAAiB,GAAG;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,EAC3D,eAAe,EAAE,uBAAuB,EAuCzC;IAED,mDAAmD;IACnC,KAAK,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhE;IAED,6EAA6E;IAC7D,qBAAqB,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAEvE;CACF;AAED,mEAAmE;AACnE,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,mBAAmB,EAC9B,WAAW,EAAE,iBAAiB,GAAG;IAAE,kBAAkB,EAAE,EAAE,CAAA;CAAE,EAC3D,SAAS,GAAE,eAAsC,GAChD,OAAO,CAAC,cAAc,CAAC,CAGzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -15,7 +16,7 @@ import { ArchiverInstrumentation } from '../modules/instrumentation.js';
|
|
|
15
16
|
return 0n;
|
|
16
17
|
}
|
|
17
18
|
getL1Timestamp() {
|
|
18
|
-
return
|
|
19
|
+
return undefined;
|
|
19
20
|
}
|
|
20
21
|
testEthereumNodeSynced() {
|
|
21
22
|
return Promise.resolve();
|
|
@@ -61,6 +62,9 @@ import { ArchiverInstrumentation } from '../modules/instrumentation.js';
|
|
|
61
62
|
this.runningPromise.start();
|
|
62
63
|
return Promise.resolve();
|
|
63
64
|
}
|
|
65
|
+
/** Always reports as fully synced since there is no real L1 to sync from. */ getSyncedL2SlotNumber() {
|
|
66
|
+
return Promise.resolve(SlotNumber(Number.MAX_SAFE_INTEGER));
|
|
67
|
+
}
|
|
64
68
|
}
|
|
65
69
|
/** Creates an archiver with mocked L1 connectivity for testing. */ export async function createNoopL1Archiver(dataStore, l1Constants, telemetry = getTelemetryClient()) {
|
|
66
70
|
const instrumentation = await ArchiverInstrumentation.new(telemetry, ()=>dataStore.estimateSize());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "4.0.0-devnet.
|
|
3
|
+
"version": "4.0.0-devnet.3-patch.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -65,18 +65,18 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aztec/blob-client": "4.0.0-devnet.
|
|
69
|
-
"@aztec/blob-lib": "4.0.0-devnet.
|
|
70
|
-
"@aztec/constants": "4.0.0-devnet.
|
|
71
|
-
"@aztec/epoch-cache": "4.0.0-devnet.
|
|
72
|
-
"@aztec/ethereum": "4.0.0-devnet.
|
|
73
|
-
"@aztec/foundation": "4.0.0-devnet.
|
|
74
|
-
"@aztec/kv-store": "4.0.0-devnet.
|
|
75
|
-
"@aztec/l1-artifacts": "4.0.0-devnet.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "4.0.0-devnet.
|
|
77
|
-
"@aztec/protocol-contracts": "4.0.0-devnet.
|
|
78
|
-
"@aztec/stdlib": "4.0.0-devnet.
|
|
79
|
-
"@aztec/telemetry-client": "4.0.0-devnet.
|
|
68
|
+
"@aztec/blob-client": "4.0.0-devnet.3-patch.0",
|
|
69
|
+
"@aztec/blob-lib": "4.0.0-devnet.3-patch.0",
|
|
70
|
+
"@aztec/constants": "4.0.0-devnet.3-patch.0",
|
|
71
|
+
"@aztec/epoch-cache": "4.0.0-devnet.3-patch.0",
|
|
72
|
+
"@aztec/ethereum": "4.0.0-devnet.3-patch.0",
|
|
73
|
+
"@aztec/foundation": "4.0.0-devnet.3-patch.0",
|
|
74
|
+
"@aztec/kv-store": "4.0.0-devnet.3-patch.0",
|
|
75
|
+
"@aztec/l1-artifacts": "4.0.0-devnet.3-patch.0",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "4.0.0-devnet.3-patch.0",
|
|
77
|
+
"@aztec/protocol-contracts": "4.0.0-devnet.3-patch.0",
|
|
78
|
+
"@aztec/stdlib": "4.0.0-devnet.3-patch.0",
|
|
79
|
+
"@aztec/telemetry-client": "4.0.0-devnet.3-patch.0",
|
|
80
80
|
"lodash.groupby": "^4.6.0",
|
|
81
81
|
"lodash.omit": "^4.5.0",
|
|
82
82
|
"tslib": "^2.5.0",
|