@@ -3,6 +3,7 @@ package pdao
33import (
44 "github.com/ethereum/go-ethereum/common"
55 "github.com/rocket-pool/rocketpool-go/dao/protocol"
6+ "github.com/rocket-pool/rocketpool-go/network"
67 "github.com/rocket-pool/rocketpool-go/rocketpool"
78 "github.com/rocket-pool/smartnode/shared/services"
89 "github.com/rocket-pool/smartnode/shared/types/api"
@@ -60,6 +61,11 @@ func getProposals(c *cli.Context) (*api.PDAOProposalsResponse, error) {
6061}
6162
6263func getProposalsWithNodeVoteDirection (rp * rocketpool.RocketPool , nodeAddress common.Address , props []protocol.ProtocolDaoProposalDetails ) ([]api.PDAOProposalWithNodeVoteDirection , error ) {
64+ delegateAddress , err := network .GetCurrentVotingDelegate (rp , nodeAddress , nil )
65+ if err != nil {
66+ return nil , err
67+ }
68+
6369 // Load node votes in batches
6470 proposalCount := uint64 (len (props ))
6571 details := make ([]api.PDAOProposalWithNodeVoteDirection , proposalCount )
@@ -79,8 +85,10 @@ func getProposalsWithNodeVoteDirection(rp *rocketpool.RocketPool, nodeAddress co
7985 prop := props [pi ]
8086 details [pi ].ProtocolDaoProposalDetails = prop
8187 voteDir , err := protocol .GetAddressVoteDirection (rp , prop .ID , nodeAddress , nil )
88+ delegateVoteDir , err := protocol .GetAddressVoteDirection (rp , prop .ID , delegateAddress , nil )
8289 if err == nil {
8390 details [pi ].NodeVoteDirection = voteDir
91+ details [pi ].DelegateVoteDirection = delegateVoteDir
8492 }
8593 return err
8694 })
@@ -120,6 +128,12 @@ func getProposal(c *cli.Context, id uint64) (*api.PDAOProposalResponse, error) {
120128 return nil , err
121129 }
122130
131+ // Get the voting delegate address
132+ delegateAddress , err := network .GetCurrentVotingDelegate (rp , nodeAccount .Address , nil )
133+ if err != nil {
134+ return nil , err
135+ }
136+
123137 // Get proposal
124138 proposal , err := protocol .GetProposalDetails (rp , id , nil )
125139 if err != nil {
@@ -132,10 +146,17 @@ func getProposal(c *cli.Context, id uint64) (*api.PDAOProposalResponse, error) {
132146 return nil , err
133147 }
134148
149+ // Get the delegate vote direction
150+ delegateVoteDir , err := protocol .GetAddressVoteDirection (rp , id , delegateAddress , nil )
151+ if err != nil {
152+ return nil , err
153+ }
154+
135155 // Make the augmented proposal
136156 augmentedProp := api.PDAOProposalWithNodeVoteDirection {
137157 ProtocolDaoProposalDetails : proposal ,
138158 NodeVoteDirection : voteDir ,
159+ DelegateVoteDirection : delegateVoteDir ,
139160 }
140161 response .Proposal = augmentedProp
141162
0 commit comments