@@ -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
3131func 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