Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 5 additions & 29 deletions yarn-project/archiver/src/archiver/archiver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -388,14 +388,8 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
currentL1BlockNumber: bigint,
): Promise<{ provenBlockNumber: bigint }> {
const localPendingBlockNumber = BigInt(await this.getBlockNumber());
const [
provenBlockNumber,
provenArchive,
pendingBlockNumber,
pendingArchive,
archiveForLocalPendingBlockNumber,
provenEpochNumber,
] = await this.rollup.read.status([localPendingBlockNumber], { blockNumber: currentL1BlockNumber });
const [provenBlockNumber, provenArchive, pendingBlockNumber, pendingArchive, archiveForLocalPendingBlockNumber] =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily for this pr, just got thinking, why are we using the viem contract directly in the archiver when we are using a RollupContract a bunch elsewhere (know there are a lot of both things around and about). Probably something we should look into at some point.

await this.rollup.read.status([localPendingBlockNumber], { blockNumber: currentL1BlockNumber });

const updateProvenBlock = async () => {
const localBlockForDestinationProvenBlockNumber = await this.getBlock(Number(provenBlockNumber));
Expand All @@ -413,19 +407,11 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
localBlockForDestinationProvenBlockNumber &&
provenArchive === localBlockForDestinationProvenBlockNumber.archive.root.toString()
) {
const [localProvenEpochNumber, localProvenBlockNumber] = await Promise.all([
this.store.getProvenL2EpochNumber(),
this.store.getProvenL2BlockNumber(),
]);
if (
localProvenEpochNumber !== Number(provenEpochNumber) ||
localProvenBlockNumber !== Number(provenBlockNumber)
) {
const localProvenBlockNumber = await this.store.getProvenL2BlockNumber();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this is only used this once, so don't seem necessary to put it in a const 🤷 Fine to keep though.

if (localProvenBlockNumber !== Number(provenBlockNumber)) {
await this.store.setProvenL2BlockNumber(Number(provenBlockNumber));
await this.store.setProvenL2EpochNumber(Number(provenEpochNumber));
this.log.info(`Updated proven chain to block ${provenBlockNumber} (epoch ${provenEpochNumber})`, {
this.log.info(`Updated proven chain to block ${provenBlockNumber}`, {
provenBlockNumber,
provenEpochNumber,
});
}
}
Expand Down Expand Up @@ -783,10 +769,6 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
return this.store.getProvenL2BlockNumber();
}

public getProvenL2EpochNumber(): Promise<number | undefined> {
return this.store.getProvenL2EpochNumber();
}

/** Forcefully updates the last proven block number. Use for testing. */
public setProvenBlockNumber(blockNumber: number): Promise<void> {
return this.store.setProvenL2BlockNumber(blockNumber);
Expand Down Expand Up @@ -1160,15 +1142,9 @@ class ArchiverStoreHelper
getProvenL2BlockNumber(): Promise<number> {
return this.store.getProvenL2BlockNumber();
}
getProvenL2EpochNumber(): Promise<number | undefined> {
return this.store.getProvenL2EpochNumber();
}
setProvenL2BlockNumber(l2BlockNumber: number): Promise<void> {
return this.store.setProvenL2BlockNumber(l2BlockNumber);
}
setProvenL2EpochNumber(l2EpochNumber: number): Promise<void> {
return this.store.setProvenL2EpochNumber(l2EpochNumber);
}
setBlockSynchedL1BlockNumber(l1BlockNumber: bigint): Promise<void> {
return this.store.setBlockSynchedL1BlockNumber(l1BlockNumber);
}
Expand Down
12 changes: 0 additions & 12 deletions yarn-project/archiver/src/archiver/archiver_store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,24 +174,12 @@ export interface ArchiverDataStore {
*/
getProvenL2BlockNumber(): Promise<number>;

/**
* Gets the number of the latest proven L2 epoch.
* @returns The number of the latest proven L2 epoch.
*/
getProvenL2EpochNumber(): Promise<number | undefined>;

/**
* Stores the number of the latest proven L2 block processed.
* @param l2BlockNumber - The number of the latest proven L2 block processed.
*/
setProvenL2BlockNumber(l2BlockNumber: number): Promise<void>;

/**
* Stores the number of the latest proven L2 epoch.
* @param l2EpochNumber - The number of the latest proven L2 epoch.
*/
setProvenL2EpochNumber(l2EpochNumber: number): Promise<void>;

/**
* Stores the l1 block number that blocks have been synched until
* @param l1BlockNumber - The l1 block number
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -269,14 +269,6 @@ export class BlockStore {
return this.#lastProvenL2Block.set(blockNumber);
}

getProvenL2EpochNumber(): Promise<number | undefined> {
return this.#lastProvenL2Epoch.getAsync();
}

setProvenL2EpochNumber(epochNumber: number) {
return this.#lastProvenL2Epoch.set(epochNumber);
}

#computeBlockRange(start: number, limit: number): Required<Pick<Range<number>, 'start' | 'limit'>> {
if (limit < 1) {
throw new Error(`Invalid limit: ${limit}`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,18 +324,10 @@ export class KVArchiverDataStore implements ArchiverDataStore {
return this.#blockStore.getProvenL2BlockNumber();
}

getProvenL2EpochNumber(): Promise<number | undefined> {
return this.#blockStore.getProvenL2EpochNumber();
}

async setProvenL2BlockNumber(blockNumber: number) {
await this.#blockStore.setProvenL2BlockNumber(blockNumber);
}

async setProvenL2EpochNumber(epochNumber: number) {
await this.#blockStore.setProvenL2EpochNumber(epochNumber);
}

async setBlockSynchedL1BlockNumber(l1BlockNumber: bigint) {
await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -758,20 +758,11 @@ export class MemoryArchiverStore implements ArchiverDataStore {
return Promise.resolve(this.lastProvenL2BlockNumber);
}

public getProvenL2EpochNumber(): Promise<number | undefined> {
return Promise.resolve(this.lastProvenL2EpochNumber);
}

public setProvenL2BlockNumber(l2BlockNumber: number): Promise<void> {
this.lastProvenL2BlockNumber = l2BlockNumber;
return Promise.resolve();
}

public setProvenL2EpochNumber(l2EpochNumber: number): Promise<void> {
this.lastProvenL2EpochNumber = l2EpochNumber;
return Promise.resolve();
}

setBlockSynchedL1BlockNumber(l1BlockNumber: bigint) {
this.lastL1BlockNewBlocks = l1BlockNumber;
return Promise.resolve();
Expand Down
9 changes: 0 additions & 9 deletions yarn-project/archiver/src/test/mock_l2_block_source.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import { type BlockHeader, TxHash, TxReceipt, TxStatus } from '@aztec/stdlib/tx'
export class MockL2BlockSource implements L2BlockSource {
protected l2Blocks: L2Block[] = [];

private provenEpochNumber: number = 0;
private provenBlockNumber: number = 0;

private log = createLogger('archiver:mock_l2_block_source');
Expand Down Expand Up @@ -40,10 +39,6 @@ export class MockL2BlockSource implements L2BlockSource {
this.provenBlockNumber = provenBlockNumber;
}

public setProvenEpochNumber(provenEpochNumber: number) {
this.provenEpochNumber = provenEpochNumber;
}

/**
* Method to fetch the rollup contract address at the base-layer.
* @returns The rollup address.
Expand Down Expand Up @@ -72,10 +67,6 @@ export class MockL2BlockSource implements L2BlockSource {
return Promise.resolve(this.provenBlockNumber);
}

public getProvenL2EpochNumber(): Promise<number | undefined> {
return Promise.resolve(this.provenEpochNumber);
}

/**
* Gets an l2 block.
* @param number - The block number to return (inclusive).
Expand Down
3 changes: 1 addition & 2 deletions yarn-project/p2p/src/client/p2p_client.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,8 @@ describe('In-Memory P2P Client', () => {
await kvStore.close();
});

const advanceToProvenBlock = async (getProvenBlockNumber: number, provenEpochNumber = getProvenBlockNumber) => {
const advanceToProvenBlock = async (getProvenBlockNumber: number) => {
blockSource.setProvenBlockNumber(getProvenBlockNumber);
blockSource.setProvenEpochNumber(provenEpochNumber);
await retryUntil(async () => (await client.getSyncedProvenBlockNum()) >= getProvenBlockNumber, 'synced', 10, 0.1);
};

Expand Down
6 changes: 0 additions & 6 deletions yarn-project/stdlib/src/block/l2_block_source.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,6 @@ export interface L2BlockSource {
*/
getProvenBlockNumber(): Promise<number>;

/**
* Gets the number of the latest L2 proven epoch seen by the block source implementation.
* @returns The number of the latest L2 proven epoch seen by the block source implementation.
*/
getProvenL2EpochNumber(): Promise<number | undefined>;

/**
* Gets an l2 block. If a negative number is passed, the block returned is the most recent.
* @param number - The block number to return (inclusive).
Expand Down
8 changes: 0 additions & 8 deletions yarn-project/stdlib/src/interfaces/archiver.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,6 @@ describe('ArchiverApiSchema', () => {
expect(result).toBe(1);
});

it('getProvenL2EpochNumber', async () => {
const result = await context.client.getProvenL2EpochNumber();
expect(result).toBe(1);
});

it('getBlock', async () => {
const result = await context.client.getBlock(1);
expect(result).toBeInstanceOf(L2Block);
Expand Down Expand Up @@ -270,9 +265,6 @@ class MockArchiver implements ArchiverApi {
getProvenBlockNumber(): Promise<number> {
return Promise.resolve(1);
}
getProvenL2EpochNumber(): Promise<number | undefined> {
return Promise.resolve(1);
}
getBlock(number: number): Promise<L2Block | undefined> {
return Promise.resolve(L2Block.random(number));
}
Expand Down
1 change: 0 additions & 1 deletion yarn-project/stdlib/src/interfaces/archiver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ export const ArchiverApiSchema: ApiSchemaFor<ArchiverApi> = {
getRegistryAddress: z.function().args().returns(schemas.EthAddress),
getBlockNumber: z.function().args().returns(schemas.Integer),
getProvenBlockNumber: z.function().args().returns(schemas.Integer),
getProvenL2EpochNumber: z.function().args().returns(schemas.Integer.optional()),
getBlock: z.function().args(schemas.Integer).returns(L2Block.schema.optional()),
getBlockHeader: z
.function()
Expand Down
Loading