@@ -345,6 +345,7 @@ type ChainConfig struct {
345345 GraniteTime * uint64 `json:"graniteTime,omitempty"` // Granite switch time (nil = no fork, 0 = already on Optimism Granite)
346346 HoloceneTime * uint64 `json:"holoceneTime,omitempty"` // Holocene switch time (nil = no fork, 0 = already on Optimism Holocene)
347347 IsthmusTime * uint64 `json:"isthmusTime,omitempty"` // Isthmus switch time (nil = no fork, 0 = already on Optimism Isthmus)
348+ JovianTime * uint64 `json:"jovianTime,omitempty"` // Jovian switch time (nil = no fork, 0 = already on Optimism Jovian)
348349
349350 InteropTime * uint64 `json:"interopTime,omitempty"` // Interop switch time (nil = no fork, 0 = already on optimism interop)
350351
@@ -501,6 +502,9 @@ func (c *ChainConfig) Description() string {
501502 if c .IsthmusTime != nil {
502503 banner += fmt .Sprintf (" - Isthmus: @%-10v\n " , * c .IsthmusTime )
503504 }
505+ if c .JovianTime != nil {
506+ banner += fmt .Sprintf (" - Jovian: @%-10v\n " , * c .JovianTime )
507+ }
504508 if c .InteropTime != nil {
505509 banner += fmt .Sprintf (" - Interop: @%-10v\n " , * c .InteropTime )
506510 }
@@ -659,6 +663,10 @@ func (c *ChainConfig) IsIsthmus(time uint64) bool {
659663 return isTimestampForked (c .IsthmusTime , time )
660664}
661665
666+ func (c * ChainConfig ) IsJovian (time uint64 ) bool {
667+ return isTimestampForked (c .JovianTime , time )
668+ }
669+
662670func (c * ChainConfig ) IsInterop (time uint64 ) bool {
663671 return isTimestampForked (c .InteropTime , time )
664672}
@@ -701,6 +709,10 @@ func (c *ChainConfig) IsOptimismIsthmus(time uint64) bool {
701709 return c .IsOptimism () && c .IsIsthmus (time )
702710}
703711
712+ func (c * ChainConfig ) IsOptimismJovian (time uint64 ) bool {
713+ return c .IsOptimism () && c .IsJovian (time )
714+ }
715+
704716// IsOptimismPreBedrock returns true iff this is an optimism node & bedrock is not yet active
705717func (c * ChainConfig ) IsOptimismPreBedrock (num * big.Int ) bool {
706718 return c .IsOptimism () && ! c .IsBedrock (num )
@@ -892,6 +904,9 @@ func (c *ChainConfig) checkCompatible(newcfg *ChainConfig, headNumber *big.Int,
892904 if isForkTimestampIncompatible (c .IsthmusTime , newcfg .IsthmusTime , headTimestamp , genesisTimestamp ) {
893905 return newTimestampCompatError ("Isthmus fork timestamp" , c .IsthmusTime , newcfg .IsthmusTime )
894906 }
907+ if isForkTimestampIncompatible (c .JovianTime , newcfg .JovianTime , headTimestamp , genesisTimestamp ) {
908+ return newTimestampCompatError ("Jovian fork timestamp" , c .JovianTime , newcfg .JovianTime )
909+ }
895910 if isForkTimestampIncompatible (c .InteropTime , newcfg .InteropTime , headTimestamp , genesisTimestamp ) {
896911 return newTimestampCompatError ("Interop fork timestamp" , c .InteropTime , newcfg .InteropTime )
897912 }
0 commit comments