Skip to content

Commit 4868a8d

Browse files
committed
Add new RPIP-57 RocketNodeManager calls get and claim UnclaimedRewards
1 parent 366493d commit 4868a8d

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

bindings/node/node.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,48 @@ func GetMegapoolAddress(rp *rocketpool.RocketPool, nodeAddress common.Address, o
769769
return *value, nil
770770
}
771771

772+
// Get the amount of unclaimed ETH rewards for a given node operator
773+
func GetUnclaimedRewards(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (float64, error) {
774+
rocketNodeManager, err := getRocketNodeManager(rp, opts)
775+
if err != nil {
776+
return 0, err
777+
}
778+
unclaimedRewards := new(*big.Int)
779+
780+
if err := rocketNodeManager.Call(opts, unclaimedRewards, "getUnclaimedRewards", nodeAddress); err != nil {
781+
return 0, fmt.Errorf("error getting node %s's unclaimed rewards: %w", nodeAddress.Hex(), err)
782+
}
783+
return eth.WeiToEth(*unclaimedRewards), nil
784+
}
785+
786+
// Get the amount of unclaimed ETH rewards for a given node operator
787+
func GetUnclaimedRewardsRaw(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.CallOpts) (*big.Int, error) {
788+
rocketNodeManager, err := getRocketNodeManager(rp, opts)
789+
if err != nil {
790+
return nil, err
791+
}
792+
unclaimedRewards := new(*big.Int)
793+
794+
if err := rocketNodeManager.Call(opts, unclaimedRewards, "getUnclaimedRewards", nodeAddress); err != nil {
795+
return nil, fmt.Errorf("error getting node %s's unclaimed rewards: %w", nodeAddress.Hex(), err)
796+
}
797+
return *unclaimedRewards, nil
798+
}
799+
800+
// Sends any unclaimed rewards to node operator's withdrawal address
801+
func ClaimUnclaimedRewards(rp *rocketpool.RocketPool, nodeAddress common.Address, opts *bind.TransactOpts) (common.Hash, error) {
802+
rocketNodeManager, err := getRocketNodeManager(rp, nil)
803+
if err != nil {
804+
return common.Hash{}, nil
805+
}
806+
807+
tx, err := rocketNodeManager.Transact(opts, "claimUnclaimedRewards", nodeAddress)
808+
if err != nil {
809+
return common.Hash{}, fmt.Errorf("error calling claimUnclaimedRewards for the node %s: %w", nodeAddress.Hex(), err)
810+
}
811+
return tx.Hash(), nil
812+
}
813+
772814
// Get contracts
773815
var rocketNodeManagerLock sync.Mutex
774816

0 commit comments

Comments
 (0)