@@ -215,6 +215,12 @@ func (rc *RewardsCalculator) GetRewardSnapshotStatus(snapshotDate string) (*stor
215215 }
216216 return nil , res .Error
217217 }
218+
219+ // Check if any rows were returned - if not, return nil
220+ if res .RowsAffected == 0 {
221+ return nil , nil
222+ }
223+
218224 return r , nil
219225}
220226
@@ -390,7 +396,6 @@ func (rc *RewardsCalculator) findGeneratedRewardSnapshotByBlock(blockHeight uint
390396 return & generatedRewardSnapshots , nil
391397}
392398
393- //nolint:unused
394399func (rc * RewardsCalculator ) findRewardsTablesBySnapshotDate (snapshotDate string ) ([]string , error ) {
395400 schemaName := rc .globalConfig .DatabaseConfig .SchemaName
396401 if schemaName == "" {
@@ -432,63 +437,32 @@ func (rc *RewardsCalculator) DeleteCorruptedRewardsFromBlockHeight(blockHeight u
432437 return res .Error
433438 }
434439
435- // If no previous snapshot found, we'll delete all data from the tables
436- var previousSnapshotId uint64 = 0
437- if previousSnapshot != nil {
438- previousSnapshotId = previousSnapshot .Id
439- }
440-
441440 for _ , tableName := range rewardsUtils .RewardsTableBaseNames {
442441 rc .logger .Sugar ().Infow ("Deleting rows from rewards table" , "tableName" , tableName )
443442
444443 var dropQuery string
444+ var res * gorm.DB
445+
446+ // gold_table has a different structure and needs to be deleted based on snapshot date
445447 if tableName == rewardsUtils .RewardsTable_GoldTable {
446- // gold_table doesn't have generated_rewards_snapshot_id, use snapshot date instead
447448 dropQuery = fmt .Sprintf ("delete from %s where snapshot >= @snapshotDate" , tableName )
448- res := rc .grm .Exec (dropQuery , sql .Named ("snapshotDate" , generatedSnapshot .SnapshotDate ))
449- if res .Error != nil {
450- rc .logger .Sugar ().Errorw ("Failed to delete rows from rewards table" , "error" , res .Error , "tableName" , tableName )
451- return res .Error
452- }
453- rc .logger .Sugar ().Infow ("Deleted rows from rewards table" ,
454- "tableName" , tableName ,
455- "recordsDeleted" , res .RowsAffected )
449+ res = rc .grm .Exec (dropQuery , sql .Named ("snapshotDate" , previousSnapshot .SnapshotDate ))
456450 } else {
457- // Regular tables use generated_rewards_snapshot_id
458- if previousSnapshotId == 0 {
459- // No previous snapshot, delete all data
460- dropQuery = fmt .Sprintf ("delete from %s" , tableName )
461- res := rc .grm .Exec (dropQuery )
462- if res .Error != nil {
463- rc .logger .Sugar ().Errorw ("Failed to delete rows from rewards table" , "error" , res .Error , "tableName" , tableName )
464- return res .Error
465- }
466- rc .logger .Sugar ().Infow ("Deleted all rows from rewards table" ,
467- "tableName" , tableName ,
468- "recordsDeleted" , res .RowsAffected )
469- } else {
470- dropQuery = fmt .Sprintf ("delete from %s where generated_rewards_snapshot_id >= @generatedRewardsSnapshotId" , tableName )
471- res := rc .grm .Exec (dropQuery , sql .Named ("generatedRewardsSnapshotId" , previousSnapshotId ))
472- if res .Error != nil {
473- rc .logger .Sugar ().Errorw ("Failed to delete rows from rewards table" , "error" , res .Error , "tableName" , tableName )
474- return res .Error
475- }
476- rc .logger .Sugar ().Infow ("Deleted rows from rewards table" ,
477- "tableName" , tableName ,
478- "recordsDeleted" , res .RowsAffected )
479- }
451+ dropQuery = fmt .Sprintf ("delete from %s where generated_rewards_snapshot_id >= @generatedRewardsSnapshotId" , tableName )
452+ res = rc .grm .Exec (dropQuery , sql .Named ("generatedRewardsSnapshotId" , previousSnapshot .Id ))
480453 }
481- }
482454
483- // Also delete from generated_rewards_snapshots table
484- if previousSnapshotId == 0 {
485- // No previous snapshot, delete all snapshots from the generated one onwards
486- res = rc .grm .Exec ("delete from generated_rewards_snapshots where id >= @generatedRewardsSnapshotId" ,
487- sql .Named ("generatedRewardsSnapshotId" , generatedSnapshot .Id ))
488- } else {
489- res = rc .grm .Exec ("delete from generated_rewards_snapshots where id >= @generatedRewardsSnapshotId" ,
490- sql .Named ("generatedRewardsSnapshotId" , previousSnapshotId ))
455+ if res .Error != nil {
456+ rc .logger .Sugar ().Errorw ("Failed to delete rows from rewards table" , "error" , res .Error , "tableName" , tableName )
457+ return res .Error
458+ }
459+ rc .logger .Sugar ().Infow ("Deleted rows from rewards table" ,
460+ "tableName" , tableName ,
461+ "recordsDeleted" , res .RowsAffected )
491462 }
463+
464+ res = rc .grm .Exec ("delete from generated_rewards_snapshots where id >= @generatedRewardsSnapshotId" ,
465+ sql .Named ("generatedRewardsSnapshotId" , previousSnapshot .Id ))
492466 if res .Error != nil {
493467 rc .logger .Sugar ().Errorw ("Failed to delete from generated_rewards_snapshots" , "error" , res .Error )
494468 return res .Error
@@ -628,109 +602,106 @@ func (rc *RewardsCalculator) isValidSnapshotDate(snapshotDate time.Time) bool {
628602func (rc * RewardsCalculator ) generateSnapshotData (snapshotDate string ) error {
629603 var err error
630604
631- rc .logger .Sugar ().Infow ("Generating combined rewards" , zap .String ("snapshotDate" , snapshotDate ))
632605 if err = rc .GenerateAndInsertCombinedRewards (snapshotDate ); err != nil {
633606 rc .logger .Sugar ().Errorw ("Failed to generate combined rewards" , "error" , err )
634607 return err
635608 }
609+ rc .logger .Sugar ().Debugw ("Generated combined rewards" )
636610
637- rc .logger .Sugar ().Infow ("Generating staker shares" , zap .String ("snapshotDate" , snapshotDate ))
638611 if err = rc .GenerateAndInsertStakerShares (snapshotDate ); err != nil {
639612 rc .logger .Sugar ().Errorw ("Failed to generate staker shares" , "error" , err )
640613 return err
641614 }
615+ rc .logger .Sugar ().Debugw ("Generated staker shares" )
642616
643- rc .logger .Sugar ().Infow ("Generating operator shares" , zap .String ("snapshotDate" , snapshotDate ))
644617 if err = rc .GenerateAndInsertOperatorShares (snapshotDate ); err != nil {
645618 rc .logger .Sugar ().Errorw ("Failed to generate operator shares" , "error" , err )
646619 return err
647620 }
621+ rc .logger .Sugar ().Debugw ("Generated operator shares" )
648622
649- rc .logger .Sugar ().Infow ("Generating operator AVS registration snapshots" , zap .String ("snapshotDate" , snapshotDate ))
650623 if err = rc .GenerateAndInsertOperatorAvsRegistrationSnapshots (snapshotDate ); err != nil {
651624 rc .logger .Sugar ().Errorw ("Failed to generate operator AVS registration snapshots" , "error" , err )
652625 return err
653626 }
627+ rc .logger .Sugar ().Debugw ("Generated operator AVS registration snapshots" )
654628
655- rc .logger .Sugar ().Infow ("Generating operator AVS strategy snapshots" , zap .String ("snapshotDate" , snapshotDate ))
656629 if err = rc .GenerateAndInsertOperatorAvsStrategySnapshots (snapshotDate ); err != nil {
657630 rc .logger .Sugar ().Errorw ("Failed to generate operator AVS strategy snapshots" , "error" , err )
658631 return err
659632 }
633+ rc .logger .Sugar ().Debugw ("Generated operator AVS strategy snapshots" )
660634
661- rc .logger .Sugar ().Infow ("Generating operator share snapshots" , zap .String ("snapshotDate" , snapshotDate ))
662635 if err = rc .GenerateAndInsertOperatorShareSnapshots (snapshotDate ); err != nil {
663636 rc .logger .Sugar ().Errorw ("Failed to generate operator share snapshots" , "error" , err )
664637 return err
665638 }
639+ rc .logger .Sugar ().Debugw ("Generated operator share snapshots" )
666640
667- rc .logger .Sugar ().Infow ("Generating staker share snapshots" , zap .String ("snapshotDate" , snapshotDate ))
668641 if err = rc .GenerateAndInsertStakerShareSnapshots (snapshotDate ); err != nil {
669642 rc .logger .Sugar ().Errorw ("Failed to generate staker share snapshots" , "error" , err )
670643 return err
671644 }
645+ rc .logger .Sugar ().Debugw ("Generated staker share snapshots" )
672646
673- rc .logger .Sugar ().Infow ("Generating staker delegation snapshots" , zap .String ("snapshotDate" , snapshotDate ))
674647 if err = rc .GenerateAndInsertStakerDelegationSnapshots (snapshotDate ); err != nil {
675648 rc .logger .Sugar ().Errorw ("Failed to generate staker delegation snapshots" , "error" , err )
676649 return err
677650 }
651+ rc .logger .Sugar ().Debugw ("Generated staker delegation snapshots" )
678652
679653 // ------------------------------------------------------------------------
680654 // Rewards V2 snapshots
681655 // ------------------------------------------------------------------------
682-
683- rc .logger .Sugar ().Infow ("Generating operator directed rewards" , zap .String ("snapshotDate" , snapshotDate ))
684656 if err = rc .GenerateAndInsertOperatorDirectedRewards (snapshotDate ); err != nil {
685657 rc .logger .Sugar ().Errorw ("Failed to generate operator directed rewards" , "error" , err )
686658 return err
687659 }
688-
689- rc .logger .Sugar ().Infow ("Generating operator avs split snapshots" , zap .String ("snapshotDate" , snapshotDate ))
660+ rc .logger .Sugar ().Debugw ("Generated operator directed rewards" )
690661 if err = rc .GenerateAndInsertOperatorAvsSplitSnapshots (snapshotDate ); err != nil {
691662 rc .logger .Sugar ().Errorw ("Failed to generate operator avs split snapshots" , "error" , err )
692663 return err
693664 }
665+ rc .logger .Sugar ().Debugw ("Generated operator avs split snapshots" )
694666
695- rc .logger .Sugar ().Infow ("Generating operator PI split snapshots" , zap .String ("snapshotDate" , snapshotDate ))
696667 if err = rc .GenerateAndInsertOperatorPISplitSnapshots (snapshotDate ); err != nil {
697668 rc .logger .Sugar ().Errorw ("Failed to generate operator pi snapshots" , "error" , err )
698669 return err
699670 }
671+ rc .logger .Sugar ().Debugw ("Generated operator pi snapshots" )
700672
701- rc .logger .Sugar ().Infow ("Generating default operator split snapshots" , zap .String ("snapshotDate" , snapshotDate ))
702673 if err = rc .GenerateAndInsertDefaultOperatorSplitSnapshots (snapshotDate ); err != nil {
703674 rc .logger .Sugar ().Errorw ("Failed to generate default operator split snapshots" , "error" , err )
704675 return err
705676 }
677+ rc .logger .Sugar ().Debugw ("Generated default operator split snapshots" )
706678
707679 // ------------------------------------------------------------------------
708680 // Rewards V2.1 snapshots
709681 // ------------------------------------------------------------------------
710-
711- rc .logger .Sugar ().Infow ("Generating operator directed operator set rewards" , zap .String ("snapshotDate" , snapshotDate ))
712682 if err = rc .GenerateAndInsertOperatorDirectedOperatorSetRewards (snapshotDate ); err != nil {
713683 rc .logger .Sugar ().Errorw ("Failed to generate operator directed operator set rewards" , "error" , err )
714684 return err
715685 }
686+ rc .logger .Sugar ().Debugw ("Generated operator directed operator set rewards" )
716687
717- rc .logger .Sugar ().Infow ("Generating operator set split snapshots" , zap .String ("snapshotDate" , snapshotDate ))
718688 if err = rc .GenerateAndInsertOperatorSetSplitSnapshots (snapshotDate ); err != nil {
719689 rc .logger .Sugar ().Errorw ("Failed to generate operator set split snapshots" , "error" , err )
720690 return err
721691 }
692+ rc .logger .Sugar ().Debugw ("Generated operator set split snapshots" )
722693
723- rc .logger .Sugar ().Infow ("Generating operator set operator registration snapshots" , zap .String ("snapshotDate" , snapshotDate ))
724694 if err = rc .GenerateAndInsertOperatorSetOperatorRegistrationSnapshots (snapshotDate ); err != nil {
725695 rc .logger .Sugar ().Errorw ("Failed to generate operator set operator registration snapshots" , "error" , err )
726696 return err
727697 }
698+ rc .logger .Sugar ().Debugw ("Generated operator set operator registration snapshots" )
728699
729- rc .logger .Sugar ().Infow ("Generating operator set strategy registration snapshots" , zap .String ("snapshotDate" , snapshotDate ))
730700 if err = rc .GenerateAndInsertOperatorSetStrategyRegistrationSnapshots (snapshotDate ); err != nil {
731701 rc .logger .Sugar ().Errorw ("Failed to generate operator set strategy registration snapshots" , "error" , err )
732702 return err
733703 }
704+ rc .logger .Sugar ().Debugw ("Generated operator set strategy registration snapshots" )
734705
735706 return nil
736707}
@@ -820,22 +791,6 @@ func (rc *RewardsCalculator) generateGoldTables(snapshotDate string, generatedSn
820791 return err
821792 }
822793
823- // handle temp tables
824- if err := rc .CopyTempActiveRewardsToActiveRewards (snapshotDate , generatedSnapshotId ); err != nil {
825- rc .logger .Sugar ().Errorw ("Failed to copy temp active rewards to active rewards" , "error" , err )
826- return err
827- }
828-
829- if err := rc .CopyTempActiveODRewardsToActiveODRewards (snapshotDate , generatedSnapshotId ); err != nil {
830- rc .logger .Sugar ().Errorw ("Failed to copy temp od active rewards to active od rewards" , "error" , err )
831- return err
832- }
833-
834- if err := rc .CopyTempActiveODOperatorSetRewardsToActiveODOperatorSetRewards (snapshotDate , generatedSnapshotId ); err != nil {
835- rc .logger .Sugar ().Errorw ("Failed to copy temp active od operator set rewards to active od operator set rewards" , "error" , err )
836- return err
837- }
838-
839794 return nil
840795}
841796
0 commit comments