@@ -80,7 +80,7 @@ func delegateUpgrade(c *cli.Command, megapoolAddress common.Address, opts *bind.
8080 return & response , nil
8181}
8282
83- func getUseLatestDelegate (c * cli.Command , megapoolAddress common. Address ) (* api.MegapoolGetUseLatestDelegateResponse , error ) {
83+ func getUseLatestDelegate (c * cli.Command ) (* api.MegapoolGetUseLatestDelegateResponse , error ) {
8484
8585 // Get services
8686 if err := services .RequireNodeRegistered (c ); err != nil {
@@ -90,10 +90,24 @@ func getUseLatestDelegate(c *cli.Command, megapoolAddress common.Address) (*api.
9090 if err != nil {
9191 return nil , err
9292 }
93+ w , err := services .GetWallet (c )
94+ if err != nil {
95+ return nil , err
96+ }
9397
9498 // Response
9599 response := api.MegapoolGetUseLatestDelegateResponse {}
96100
101+ // Get node account and derive the megapool address
102+ nodeAccount , err := w .GetNodeAccount ()
103+ if err != nil {
104+ return nil , err
105+ }
106+ megapoolAddress , err := megapool .GetMegapoolExpectedAddress (rp , nodeAccount .Address , nil )
107+ if err != nil {
108+ return nil , err
109+ }
110+
97111 // Create megapool
98112 mega , err := megapool .NewMegaPoolV1 (rp , megapoolAddress , nil )
99113 if err != nil {
@@ -112,7 +126,7 @@ func getUseLatestDelegate(c *cli.Command, megapoolAddress common.Address) (*api.
112126
113127}
114128
115- func canSetUseLatestDelegate (c * cli.Command , megapoolAddress common. Address , useLatest bool ) (* api.MegapoolCanSetUseLatestDelegateResponse , error ) {
129+ func canSetUseLatestDelegate (c * cli.Command , useLatest bool ) (* api.MegapoolCanSetUseLatestDelegateResponse , error ) {
116130 // Get services
117131 if err := services .RequireNodeRegistered (c ); err != nil {
118132 return nil , err
@@ -126,6 +140,15 @@ func canSetUseLatestDelegate(c *cli.Command, megapoolAddress common.Address, use
126140 return nil , err
127141 }
128142
143+ nodeAccount , err := w .GetNodeAccount ()
144+ if err != nil {
145+ return nil , err
146+ }
147+ megapoolAddress , err := megapool .GetMegapoolExpectedAddress (rp , nodeAccount .Address , nil )
148+ if err != nil {
149+ return nil , err
150+ }
151+
129152 // Response
130153 response := api.MegapoolCanSetUseLatestDelegateResponse {}
131154
@@ -162,7 +185,7 @@ func canSetUseLatestDelegate(c *cli.Command, megapoolAddress common.Address, use
162185
163186}
164187
165- func setUseLatestDelegate (c * cli.Command , megapoolAddress common. Address , useLatest bool , opts * bind.TransactOpts ) (* api.MegapoolSetUseLatestDelegateResponse , error ) {
188+ func setUseLatestDelegate (c * cli.Command , useLatest bool , opts * bind.TransactOpts ) (* api.MegapoolSetUseLatestDelegateResponse , error ) {
166189 // Get services
167190 if err := services .RequireNodeRegistered (c ); err != nil {
168191 return nil , err
@@ -171,6 +194,20 @@ func setUseLatestDelegate(c *cli.Command, megapoolAddress common.Address, useLat
171194 if err != nil {
172195 return nil , err
173196 }
197+ w , err := services .GetWallet (c )
198+ if err != nil {
199+ return nil , err
200+ }
201+
202+ // Get node account and derive the megapool address
203+ nodeAccount , err := w .GetNodeAccount ()
204+ if err != nil {
205+ return nil , err
206+ }
207+ megapoolAddress , err := megapool .GetMegapoolExpectedAddress (rp , nodeAccount .Address , nil )
208+ if err != nil {
209+ return nil , err
210+ }
174211
175212 // Response
176213 response := api.MegapoolSetUseLatestDelegateResponse {}
@@ -193,12 +230,16 @@ func setUseLatestDelegate(c *cli.Command, megapoolAddress common.Address, useLat
193230
194231}
195232
196- func getDelegate (c * cli.Command , megapoolAddress common. Address ) (* api.MegapoolGetDelegateResponse , error ) {
233+ func getDelegate (c * cli.Command ) (* api.MegapoolGetDelegateResponse , error ) {
197234
198235 // Get services
199236 if err := services .RequireNodeRegistered (c ); err != nil {
200237 return nil , err
201238 }
239+ w , err := services .GetWallet (c )
240+ if err != nil {
241+ return nil , err
242+ }
202243 rp , err := services .GetRocketPool (c )
203244 if err != nil {
204245 return nil , err
@@ -207,6 +248,16 @@ func getDelegate(c *cli.Command, megapoolAddress common.Address) (*api.MegapoolG
207248 // Response
208249 response := api.MegapoolGetDelegateResponse {}
209250
251+ // Get node account and derive the megapool address
252+ nodeAccount , err := w .GetNodeAccount ()
253+ if err != nil {
254+ return nil , err
255+ }
256+ megapoolAddress , err := megapool .GetMegapoolExpectedAddress (rp , nodeAccount .Address , nil )
257+ if err != nil {
258+ return nil , err
259+ }
260+
210261 // Create megapool
211262 mega , err := megapool .NewMegaPoolV1 (rp , megapoolAddress , nil )
212263 if err != nil {
@@ -225,12 +276,16 @@ func getDelegate(c *cli.Command, megapoolAddress common.Address) (*api.MegapoolG
225276
226277}
227278
228- func getEffectiveDelegate (c * cli.Command , megapoolAddress common. Address ) (* api.MegapoolGetEffectiveDelegateResponse , error ) {
279+ func getEffectiveDelegate (c * cli.Command ) (* api.MegapoolGetEffectiveDelegateResponse , error ) {
229280
230281 // Get services
231282 if err := services .RequireNodeRegistered (c ); err != nil {
232283 return nil , err
233284 }
285+ w , err := services .GetWallet (c )
286+ if err != nil {
287+ return nil , err
288+ }
234289 rp , err := services .GetRocketPool (c )
235290 if err != nil {
236291 return nil , err
@@ -239,6 +294,16 @@ func getEffectiveDelegate(c *cli.Command, megapoolAddress common.Address) (*api.
239294 // Response
240295 response := api.MegapoolGetEffectiveDelegateResponse {}
241296
297+ // Get node account and derive the megapool address
298+ nodeAccount , err := w .GetNodeAccount ()
299+ if err != nil {
300+ return nil , err
301+ }
302+ megapoolAddress , err := megapool .GetMegapoolExpectedAddress (rp , nodeAccount .Address , nil )
303+ if err != nil {
304+ return nil , err
305+ }
306+
242307 // Create Megapool
243308 mega , err := megapool .NewMegaPoolV1 (rp , megapoolAddress , nil )
244309 if err != nil {
0 commit comments