diff --git a/yarn-project/archiver/src/archiver/archiver.ts b/yarn-project/archiver/src/archiver/archiver.ts index 471acf687c03..012ddd9c5d95 100644 --- a/yarn-project/archiver/src/archiver/archiver.ts +++ b/yarn-project/archiver/src/archiver/archiver.ts @@ -381,13 +381,21 @@ export class Archiver implements ArchiveSource, Traceable { localBlockForDestinationProvenBlockNumber && provenArchive === localBlockForDestinationProvenBlockNumber.archive.root.toString() ) { - await this.store.setProvenL2BlockNumber(Number(provenBlockNumber)); - // if we are here then we must have a valid proven epoch number - await this.store.setProvenL2EpochNumber(Number(provenEpochNumber)); - this.log.info(`Updated proven chain to block ${provenBlockNumber} (epoch ${provenEpochNumber})`, { - provenBlockNumber, - provenEpochNumber, - }); + const [localProvenEpochNumber, localProvenBlockNumber] = await Promise.all([ + this.store.getProvenL2EpochNumber(), + this.store.getProvenL2BlockNumber(), + ]); + if ( + localProvenEpochNumber !== Number(provenEpochNumber) || + 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})`, { + provenBlockNumber, + provenEpochNumber, + }); + } } this.instrumentation.updateLastProvenBlock(Number(provenBlockNumber)); };