Skip to content

Commit da58926

Browse files
committed
fix: epoch update
Signed-off-by: Tomás Migone <[email protected]>
1 parent fac2ab2 commit da58926

File tree

1 file changed

+28
-15
lines changed

1 file changed

+28
-15
lines changed

src/mappings/helpers/helpers.ts

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -753,19 +753,9 @@ export function createOrLoadGraphNetwork(
753753
graphNetwork.currentL1BlockNumber = blockNumber
754754
} else {
755755
// L2 - Get L1 block number from EpochManager
756-
let epochManagerAddress = Address.fromString(addresses.epochManager)
757-
let contract = EpochManager.bind(epochManagerAddress)
758-
let response = contract.try_blockNum()
759-
if (!response.reverted) {
760-
graphNetwork.lastLengthUpdateBlock = response.value.toI32()
761-
graphNetwork.currentL1BlockNumber = response.value
762-
} else {
763-
graphNetwork.lastLengthUpdateBlock = 0
764-
graphNetwork.currentL1BlockNumber = BigInt.fromI32(0)
765-
log.warning('Failed to query EpochManager to get L1 block number. Transaction reverted. Address used: {}', [
766-
epochManagerAddress.toHexString(),
767-
])
768-
}
756+
let l1BlockNumber = getL1BlockNumber()
757+
graphNetwork.lastLengthUpdateBlock = l1BlockNumber.toI32()
758+
graphNetwork.currentL1BlockNumber = l1BlockNumber
769759
}
770760
graphNetwork.currentEpoch = 0
771761
graphNetwork.epochCount = 0
@@ -805,15 +795,38 @@ export function createOrLoadGraphNetwork(
805795
graphNetwork.save()
806796
}
807797

808-
// Update epoch - only if we have a non zero L1 block number, which might be zero until contracts are deployed and the first epoch is run
809-
if (!graphNetwork.currentL1BlockNumber!.equals(BigInt.fromI32(0))) {
798+
if (!addresses.isL1) {
799+
let l1BlockNumber = getL1BlockNumber()
800+
graphNetwork.lastLengthUpdateBlock = l1BlockNumber.toI32()
801+
graphNetwork.currentL1BlockNumber = l1BlockNumber
802+
}
803+
804+
if (
805+
!graphNetwork.currentL1BlockNumber!.equals(BigInt.fromI32(0)) &&
806+
graphNetwork.epochLength !== 0
807+
) {
808+
// these might be zero until contracts are deployed and the first epoch is run
810809
let epoch = createOrLoadEpoch(addresses.isL1 ? blockNumber : graphNetwork.currentL1BlockNumber!, graphNetwork)
811810
epoch.save()
812811
}
813812

814813
return graphNetwork as GraphNetwork
815814
}
816815

816+
export function getL1BlockNumber(): BigInt {
817+
let epochManagerAddress = Address.fromString(addresses.epochManager)
818+
let contract = EpochManager.bind(epochManagerAddress)
819+
let response = contract.try_blockNum()
820+
if (!response.reverted) {
821+
return response.value
822+
} else {
823+
log.warning('Failed to query EpochManager to get L1 block number. Transaction reverted. Address used: {}', [
824+
epochManagerAddress.toHexString(),
825+
])
826+
return BigInt.fromI32(0)
827+
}
828+
}
829+
817830
export function addQm(a: ByteArray): ByteArray {
818831
let out = new Uint8Array(34)
819832
out[0] = 0x12

0 commit comments

Comments
 (0)