@@ -1112,44 +1112,47 @@ func checkIfBlockSnapshotsPublishable(snapDir string) error {
11121112 sum += res .To - res .From
11131113 headerSegName := info .Name ()
11141114 headerSegVer := res .Version
1115- if ! headerSegVer .Eq (verMap ["headers" ]["seg" ].Current ) {
1116- return fmt .Errorf ("expected version %s, filename: %s" , verMap ["header" ]["seg" ].Current .String (), info .Name ())
1117- }
1118- idxHeaderName := strings .Replace (headerSegName , ".seg" , ".idx" , 1 )
1119- headerIdxVer := verMap ["headers" ]["idx" ].Current
1120- idxHeaderName = strings .Replace (idxHeaderName , headerSegVer .String (), headerIdxVer .String (), 1 )
1121- if _ , err := os .Stat (filepath .Join (snapDir , idxHeaderName )); err != nil {
1122- return fmt .Errorf ("missing index file %s" , idxHeaderName )
1115+
1116+ if ! verMap ["headers" ]["seg" ].Supports (headerSegVer ) {
1117+ return fmt .Errorf ("expected version %s, filename: %s" , verMap ["headers" ]["seg" ].Current .String (), info .Name ())
11231118 }
11241119 // check that all files exist
11251120 for _ , snapType := range []string {"headers" , "transactions" , "bodies" } {
11261121 segName := strings .Replace (headerSegName , "headers" , snapType , 1 )
11271122 segVer := verMap [snapType ]["seg" ].Current
11281123 segName = strings .Replace (segName , headerSegVer .String (), segVer .String (), 1 )
1129- // check that the file exist
1130- if exists , err := dir2 . FileExist ( filepath . Join ( snapDir , segName )); err != nil {
1124+ segNameMasked , err := version . ReplaceVersionWithMask ( segName )
1125+ if err != nil {
11311126 return err
1132- } else if ! exists {
1133- return fmt .Errorf ("missing file %s" , segName )
1127+ }
1128+ segName , ver , ok , err := version .FindFilesWithVersionsByPattern (filepath .Join (snapDir , segNameMasked ))
1129+ if err != nil {
1130+ return fmt .Errorf ("finding %s: %w" , segNameMasked , err )
1131+ }
1132+ if ! ok {
1133+ return fmt .Errorf ("missing file-%s" , segNameMasked )
1134+ }
1135+ if ! verMap [snapType ]["seg" ].Supports (ver ) {
1136+ return fmt .Errorf ("expected version %s, filename: %s" , verMap [snapType ]["seg" ].Current .String (), segName )
11341137 }
11351138 // check that the index file exist
11361139 idxName := strings .Replace (segName , ".seg" , ".idx" , 1 )
1137- idxVer := verMap [snapType ]["idx" ].Current
1138- idxName = strings .Replace (idxName , segVer .String (), idxVer .String (), 1 )
1139- if exists , err := dir2 .FileExist (filepath .Join (snapDir , idxName )); err != nil {
1140+ idxNameMasked , err := version .ReplaceVersionWithMask (idxName )
1141+ if err != nil {
11401142 return err
1141- } else if ! exists {
1142- return fmt .Errorf ("missing index file %s" , idxName )
1143+ }
1144+ if err := version .CheckIsThereFileWithSupportedVersion (idxNameMasked , verMap [snapType ]["idx" ].MinSupported ); err != nil {
1145+ return fmt .Errorf ("index file %s: %w" , idxName , err )
11431146 }
11441147 if snapType == "transactions" {
11451148 // check that the tx index file exist
11461149 txIdxName := strings .Replace (segName , "transactions.seg" , "transactions-to-block.idx" , 1 )
1147- txIdxVer := verMap ["transactions-to-block" ]["idx" ].Current
1148- txIdxName = strings .Replace (txIdxName , segVer .String (), txIdxVer .String (), 1 )
1149- if exists , err := dir2 .FileExist (filepath .Join (snapDir , txIdxName )); err != nil {
1150+ txIdxNameMasked , err := version .ReplaceVersionWithMask (txIdxName )
1151+ if err != nil {
11501152 return err
1151- } else if ! exists {
1152- return fmt .Errorf ("missing tx index file %s" , txIdxName )
1153+ }
1154+ if err := version .CheckIsThereFileWithSupportedVersion (txIdxNameMasked , verMap ["transactions-to-block" ]["idx" ].MinSupported ); err != nil {
1155+ return fmt .Errorf ("index file %s: %w" , txIdxName , err )
11531156 }
11541157 }
11551158 }
0 commit comments