Skip to content

Commit ce7dcaf

Browse files
committed
Fix hardfork min version check
1 parent 8593bb2 commit ce7dcaf

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

coordinator/internal/config/config.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@ type Config struct {
5757

5858
// AssetConfig contain assets configurated for each fork, the defaul vkfile name is "OpenVmVk.json".
5959
type AssetConfig struct {
60-
AssetsPath string `json:"assets_path"`
61-
ForkName string `json:"fork_name"`
62-
Vkfile string `json:"vk_file,omitempty"`
60+
AssetsPath string `json:"assets_path"`
61+
ForkName string `json:"fork_name"`
62+
Vkfile string `json:"vk_file,omitempty"`
63+
MinProverVersion string `json:"min_prover_version,omitempty"`
6364
}
6465

6566
// VerifierConfig load zk verifier config.

coordinator/internal/logic/auth/login.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,16 @@ type LoginLogic struct {
2424

2525
openVmVks map[string]struct{}
2626

27-
proverVersionHardForkMap map[string][]string
27+
proverVersionHardForkMap map[string]string
2828
}
2929

3030
// NewLoginLogic new a LoginLogic
3131
func NewLoginLogic(db *gorm.DB, cfg *config.Config, vf *verifier.Verifier) *LoginLogic {
32-
proverVersionHardForkMap := make(map[string][]string)
32+
proverVersionHardForkMap := make(map[string]string)
3333

34-
var hardForks []string
3534
for _, cfg := range cfg.ProverManager.Verifier.Verifiers {
36-
hardForks = append(hardForks, cfg.ForkName)
35+
proverVersionHardForkMap[cfg.ForkName] = cfg.MinProverVersion
3736
}
38-
proverVersionHardForkMap[cfg.ProverManager.Verifier.MinProverVersion] = hardForks
3937

4038
return &LoginLogic{
4139
cfg: cfg,
@@ -101,9 +99,15 @@ func (l *LoginLogic) ProverHardForkName(login *types.LoginParameter) (string, er
10199
}
102100

103101
proverVersion := proverVersionSplits[0]
104-
if hardForkNames, ok := l.proverVersionHardForkMap[proverVersion]; ok {
105-
return strings.Join(hardForkNames, ","), nil
102+
var hardForkNames []string
103+
for n, minVersion := range l.proverVersionHardForkMap {
104+
if minVersion == "" || version.CheckScrollRepoVersion(proverVersion, minVersion) {
105+
hardForkNames = append(hardForkNames, n)
106+
}
107+
}
108+
if len(hardForkNames) == 0 {
109+
return "", fmt.Errorf("invalid prover prover_version:%s", login.Message.ProverVersion)
106110
}
107111

108-
return "", fmt.Errorf("invalid prover prover_version:%s", login.Message.ProverVersion)
112+
return strings.Join(hardForkNames, ","), nil
109113
}

0 commit comments

Comments
 (0)