Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 15 additions & 12 deletions rocketpool/watchtower/submit-network-balances.go
Original file line number Diff line number Diff line change
Expand Up @@ -392,19 +392,22 @@ func (t *submitNetworkBalances) getNetworkBalances(elBlockHeader *types.Header,
return nil
})

// Get megapool balance details
wg.Go(func() error {
megapoolBalanceDetails = make([]megapoolBalanceDetail, len(state.MegapoolDetails))
i := 0
for megapoolAddress, megapoolDetails := range state.MegapoolDetails {
megapoolBalanceDetails[i], err = t.getMegapoolBalanceDetails(megapoolAddress, state, megapoolDetails)
if err != nil {
return fmt.Errorf("error getting megapool balance details: %w", err)
// if Saturn is deployed
if state.IsSaturnDeployed {
// Get megapool balance details
wg.Go(func() error {
megapoolBalanceDetails = make([]megapoolBalanceDetail, len(state.MegapoolDetails))
i := 0
for megapoolAddress, megapoolDetails := range state.MegapoolDetails {
megapoolBalanceDetails[i], err = t.getMegapoolBalanceDetails(megapoolAddress, state, megapoolDetails)
if err != nil {
return fmt.Errorf("error getting megapool balance details: %w", err)
}
i += 1
}
i += 1
}
return nil
})
return nil
})
}

// Get distributor balance details
wg.Go(func() error {
Expand Down
9 changes: 6 additions & 3 deletions shared/services/rewards/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,19 +159,22 @@ func NewTreeGenerator(logger *log.ColorLogger, logPrefix string, rp RewardsExecu
testnetStartInterval: TestnetV11Interval,
devnetStartInterval: DevnetV11Interval,
generator: v11_generator,
requiresSaturn: true,
},
{
rewardsRulesetVersion: 10,
mainnetStartInterval: MainnetV10Interval,
testnetStartInterval: TestnetV10Interval,
devnetStartInterval: 0,
generator: v10_generator,
requiresSaturn: false,
},
{
rewardsRulesetVersion: 9,
mainnetStartInterval: MainnetV9Interval,
testnetStartInterval: 0,
generator: v9_generator,
requiresSaturn: false,
},
}

Expand All @@ -198,18 +201,18 @@ func NewTreeGenerator(logger *log.ColorLogger, logPrefix string, rp RewardsExecu
return int(b.rewardsRulesetVersion) - int(a.rewardsRulesetVersion)
})

// The first ruleset whose startInterval is at most t.index is the one to use
// The first ruleset whose startInterval is at most t.index is the one to use, but if it requires Saturn and saturn is not yet deployed, use the next one that doesn't require Saturn
for _, info := range rewardsIntervalInfos {

startInterval, err := info.GetStartInterval(network)
if err != nil {
return nil, fmt.Errorf("error getting start interval for rewards period %d: %w", t.index, err)
}
if !foundGenerator && startInterval <= t.index {
if !foundGenerator && startInterval <= t.index && (!info.requiresSaturn || state.IsSaturnDeployed) {
t.generatorImpl = info.generator
foundGenerator = true
}
if !foundApproximator && startInterval <= t.index {
if !foundApproximator && startInterval <= t.index && (!info.requiresSaturn || state.IsSaturnDeployed) {
t.approximatorImpl = info.generator
foundApproximator = true
}
Expand Down
1 change: 1 addition & 0 deletions shared/services/rewards/rewards-interval-info.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ type rewardsIntervalInfo struct {
devnetStartInterval uint64
testnetStartInterval uint64
generator treeGeneratorImpl
requiresSaturn bool
}

func (r *rewardsIntervalInfo) GetStartInterval(network cfgtypes.Network) (uint64, error) {
Expand Down
5 changes: 3 additions & 2 deletions shared/services/state/network-state.go
Original file line number Diff line number Diff line change
Expand Up @@ -312,8 +312,8 @@ func (m *NetworkStateManager) createNetworkState(slotNumber uint64) (*NetworkSta
return nil, fmt.Errorf("error getting all megapool details: %w", err)
}
}
m.logLine("4/7 - Retrieved megapool validator details (%s so far)", time.Since(start))
}
m.logLine("4/7 - Retrieved megapool validator details (%s so far)", time.Since(start))

// Calculate avg node fees and distributor shares
for _, details := range state.NodeDetails {
Expand Down Expand Up @@ -555,8 +555,9 @@ func (m *NetworkStateManager) createNetworkStateForNode(slotNumber uint64, nodeA
return nil, fmt.Errorf("error getting all megapool details: %w", err)
}
}
m.logLine("%d/%d - Retrieved megapool validator details (total time: %s)", currentStep, steps, time.Since(start))
}
m.logLine("%d/%d - Retrieved megapool validator details (total time: %s)", currentStep, steps, time.Since(start))

currentStep++

return state, nil
Expand Down
Loading