@@ -1253,44 +1253,47 @@ func checkIfBlockSnapshotsPublishable(snapDir string) error {
12531253 sum += res .To - res .From
12541254 headerSegName := info .Name ()
12551255 headerSegVer := res .Version
1256- if ! headerSegVer .Eq (verMap ["headers" ]["seg" ].Current ) {
1257- return fmt .Errorf ("expected version %s, filename: %s" , verMap ["header" ]["seg" ].Current .String (), info .Name ())
1258- }
1259- idxHeaderName := strings .Replace (headerSegName , ".seg" , ".idx" , 1 )
1260- headerIdxVer := verMap ["headers" ]["idx" ].Current
1261- idxHeaderName = strings .Replace (idxHeaderName , headerSegVer .String (), headerIdxVer .String (), 1 )
1262- if _ , err := os .Stat (filepath .Join (snapDir , idxHeaderName )); err != nil {
1263- return fmt .Errorf ("missing index file %s" , idxHeaderName )
1256+
1257+ if ! verMap ["headers" ]["seg" ].Supports (headerSegVer ) {
1258+ return fmt .Errorf ("expected version %s, filename: %s" , verMap ["headers" ]["seg" ].Current .String (), info .Name ())
12641259 }
12651260 // check that all files exist
12661261 for _ , snapType := range []string {"headers" , "transactions" , "bodies" } {
12671262 segName := strings .Replace (headerSegName , "headers" , snapType , 1 )
12681263 segVer := verMap [snapType ]["seg" ].Current
12691264 segName = strings .Replace (segName , headerSegVer .String (), segVer .String (), 1 )
1270- // check that the file exist
1271- if exists , err := dir2 . FileExist ( filepath . Join ( snapDir , segName )); err != nil {
1265+ segNameMasked , err := version . ReplaceVersionWithMask ( segName )
1266+ if err != nil {
12721267 return err
1273- } else if ! exists {
1274- return fmt .Errorf ("missing file %s" , segName )
1268+ }
1269+ segName , ver , ok , err := version .FindFilesWithVersionsByPattern (filepath .Join (snapDir , segNameMasked ))
1270+ if err != nil {
1271+ return fmt .Errorf ("finding %s: %w" , segNameMasked , err )
1272+ }
1273+ if ! ok {
1274+ return fmt .Errorf ("missing file-%s" , segNameMasked )
1275+ }
1276+ if ! verMap [snapType ]["seg" ].Supports (ver ) {
1277+ return fmt .Errorf ("expected version %s, filename: %s" , verMap [snapType ]["seg" ].Current .String (), segName )
12751278 }
12761279 // check that the index file exist
12771280 idxName := strings .Replace (segName , ".seg" , ".idx" , 1 )
1278- idxVer := verMap [snapType ]["idx" ].Current
1279- idxName = strings .Replace (idxName , segVer .String (), idxVer .String (), 1 )
1280- if exists , err := dir2 .FileExist (filepath .Join (snapDir , idxName )); err != nil {
1281+ idxNameMasked , err := version .ReplaceVersionWithMask (idxName )
1282+ if err != nil {
12811283 return err
1282- } else if ! exists {
1283- return fmt .Errorf ("missing index file %s" , idxName )
1284+ }
1285+ if err := version .CheckIsThereFileWithSupportedVersion (idxNameMasked , verMap [snapType ]["idx" ].MinSupported ); err != nil {
1286+ return fmt .Errorf ("index file %s: %w" , idxName , err )
12841287 }
12851288 if snapType == "transactions" {
12861289 // check that the tx index file exist
12871290 txIdxName := strings .Replace (segName , "transactions.seg" , "transactions-to-block.idx" , 1 )
1288- txIdxVer := verMap ["transactions-to-block" ]["idx" ].Current
1289- txIdxName = strings .Replace (txIdxName , segVer .String (), txIdxVer .String (), 1 )
1290- if exists , err := dir2 .FileExist (filepath .Join (snapDir , txIdxName )); err != nil {
1291+ txIdxNameMasked , err := version .ReplaceVersionWithMask (txIdxName )
1292+ if err != nil {
12911293 return err
1292- } else if ! exists {
1293- return fmt .Errorf ("missing tx index file %s" , txIdxName )
1294+ }
1295+ if err := version .CheckIsThereFileWithSupportedVersion (txIdxNameMasked , verMap ["transactions-to-block" ]["idx" ].MinSupported ); err != nil {
1296+ return fmt .Errorf ("index file %s: %w" , txIdxName , err )
12941297 }
12951298 }
12961299 }
0 commit comments