@@ -395,7 +395,8 @@ var (
395395 conf .GraniteTime = & zero
396396 conf .HoloceneTime = & zero
397397 conf .IsthmusTime = & zero
398- conf .JovianTime = nil
398+ conf .JovianTime = & zero
399+ conf .KarstTime = nil
399400 conf .InteropTime = nil
400401 conf .Optimism = & OptimismConfig {EIP1559Elasticity : 6 , EIP1559Denominator : 50 , EIP1559DenominatorCanyon : uint64ptr (250 )}
401402 return & conf
@@ -514,6 +515,7 @@ type ChainConfig struct {
514515 HoloceneTime * uint64 `json:"holoceneTime,omitempty"` // Holocene switch time (nil = no fork, 0 = already on Optimism Holocene)
515516 IsthmusTime * uint64 `json:"isthmusTime,omitempty"` // Isthmus switch time (nil = no fork, 0 = already on Optimism Isthmus)
516517 JovianTime * uint64 `json:"jovianTime,omitempty"` // Jovian switch time (nil = no fork, 0 = already on Optimism Jovian)
518+ KarstTime * uint64 `json:"karstTime,omitempty"` // Karst switch time (nil = no fork, 0 = already on Optimism Karst)
517519
518520 InteropTime * uint64 `json:"interopTime,omitempty"` // Interop switch time (nil = no fork, 0 = already on optimism interop)
519521
@@ -1018,6 +1020,10 @@ func (c *ChainConfig) IsJovian(time uint64) bool {
10181020 return isTimestampForked (c .JovianTime , time )
10191021}
10201022
1023+ func (c * ChainConfig ) IsKarst (time uint64 ) bool {
1024+ return isTimestampForked (c .KarstTime , time )
1025+ }
1026+
10211027func (c * ChainConfig ) IsInterop (time uint64 ) bool {
10221028 return isTimestampForked (c .InteropTime , time )
10231029}
@@ -1064,6 +1070,10 @@ func (c *ChainConfig) IsOptimismJovian(time uint64) bool {
10641070 return c .IsOptimism () && c .IsJovian (time )
10651071}
10661072
1073+ func (c * ChainConfig ) IsOptimismKarst (time uint64 ) bool {
1074+ return c .IsOptimism () && c .IsKarst (time )
1075+ }
1076+
10671077// IsOptimismPreBedrock returns true iff this is an optimism node & bedrock is not yet active
10681078func (c * ChainConfig ) IsOptimismPreBedrock (num * big.Int ) bool {
10691079 return c .IsOptimism () && ! c .IsBedrock (num )
@@ -1641,6 +1651,7 @@ func (c *ChainConfig) Rules(num *big.Int, isMerge bool, timestamp uint64) Rules
16411651 IsOptimismHolocene : isMerge && c .IsOptimismHolocene (timestamp ),
16421652 IsOptimismIsthmus : isMerge && c .IsOptimismIsthmus (timestamp ),
16431653 IsOptimismJovian : isMerge && c .IsOptimismJovian (timestamp ),
1654+ IsOptimismKarst : isMerge && c .IsOptimismKarst (timestamp ),
16441655 }
16451656}
16461657
0 commit comments