@@ -28,28 +28,28 @@ import (
2828
2929// Implementation for tree generator ruleset v1
3030type treeGeneratorImpl_v1 struct {
31- rewardsFile * RewardsFile_v1
32- elSnapshotHeader * types.Header
33- log * log.ColorLogger
34- logPrefix string
35- rp * rocketpool.RocketPool
36- cfg * config. RocketPoolConfig
37- bc beacon.Client
38- opts * bind.CallOpts
39- nodeAddresses []common.Address
40- nodeDetails []* NodeSmoothingDetails
41- smoothingPoolBalance * big.Int
42- smoothingPoolAddress common.Address
43- intervalDutiesInfo * IntervalDutiesInfo
44- slotsPerEpoch uint64
45- validatorIndexMap map [string ]* MinipoolInfo
46- elStartTime time.Time
47- elEndTime time.Time
48- validNetworkCache map [uint64 ]bool
49- epsilon * big.Int
50- intervalSeconds * big.Int
51- beaconConfig beacon.Eth2Config
52- invalidNetworkNodes map [common.Address ]uint64
31+ rewardsFile * RewardsFile_v1
32+ elSnapshotHeader * types.Header
33+ log * log.ColorLogger
34+ logPrefix string
35+ rp * rocketpool.RocketPool
36+ previousRewardsPoolAddresses []common. Address
37+ bc beacon.Client
38+ opts * bind.CallOpts
39+ nodeAddresses []common.Address
40+ nodeDetails []* NodeSmoothingDetails
41+ smoothingPoolBalance * big.Int
42+ smoothingPoolAddress common.Address
43+ intervalDutiesInfo * IntervalDutiesInfo
44+ slotsPerEpoch uint64
45+ validatorIndexMap map [string ]* MinipoolInfo
46+ elStartTime time.Time
47+ elEndTime time.Time
48+ validNetworkCache map [uint64 ]bool
49+ epsilon * big.Int
50+ intervalSeconds * big.Int
51+ beaconConfig beacon.Eth2Config
52+ invalidNetworkNodes map [common.Address ]uint64
5353}
5454
5555// Get the version of the ruleset used by this generator
@@ -97,20 +97,20 @@ func newTreeGeneratorImpl_v1(log *log.ColorLogger, logPrefix string, index uint6
9797 }
9898}
9999
100- func (r * treeGeneratorImpl_v1 ) generateTree (rp * rocketpool.RocketPool , cfg * config. RocketPoolConfig , bc beacon.Client ) (* GenerateTreeResult , error ) {
100+ func (r * treeGeneratorImpl_v1 ) generateTree (rp * rocketpool.RocketPool , networkName string , previousRewardsPoolAddresses []common. Address , bc beacon.Client ) (* GenerateTreeResult , error ) {
101101
102102 r .log .Printlnf ("%s Generating tree using Ruleset v%d." , r .logPrefix , r .rewardsFile .RulesetVersion )
103103
104104 // Provision some struct params
105105 r .rp = rp
106- r .cfg = cfg
106+ r .previousRewardsPoolAddresses = previousRewardsPoolAddresses
107107 r .bc = bc
108108 r .validNetworkCache = map [uint64 ]bool {
109109 0 : true ,
110110 }
111111
112112 // Set the network name
113- r .rewardsFile .Network = fmt . Sprint ( cfg . Smartnode . Network . Value )
113+ r .rewardsFile .Network = networkName
114114 r .rewardsFile .MinipoolPerformanceFile .Network = r .rewardsFile .Network
115115
116116 // Get the addresses for all nodes
@@ -169,18 +169,17 @@ func (r *treeGeneratorImpl_v1) generateTree(rp *rocketpool.RocketPool, cfg *conf
169169
170170// Quickly calculates an approximate of the staker's share of the smoothing pool balance without processing Beacon performance
171171// Used for approximate returns in the rETH ratio update
172- func (r * treeGeneratorImpl_v1 ) approximateStakerShareOfSmoothingPool (rp * rocketpool.RocketPool , cfg * config. RocketPoolConfig , bc beacon.Client ) (* big.Int , error ) {
172+ func (r * treeGeneratorImpl_v1 ) approximateStakerShareOfSmoothingPool (rp * rocketpool.RocketPool , networkName string , bc beacon.Client ) (* big.Int , error ) {
173173 r .log .Printlnf ("%s Approximating tree using Ruleset v%d." , r .logPrefix , r .rewardsFile .RulesetVersion )
174174
175175 r .rp = rp
176- r .cfg = cfg
177176 r .bc = bc
178177 r .validNetworkCache = map [uint64 ]bool {
179178 0 : true ,
180179 }
181180
182181 // Set the network name
183- r .rewardsFile .Network = fmt . Sprint ( cfg . Smartnode . Network . Value )
182+ r .rewardsFile .Network = networkName
184183 r .rewardsFile .MinipoolPerformanceFile .Network = r .rewardsFile .Network
185184
186185 // Get the addresses for all nodes
@@ -240,17 +239,17 @@ func (r *treeGeneratorImpl_v1) updateNetworksAndTotals() {
240239func (r * treeGeneratorImpl_v1 ) calculateRplRewards () error {
241240
242241 snapshotBlockTime := time .Unix (int64 (r .elSnapshotHeader .Time ), 0 )
243- intervalDuration , err := state .GetClaimIntervalTime (r .cfg , r . rewardsFile .Index , r .rp , r .opts )
242+ intervalDuration , err := state .GetClaimIntervalTime (r .rewardsFile .Index , r .rp , r .opts )
244243 if err != nil {
245244 return fmt .Errorf ("error getting required registration time: %w" , err )
246245 }
247246
248247 // Handle node operator rewards
249- nodeOpPercent , err := state .GetNodeOperatorRewardsPercent (r .cfg , r . rewardsFile .Index , r .rp , r .opts )
248+ nodeOpPercent , err := state .GetNodeOperatorRewardsPercent (r .rewardsFile .Index , r .rp , r .opts )
250249 if err != nil {
251250 return err
252251 }
253- pendingRewards , err := state .GetPendingRPLRewards (r .cfg , r . rewardsFile .Index , r .rp , r .opts )
252+ pendingRewards , err := state .GetPendingRPLRewards (r .rewardsFile .Index , r .rp , r .opts )
254253 if err != nil {
255254 return err
256255 }
@@ -374,7 +373,7 @@ func (r *treeGeneratorImpl_v1) calculateRplRewards() error {
374373 r .log .Printlnf ("%s Calculated rewards: %s (error = %s wei)" , r .logPrefix , totalCalculatedNodeRewards .String (), delta .String ())
375374
376375 // Handle Oracle DAO rewards
377- oDaoPercent , err := state .GetTrustedNodeOperatorRewardsPercent (r .cfg , r . rewardsFile .Index , r .rp , r .opts )
376+ oDaoPercent , err := state .GetTrustedNodeOperatorRewardsPercent (r .rewardsFile .Index , r .rp , r .opts )
378377 if err != nil {
379378 return err
380379 }
@@ -470,7 +469,7 @@ func (r *treeGeneratorImpl_v1) calculateRplRewards() error {
470469 r .log .Printlnf ("%s Calculated rewards: %s (error = %s wei)" , r .logPrefix , totalCalculatedOdaoRewards .String (), delta .String ())
471470
472471 // Get expected Protocol DAO rewards
473- pDaoPercent , err := state .GetProtocolDaoRewardsPercent (r .cfg , r . rewardsFile .Index , r .rp , r .opts )
472+ pDaoPercent , err := state .GetProtocolDaoRewardsPercent (r .rewardsFile .Index , r .rp , r .opts )
474473 if err != nil {
475474 return err
476475 }
@@ -523,7 +522,7 @@ func (r *treeGeneratorImpl_v1) calculateEthRewards(checkBeaconPerformance bool)
523522 r .slotsPerEpoch = r .beaconConfig .SlotsPerEpoch
524523
525524 // Get the start time of this interval based on the event from the previous one
526- previousIntervalEvent , err := GetRewardSnapshotEvent (r .rp , r .cfg , r .rewardsFile .Index - 1 , r .opts )
525+ previousIntervalEvent , err := GetRewardSnapshotEvent (r .rp , r .previousRewardsPoolAddresses , r .rewardsFile .Index - 1 , r .opts )
527526 if err != nil {
528527 return err
529528 }
@@ -1145,6 +1144,6 @@ func (r *treeGeneratorImpl_v1) getStartBlocksForInterval(previousIntervalEvent r
11451144 return startElHeader , nil
11461145}
11471146
1148- func (r * treeGeneratorImpl_v1 ) saveFiles (treeResult * GenerateTreeResult , nodeTrusted bool ) (cid.Cid , map [string ]cid.Cid , error ) {
1149- return saveJSONArtifacts (r . cfg . Smartnode , treeResult , nodeTrusted )
1147+ func (r * treeGeneratorImpl_v1 ) saveFiles (smartnode * config. SmartnodeConfig , treeResult * GenerateTreeResult , nodeTrusted bool ) (cid.Cid , map [string ]cid.Cid , error ) {
1148+ return saveJSONArtifacts (smartnode , treeResult , nodeTrusted )
11501149}
0 commit comments