Skip to content

Commit a37e00a

Browse files
committed
Create interface for rp rewards execution functions to support future dependency injection
1 parent 19ca26b commit a37e00a

9 files changed

Lines changed: 104 additions & 54 deletions

File tree

rocketpool/watchtower/generate-rewards-tree.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,10 @@ func (t *generateRewardsTree) generateRewardsTree(index uint64) {
142142
// Get previous rewards pool addresses
143143
previousRewardsPoolAddresses := t.cfg.Smartnode.GetPreviousRewardsPoolAddresses()
144144

145+
rewardsClient := rprewards.NewRewardsExecutionClient(t.rp)
146+
145147
// Find the event for this interval
146-
rewardsEvent, err := rprewards.GetRewardSnapshotEvent(t.rp, previousRewardsPoolAddresses, index, nil)
148+
rewardsEvent, err := rewardsClient.GetRewardSnapshotEvent(previousRewardsPoolAddresses, index, nil)
147149
if err != nil {
148150
t.handleError(fmt.Errorf("%s Error getting event for interval %d: %w", generationPrefix, index, err))
149151
return
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package rewards
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"math/big"
7+
8+
"github.com/ethereum/go-ethereum/accounts/abi/bind"
9+
"github.com/ethereum/go-ethereum/common"
10+
ethtypes "github.com/ethereum/go-ethereum/core/types"
11+
"github.com/rocket-pool/rocketpool-go/rewards"
12+
"github.com/rocket-pool/rocketpool-go/rocketpool"
13+
"github.com/rocket-pool/rocketpool-go/settings/trustednode"
14+
)
15+
16+
// An implementation of RewardsExecutionClient that uses
17+
// rocketpool-go to access chain data.
18+
//
19+
// Importantly, this struct instantiates rocketpool.RocketPool and passes it
20+
// to the old fashioned rocketpool-go getters that take it as an argument
21+
// but it also fulfills the requirements of an interface used for dependency injection
22+
// in tests.
23+
type defaultRewardsExecutionClient struct {
24+
*rocketpool.RocketPool
25+
}
26+
27+
func NewRewardsExecutionClient(rp *rocketpool.RocketPool) (out *defaultRewardsExecutionClient) {
28+
out.RocketPool = rp
29+
return
30+
}
31+
32+
func (client *defaultRewardsExecutionClient) GetNetworkEnabled(networkId *big.Int, opts *bind.CallOpts) (bool, error) {
33+
return trustednode.GetNetworkEnabled(client.RocketPool, networkId, opts)
34+
}
35+
36+
func (client *defaultRewardsExecutionClient) HeaderByNumber(ctx context.Context, block *big.Int) (*ethtypes.Header, error) {
37+
return client.RocketPool.Client.HeaderByNumber(ctx, block)
38+
}
39+
40+
func (client *defaultRewardsExecutionClient) GetRewardsEvent(index uint64, rocketRewardsPoolAddresses []common.Address, opts *bind.CallOpts) (bool, rewards.RewardsEvent, error) {
41+
return rewards.GetRewardsEvent(client.RocketPool, index, rocketRewardsPoolAddresses, opts)
42+
}
43+
44+
func (client *defaultRewardsExecutionClient) GetRewardSnapshotEvent(previousRewardsPoolAddresses []common.Address, interval uint64, opts *bind.CallOpts) (rewards.RewardsEvent, error) {
45+
46+
found, event, err := client.GetRewardsEvent(interval, previousRewardsPoolAddresses, opts)
47+
if err != nil {
48+
return rewards.RewardsEvent{}, fmt.Errorf("error getting rewards event for interval %d: %w", interval, err)
49+
}
50+
if !found {
51+
return rewards.RewardsEvent{}, fmt.Errorf("interval %d event not found", interval)
52+
}
53+
54+
return event, nil
55+
56+
}

shared/services/rewards/generator-impl-v8-rolling.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import (
1212
"github.com/ethereum/go-ethereum/common"
1313
"github.com/ethereum/go-ethereum/core/types"
1414
"github.com/ipfs/go-cid"
15-
"github.com/rocket-pool/rocketpool-go/rocketpool"
16-
tnsettings "github.com/rocket-pool/rocketpool-go/settings/trustednode"
1715
"github.com/rocket-pool/rocketpool-go/utils/eth"
1816
"github.com/rocket-pool/smartnode/shared/services/beacon"
1917
"github.com/rocket-pool/smartnode/shared/services/config"
@@ -30,7 +28,7 @@ type treeGeneratorImpl_v8_rolling struct {
3028
elSnapshotHeader *types.Header
3129
log *log.ColorLogger
3230
logPrefix string
33-
rp *rocketpool.RocketPool
31+
rp RewardsExecutionClient
3432
previousRewardsPoolAddresses []common.Address
3533
bc beacon.Client
3634
opts *bind.CallOpts
@@ -97,7 +95,7 @@ func (r *treeGeneratorImpl_v8_rolling) getRulesetVersion() uint64 {
9795
return r.rewardsFile.RulesetVersion
9896
}
9997

100-
func (r *treeGeneratorImpl_v8_rolling) generateTree(rp *rocketpool.RocketPool, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
98+
func (r *treeGeneratorImpl_v8_rolling) generateTree(rp RewardsExecutionClient, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
10199

102100
r.log.Printlnf("%s Generating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
103101

@@ -173,7 +171,7 @@ func (r *treeGeneratorImpl_v8_rolling) generateTree(rp *rocketpool.RocketPool, n
173171

174172
// Quickly calculates an approximate of the staker's share of the smoothing pool balance without processing Beacon performance
175173
// Used for approximate returns in the rETH ratio update
176-
func (r *treeGeneratorImpl_v8_rolling) approximateStakerShareOfSmoothingPool(rp *rocketpool.RocketPool, networkName string, bc beacon.Client) (*big.Int, error) {
174+
func (r *treeGeneratorImpl_v8_rolling) approximateStakerShareOfSmoothingPool(rp RewardsExecutionClient, networkName string, bc beacon.Client) (*big.Int, error) {
177175
r.log.Printlnf("%s Approximating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
178176

179177
r.rp = rp
@@ -758,7 +756,7 @@ func (r *treeGeneratorImpl_v8_rolling) validateNetwork(network uint64) (bool, er
758756
valid, exists := r.validNetworkCache[network]
759757
if !exists {
760758
var err error
761-
valid, err = tnsettings.GetNetworkEnabled(r.rp, big.NewInt(int64(network)), r.opts)
759+
valid, err = r.rp.GetNetworkEnabled(big.NewInt(int64(network)), r.opts)
762760
if err != nil {
763761
return false, err
764762
}
@@ -785,7 +783,7 @@ func (r *treeGeneratorImpl_v8_rolling) getStartBlocksForInterval() (*types.Heade
785783
elBlockNumber := beaconBlock.ExecutionBlockNumber
786784
r.rewardsFile.ExecutionStartBlock = elBlockNumber
787785
r.rewardsFile.MinipoolPerformanceFile.ExecutionStartBlock = r.rewardsFile.ExecutionStartBlock
788-
startElHeader, err := r.rp.Client.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
786+
startElHeader, err := r.rp.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
789787
if err != nil {
790788
return nil, fmt.Errorf("error getting EL header for block %d: %w", elBlockNumber, err)
791789
}

shared/services/rewards/generator-impl-v8.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import (
1212
"github.com/ethereum/go-ethereum/core/types"
1313
"github.com/ipfs/go-cid"
1414
"github.com/rocket-pool/rocketpool-go/rewards"
15-
"github.com/rocket-pool/rocketpool-go/rocketpool"
16-
tnsettings "github.com/rocket-pool/rocketpool-go/settings/trustednode"
1715
rptypes "github.com/rocket-pool/rocketpool-go/types"
1816
"github.com/rocket-pool/rocketpool-go/utils/eth"
1917
rpstate "github.com/rocket-pool/rocketpool-go/utils/state"
@@ -33,7 +31,7 @@ type treeGeneratorImpl_v8 struct {
3331
elSnapshotHeader *types.Header
3432
log *log.ColorLogger
3533
logPrefix string
36-
rp *rocketpool.RocketPool
34+
rp RewardsExecutionClient
3735
previousRewardsPoolAddresses []common.Address
3836
bc beacon.Client
3937
opts *bind.CallOpts
@@ -104,7 +102,7 @@ func (r *treeGeneratorImpl_v8) getRulesetVersion() uint64 {
104102
return r.rewardsFile.RulesetVersion
105103
}
106104

107-
func (r *treeGeneratorImpl_v8) generateTree(rp *rocketpool.RocketPool, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
105+
func (r *treeGeneratorImpl_v8) generateTree(rp RewardsExecutionClient, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
108106

109107
r.log.Printlnf("%s Generating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
110108

@@ -181,7 +179,7 @@ func (r *treeGeneratorImpl_v8) generateTree(rp *rocketpool.RocketPool, networkNa
181179

182180
// Quickly calculates an approximate of the staker's share of the smoothing pool balance without processing Beacon performance
183181
// Used for approximate returns in the rETH ratio update
184-
func (r *treeGeneratorImpl_v8) approximateStakerShareOfSmoothingPool(rp *rocketpool.RocketPool, networkName string, bc beacon.Client) (*big.Int, error) {
182+
func (r *treeGeneratorImpl_v8) approximateStakerShareOfSmoothingPool(rp RewardsExecutionClient, networkName string, bc beacon.Client) (*big.Int, error) {
185183
r.log.Printlnf("%s Approximating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
186184

187185
r.rp = rp
@@ -535,7 +533,7 @@ func (r *treeGeneratorImpl_v8) calculateEthRewards(checkBeaconPerformance bool)
535533

536534
// Get the start time of this interval based on the event from the previous one
537535
//previousIntervalEvent, err := GetRewardSnapshotEvent(r.rp, r.cfg, r.rewardsFile.Index-1, r.opts) // This is immutable so querying at the head is fine and mitigates issues around calls for pruned EL state
538-
previousIntervalEvent, err := GetRewardSnapshotEvent(r.rp, r.previousRewardsPoolAddresses, r.rewardsFile.Index-1, nil)
536+
previousIntervalEvent, err := r.rp.GetRewardSnapshotEvent(r.previousRewardsPoolAddresses, r.rewardsFile.Index-1, nil)
539537
if err != nil {
540538
return err
541539
}
@@ -1116,7 +1114,7 @@ func (r *treeGeneratorImpl_v8) validateNetwork(network uint64) (bool, error) {
11161114
valid, exists := r.validNetworkCache[network]
11171115
if !exists {
11181116
var err error
1119-
valid, err = tnsettings.GetNetworkEnabled(r.rp, big.NewInt(int64(network)), r.opts)
1117+
valid, err = r.rp.GetNetworkEnabled(big.NewInt(int64(network)), r.opts)
11201118
if err != nil {
11211119
return false, err
11221120
}
@@ -1163,15 +1161,15 @@ func (r *treeGeneratorImpl_v8) getStartBlocksForInterval(previousIntervalEvent r
11631161
// We are pre-merge, so get the first block after the one from the previous interval
11641162
r.rewardsFile.ExecutionStartBlock = previousIntervalEvent.ExecutionBlock.Uint64() + 1
11651163
r.rewardsFile.MinipoolPerformanceFile.ExecutionStartBlock = r.rewardsFile.ExecutionStartBlock
1166-
startElHeader, err = r.rp.Client.HeaderByNumber(context.Background(), big.NewInt(int64(r.rewardsFile.ExecutionStartBlock)))
1164+
startElHeader, err = r.rp.HeaderByNumber(context.Background(), big.NewInt(int64(r.rewardsFile.ExecutionStartBlock)))
11671165
if err != nil {
11681166
return nil, fmt.Errorf("error getting EL start block %d: %w", r.rewardsFile.ExecutionStartBlock, err)
11691167
}
11701168
} else {
11711169
// We are post-merge, so get the EL block corresponding to the BC block
11721170
r.rewardsFile.ExecutionStartBlock = elBlockNumber
11731171
r.rewardsFile.MinipoolPerformanceFile.ExecutionStartBlock = r.rewardsFile.ExecutionStartBlock
1174-
startElHeader, err = r.rp.Client.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
1172+
startElHeader, err = r.rp.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
11751173
if err != nil {
11761174
return nil, fmt.Errorf("error getting EL header for block %d: %w", elBlockNumber, err)
11771175
}

shared/services/rewards/generator-impl-v9-rolling.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"github.com/ethereum/go-ethereum/common"
1212
"github.com/ethereum/go-ethereum/core/types"
1313
"github.com/ipfs/go-cid"
14-
"github.com/rocket-pool/rocketpool-go/rocketpool"
15-
tnsettings "github.com/rocket-pool/rocketpool-go/settings/trustednode"
1614
"github.com/rocket-pool/rocketpool-go/utils/eth"
1715
"github.com/rocket-pool/smartnode/shared/services/beacon"
1816
"github.com/rocket-pool/smartnode/shared/services/config"
@@ -30,7 +28,7 @@ type treeGeneratorImpl_v9_rolling struct {
3028
snapshotEnd *SnapshotEnd
3129
log *log.ColorLogger
3230
logPrefix string
33-
rp *rocketpool.RocketPool
31+
rp RewardsExecutionClient
3432
previousRewardsPoolAddresses []common.Address
3533
bc beacon.Client
3634
opts *bind.CallOpts
@@ -94,7 +92,7 @@ func (r *treeGeneratorImpl_v9_rolling) getRulesetVersion() uint64 {
9492
return r.rewardsFile.RulesetVersion
9593
}
9694

97-
func (r *treeGeneratorImpl_v9_rolling) generateTree(rp *rocketpool.RocketPool, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
95+
func (r *treeGeneratorImpl_v9_rolling) generateTree(rp RewardsExecutionClient, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
9896

9997
r.log.Printlnf("%s Generating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
10098

@@ -178,7 +176,7 @@ func (r *treeGeneratorImpl_v9_rolling) generateTree(rp *rocketpool.RocketPool, n
178176

179177
// Quickly calculates an approximate of the staker's share of the smoothing pool balance without processing Beacon performance
180178
// Used for approximate returns in the rETH ratio update
181-
func (r *treeGeneratorImpl_v9_rolling) approximateStakerShareOfSmoothingPool(rp *rocketpool.RocketPool, networkName string, bc beacon.Client) (*big.Int, error) {
179+
func (r *treeGeneratorImpl_v9_rolling) approximateStakerShareOfSmoothingPool(rp RewardsExecutionClient, networkName string, bc beacon.Client) (*big.Int, error) {
182180
r.log.Printlnf("%s Approximating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
183181

184182
r.rp = rp
@@ -646,7 +644,7 @@ func (r *treeGeneratorImpl_v9_rolling) validateNetwork(network uint64) (bool, er
646644
valid, exists := r.validNetworkCache[network]
647645
if !exists {
648646
var err error
649-
valid, err = tnsettings.GetNetworkEnabled(r.rp, big.NewInt(int64(network)), r.opts)
647+
valid, err = r.rp.GetNetworkEnabled(big.NewInt(int64(network)), r.opts)
650648
if err != nil {
651649
return false, err
652650
}
@@ -674,7 +672,7 @@ func (r *treeGeneratorImpl_v9_rolling) getBlocksAndTimesForInterval() (*types.He
674672
elBlockNumber := beaconBlock.ExecutionBlockNumber
675673
r.rewardsFile.ExecutionStartBlock = elBlockNumber
676674
r.minipoolPerformanceFile.ExecutionStartBlock = r.rewardsFile.ExecutionStartBlock
677-
startElHeader, err := r.rp.Client.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
675+
startElHeader, err := r.rp.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
678676
if err != nil {
679677
return nil, fmt.Errorf("error getting EL header for block %d: %w", elBlockNumber, err)
680678
}

shared/services/rewards/generator-impl-v9.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import (
1212
"github.com/ethereum/go-ethereum/core/types"
1313
"github.com/ipfs/go-cid"
1414
"github.com/rocket-pool/rocketpool-go/rewards"
15-
"github.com/rocket-pool/rocketpool-go/rocketpool"
16-
tnsettings "github.com/rocket-pool/rocketpool-go/settings/trustednode"
1715
rptypes "github.com/rocket-pool/rocketpool-go/types"
1816
"github.com/rocket-pool/rocketpool-go/utils/eth"
1917
rpstate "github.com/rocket-pool/rocketpool-go/utils/state"
@@ -37,7 +35,7 @@ type treeGeneratorImpl_v9 struct {
3735
snapshotEnd *SnapshotEnd
3836
log *log.ColorLogger
3937
logPrefix string
40-
rp *rocketpool.RocketPool
38+
rp RewardsExecutionClient
4139
previousRewardsPoolAddresses []common.Address
4240
bc beacon.Client
4341
opts *bind.CallOpts
@@ -105,7 +103,7 @@ func (r *treeGeneratorImpl_v9) getRulesetVersion() uint64 {
105103
return r.rewardsFile.RulesetVersion
106104
}
107105

108-
func (r *treeGeneratorImpl_v9) generateTree(rp *rocketpool.RocketPool, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
106+
func (r *treeGeneratorImpl_v9) generateTree(rp RewardsExecutionClient, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error) {
109107

110108
r.log.Printlnf("%s Generating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
111109

@@ -190,7 +188,7 @@ func (r *treeGeneratorImpl_v9) generateTree(rp *rocketpool.RocketPool, networkNa
190188

191189
// Quickly calculates an approximate of the staker's share of the smoothing pool balance without processing Beacon performance
192190
// Used for approximate returns in the rETH ratio update
193-
func (r *treeGeneratorImpl_v9) approximateStakerShareOfSmoothingPool(rp *rocketpool.RocketPool, networkName string, bc beacon.Client) (*big.Int, error) {
191+
func (r *treeGeneratorImpl_v9) approximateStakerShareOfSmoothingPool(rp RewardsExecutionClient, networkName string, bc beacon.Client) (*big.Int, error) {
194192
r.log.Printlnf("%s Approximating tree using Ruleset v%d.", r.logPrefix, r.rewardsFile.RulesetVersion)
195193

196194
r.rp = rp
@@ -504,7 +502,7 @@ func (r *treeGeneratorImpl_v9) calculateEthRewards(checkBeaconPerformance bool)
504502

505503
// Get the start time of this interval based on the event from the previous one
506504
//previousIntervalEvent, err := GetRewardSnapshotEvent(r.rp, r.cfg, r.rewardsFile.Index-1, r.opts) // This is immutable so querying at the head is fine and mitigates issues around calls for pruned EL state
507-
previousIntervalEvent, err := GetRewardSnapshotEvent(r.rp, r.previousRewardsPoolAddresses, r.rewardsFile.Index-1, r.opts)
505+
previousIntervalEvent, err := r.rp.GetRewardSnapshotEvent(r.previousRewardsPoolAddresses, r.rewardsFile.Index-1, r.opts)
508506
if err != nil {
509507
return err
510508
}
@@ -1075,7 +1073,7 @@ func (r *treeGeneratorImpl_v9) validateNetwork(network uint64) (bool, error) {
10751073
valid, exists := r.validNetworkCache[network]
10761074
if !exists {
10771075
var err error
1078-
valid, err = tnsettings.GetNetworkEnabled(r.rp, big.NewInt(int64(network)), r.opts)
1076+
valid, err = r.rp.GetNetworkEnabled(big.NewInt(int64(network)), r.opts)
10791077
if err != nil {
10801078
return false, err
10811079
}
@@ -1139,15 +1137,15 @@ func (r *treeGeneratorImpl_v9) getBlocksAndTimesForInterval(previousIntervalEven
11391137
// We are pre-merge, so get the first block after the one from the previous interval
11401138
r.rewardsFile.ExecutionStartBlock = previousIntervalEvent.ExecutionBlock.Uint64() + 1
11411139
r.minipoolPerformanceFile.ExecutionStartBlock = r.rewardsFile.ExecutionStartBlock
1142-
startElHeader, err = r.rp.Client.HeaderByNumber(context.Background(), big.NewInt(int64(r.rewardsFile.ExecutionStartBlock)))
1140+
startElHeader, err = r.rp.HeaderByNumber(context.Background(), big.NewInt(int64(r.rewardsFile.ExecutionStartBlock)))
11431141
if err != nil {
11441142
return nil, fmt.Errorf("error getting EL start block %d: %w", r.rewardsFile.ExecutionStartBlock, err)
11451143
}
11461144
} else {
11471145
// We are post-merge, so get the EL block corresponding to the BC block
11481146
r.rewardsFile.ExecutionStartBlock = elBlockNumber
11491147
r.minipoolPerformanceFile.ExecutionStartBlock = r.rewardsFile.ExecutionStartBlock
1150-
startElHeader, err = r.rp.Client.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
1148+
startElHeader, err = r.rp.HeaderByNumber(context.Background(), big.NewInt(int64(elBlockNumber)))
11511149
if err != nil {
11521150
return nil, fmt.Errorf("error getting EL header for block %d: %w", elBlockNumber, err)
11531151
}

shared/services/rewards/generator.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ type TreeGenerator struct {
6161
rewardsIntervalInfos map[uint64]rewardsIntervalInfo
6262
logger *log.ColorLogger
6363
logPrefix string
64-
rp *rocketpool.RocketPool
64+
rp *defaultRewardsExecutionClient
6565
cfg *config.RocketPoolConfig
6666
bc beacon.Client
6767
index uint64
@@ -84,8 +84,8 @@ type SnapshotEnd struct {
8484
}
8585

8686
type treeGeneratorImpl interface {
87-
generateTree(rp *rocketpool.RocketPool, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error)
88-
approximateStakerShareOfSmoothingPool(rp *rocketpool.RocketPool, networkName string, bc beacon.Client) (*big.Int, error)
87+
generateTree(rp RewardsExecutionClient, networkName string, previousRewardsPoolAddresses []common.Address, bc beacon.Client) (*GenerateTreeResult, error)
88+
approximateStakerShareOfSmoothingPool(rp RewardsExecutionClient, networkName string, bc beacon.Client) (*big.Int, error)
8989
getRulesetVersion() uint64
9090
// Returns the primary artifact cid for consensus, all cids of all files in a map, and any potential errors
9191
saveFiles(smartnode *config.SmartnodeConfig, treeResult *GenerateTreeResult, nodeTrusted bool) (cid.Cid, map[string]cid.Cid, error)
@@ -95,7 +95,7 @@ func NewTreeGenerator(logger *log.ColorLogger, logPrefix string, rp *rocketpool.
9595
t := &TreeGenerator{
9696
logger: logger,
9797
logPrefix: logPrefix,
98-
rp: rp,
98+
rp: &defaultRewardsExecutionClient{rp},
9999
cfg: cfg,
100100
bc: bc,
101101
index: index,

0 commit comments

Comments
 (0)