mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-01-12 07:28:08 -05:00
43 lines
805 B
Go
43 lines
805 B
Go
package utils
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
DomainOffset = 6
|
|
STFVersionMask = (1 << DomainOffset) - 1
|
|
)
|
|
|
|
// version get the version for the chain instance
|
|
//
|
|
// TODO: This is not foolproof and does not cover all scenarios.
|
|
func Version(hardForkName string, ValidiumMode bool) (uint8, error) {
|
|
|
|
var domain, stfVersion uint8
|
|
|
|
if ValidiumMode {
|
|
domain = 1
|
|
stfVersion = 1
|
|
} else {
|
|
domain = 0
|
|
switch canonicalName := strings.ToLower(hardForkName); canonicalName {
|
|
case "euclidv1":
|
|
stfVersion = 6
|
|
case "euclidv2":
|
|
stfVersion = 7
|
|
case "feynman":
|
|
stfVersion = 8
|
|
case "galileo":
|
|
stfVersion = 9
|
|
case "galileov2":
|
|
stfVersion = 10
|
|
default:
|
|
return 0, errors.New("unknown fork name " + canonicalName)
|
|
}
|
|
}
|
|
|
|
return (domain << DomainOffset) + stfVersion, nil
|
|
}
|