@@ -3,6 +3,7 @@ package pdao
3
3
import (
4
4
"github.com/ethereum/go-ethereum/common"
5
5
"github.com/rocket-pool/rocketpool-go/dao/protocol"
6
+ "github.com/rocket-pool/rocketpool-go/network"
6
7
"github.com/rocket-pool/rocketpool-go/rocketpool"
7
8
"github.com/rocket-pool/smartnode/shared/services"
8
9
"github.com/rocket-pool/smartnode/shared/types/api"
@@ -60,6 +61,11 @@ func getProposals(c *cli.Context) (*api.PDAOProposalsResponse, error) {
60
61
}
61
62
62
63
func 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
+
63
69
// Load node votes in batches
64
70
proposalCount := uint64 (len (props ))
65
71
details := make ([]api.PDAOProposalWithNodeVoteDirection , proposalCount )
@@ -79,8 +85,10 @@ func getProposalsWithNodeVoteDirection(rp *rocketpool.RocketPool, nodeAddress co
79
85
prop := props [pi ]
80
86
details [pi ].ProtocolDaoProposalDetails = prop
81
87
voteDir , err := protocol .GetAddressVoteDirection (rp , prop .ID , nodeAddress , nil )
88
+ delegateVoteDir , err := protocol .GetAddressVoteDirection (rp , prop .ID , delegateAddress , nil )
82
89
if err == nil {
83
90
details [pi ].NodeVoteDirection = voteDir
91
+ details [pi ].DelegateVoteDirection = delegateVoteDir
84
92
}
85
93
return err
86
94
})
@@ -120,6 +128,12 @@ func getProposal(c *cli.Context, id uint64) (*api.PDAOProposalResponse, error) {
120
128
return nil , err
121
129
}
122
130
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
+
123
137
// Get proposal
124
138
proposal , err := protocol .GetProposalDetails (rp , id , nil )
125
139
if err != nil {
@@ -132,10 +146,17 @@ func getProposal(c *cli.Context, id uint64) (*api.PDAOProposalResponse, error) {
132
146
return nil , err
133
147
}
134
148
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
+
135
155
// Make the augmented proposal
136
156
augmentedProp := api.PDAOProposalWithNodeVoteDirection {
137
157
ProtocolDaoProposalDetails : proposal ,
138
158
NodeVoteDirection : voteDir ,
159
+ DelegateVoteDirection : delegateVoteDir ,
139
160
}
140
161
response .Proposal = augmentedProp
141
162
0 commit comments