@@ -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
773815var rocketNodeManagerLock sync.Mutex
774816
0 commit comments