@@ -240,13 +240,16 @@ func GetTotalEffectiveRplStake(rp *rocketpool.RocketPool, contracts *NetworkCont
240240 }
241241 count := len (addresses )
242242 minimumStakes := make ([]* big.Int , count )
243- // Initialize the effective stakes to 0
244243 for i := range minimumStakes {
245244 minimumStakes [i ] = big .NewInt (0 )
246245 }
247- effectiveStakes := make ([]* big.Int , count )
248- for i := range effectiveStakes {
249- effectiveStakes [i ] = big .NewInt (0 )
246+ legacyStakes := make ([]* big.Int , count )
247+ for i := range legacyStakes {
248+ legacyStakes [i ] = big .NewInt (0 )
249+ }
250+ megapoolStakes := make ([]* big.Int , count )
251+ for i := range megapoolStakes {
252+ megapoolStakes [i ] = big .NewInt (0 )
250253 }
251254 // Sync
252255 var wg errgroup.Group
@@ -267,11 +270,15 @@ func GetTotalEffectiveRplStake(rp *rocketpool.RocketPool, contracts *NetworkCont
267270 address := addresses [j ]
268271 err = mc .AddCall (contracts .RocketNodeStaking , & minimumStakes [j ], "getNodeMinimumLegacyRPLStake" , address )
269272 if err != nil {
270- return fmt .Errorf ("error adding node minimum RPL stake call for address %s: %w" , address .Hex (), err )
273+ return fmt .Errorf ("error adding node minimum legacy RPL stake call for address %s: %w" , address .Hex (), err )
274+ }
275+ err = mc .AddCall (contracts .RocketNodeStaking , & legacyStakes [j ], "getNodeLegacyStakedRPL" , address )
276+ if err != nil {
277+ return fmt .Errorf ("error adding node legacy RPL stake call for address %s: %w" , address .Hex (), err )
271278 }
272- err = mc .AddCall (contracts .RocketNodeStaking , & effectiveStakes [j ], "getNodeEffectiveRPLStake " , address )
279+ err = mc .AddCall (contracts .RocketNodeStaking , & megapoolStakes [j ], "getNodeMegapoolStakedRPL " , address )
273280 if err != nil {
274- return fmt .Errorf ("error adding node effective RPL stake call for address %s: %w" , address .Hex (), err )
281+ return fmt .Errorf ("error adding node megapool RPL stake call for address %s: %w" , address .Hex (), err )
275282 }
276283 }
277284 _ , err = mc .FlexibleCall (true , opts )
@@ -287,12 +294,12 @@ func GetTotalEffectiveRplStake(rp *rocketpool.RocketPool, contracts *NetworkCont
287294 }
288295
289296 totalEffectiveStake := big .NewInt (0 )
290- for i , effectiveStake := range effectiveStakes {
297+ for i , legacyStake := range legacyStakes {
291298 minimumStake := minimumStakes [i ]
292- // Fix the effective stake
293- if effectiveStake .Cmp (minimumStake ) >= 0 {
294- totalEffectiveStake .Add (totalEffectiveStake , effectiveStake )
299+ if legacyStake .Cmp (minimumStake ) >= 0 {
300+ totalEffectiveStake .Add (totalEffectiveStake , legacyStake )
295301 }
302+ totalEffectiveStake .Add (totalEffectiveStake , megapoolStakes [i ])
296303 }
297304
298305 return totalEffectiveStake , nil
0 commit comments