@@ -492,18 +492,18 @@ func (c *ChainConfig) IsTerminalPoWBlock(parentTotalDiff *big.Int, totalDiff *bi
492
492
}
493
493
494
494
// IsShanghai returns whether time is either equal to the Shanghai fork time or greater.
495
- func (c * ChainConfig ) IsShanghai (time uint64 ) bool {
496
- return isTimestampForked (c .ShanghaiTime , time )
495
+ func (c * ChainConfig ) IsShanghai (num * big. Int , time uint64 ) bool {
496
+ return c . IsLondon ( num ) && isTimestampForked (c .ShanghaiTime , time )
497
497
}
498
498
499
499
// IsCancun returns whether num is either equal to the Cancun fork time or greater.
500
- func (c * ChainConfig ) IsCancun (time uint64 ) bool {
501
- return isTimestampForked (c .CancunTime , time )
500
+ func (c * ChainConfig ) IsCancun (num * big. Int , time uint64 ) bool {
501
+ return c . IsLondon ( num ) && isTimestampForked (c .CancunTime , time )
502
502
}
503
503
504
504
// IsPrague returns whether num is either equal to the Prague fork time or greater.
505
- func (c * ChainConfig ) IsPrague (time uint64 ) bool {
506
- return isTimestampForked (c .PragueTime , time )
505
+ func (c * ChainConfig ) IsPrague (num * big. Int , time uint64 ) bool {
506
+ return c . IsLondon ( num ) && isTimestampForked (c .PragueTime , time )
507
507
}
508
508
509
509
// CheckCompatible checks whether scheduled fork transitions have been imported
@@ -829,8 +829,8 @@ func (c *ChainConfig) Rules(num *big.Int, isMerge bool, timestamp uint64) Rules
829
829
IsBerlin : c .IsBerlin (num ),
830
830
IsLondon : c .IsLondon (num ),
831
831
IsMerge : isMerge ,
832
- IsShanghai : c .IsShanghai (timestamp ),
833
- IsCancun : c .IsCancun (timestamp ),
834
- IsPrague : c .IsPrague (timestamp ),
832
+ IsShanghai : c .IsShanghai (num , timestamp ),
833
+ IsCancun : c .IsCancun (num , timestamp ),
834
+ IsPrague : c .IsPrague (num , timestamp ),
835
835
}
836
836
}
0 commit comments