Skip to content

Commit ac984a2

Browse files
committed
rewards
1 parent 4128533 commit ac984a2

File tree

2 files changed

+38
-84
lines changed

2 files changed

+38
-84
lines changed

pkg/rewards/16_goldFinal.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ SELECT
1515
token,
1616
amount,
1717
reward_hash,
18-
generated_rewards_snapshot_id
1918
FROM {{.goldStagingTable}}
2019
ON CONFLICT (earner, snapshot, token, reward_hash) DO NOTHING
2120
`

pkg/rewards/rewards.go

Lines changed: 38 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -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
394399
func (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 {
628602
func (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

Comments
 (0)