@@ -177,7 +177,7 @@ async def set_hyperparameter_extrinsic(
177177 wait_for_inclusion : bool = False ,
178178 wait_for_finalization : bool = True ,
179179 prompt : bool = True ,
180- ) -> bool :
180+ ) -> tuple [ bool , str ] :
181181 """Sets a hyperparameter for a specific subnetwork.
182182
183183 :param subtensor: initialized SubtensorInterface object
@@ -200,13 +200,14 @@ async def set_hyperparameter_extrinsic(
200200 params = [netuid ],
201201 )
202202 if subnet_owner != wallet .coldkeypub .ss58_address :
203- err_console . print (
203+ err_msg = (
204204 ":cross_mark: [red]This wallet doesn't own the specified subnet.[/red]"
205205 )
206- return False
206+ err_console .print (err_msg )
207+ return False , err_msg
207208
208- if not unlock_key (wallet ).success :
209- return False
209+ if not ( ulw := unlock_key (wallet ) ).success :
210+ return False , ulw . message
210211
211212 arbitrary_extrinsic = False
212213
@@ -218,15 +219,14 @@ async def set_hyperparameter_extrinsic(
218219 )
219220 extrinsic = parameter
220221 if not arbitrary_extrinsic :
221- err_console .print (
222- ":cross_mark: [red]Invalid hyperparameter specified.[/red]"
223- )
224- return False
222+ err_msg = ":cross_mark: [red]Invalid hyperparameter specified.[/red]"
223+ err_console .print (err_msg )
224+ return False , err_msg
225225 if sudo_ and prompt :
226226 if not Confirm .ask (
227227 "This hyperparam is only settable by root sudo users. If you are not, this will fail. Please confirm"
228228 ):
229- return False
229+ return False , "This hyperparam is only settable by root sudo users"
230230
231231 substrate = subtensor .substrate
232232 msg_value = value if not arbitrary_extrinsic else call_params
@@ -254,10 +254,11 @@ async def set_hyperparameter_extrinsic(
254254 ]
255255
256256 if len (value ) < len (non_netuid_fields ):
257- err_console . print (
257+ err_msg = (
258258 "Not enough values provided in the list for all parameters"
259259 )
260- return False
260+ err_console .print (err_msg )
261+ return False , err_msg
261262
262263 call_params .update (
263264 {name : val for name , val in zip (non_netuid_fields , value )}
@@ -290,20 +291,20 @@ async def set_hyperparameter_extrinsic(
290291 )
291292 if not success :
292293 err_console .print (f":cross_mark: [red]Failed[/red]: { err_msg } " )
293- return False
294+ return False , err_msg
294295 elif arbitrary_extrinsic :
295296 console .print (
296297 f":white_heavy_check_mark: "
297298 f"[dark_sea_green3]Hyperparameter { parameter } values changed to { call_params } [/dark_sea_green3]"
298299 )
299- return True
300+ return True , ""
300301 # Successful registration, final check for membership
301302 else :
302303 console .print (
303304 f":white_heavy_check_mark: "
304305 f"[dark_sea_green3]Hyperparameter { parameter } changed to { value } [/dark_sea_green3]"
305306 )
306- return True
307+ return True , ""
307308
308309
309310async def _get_senate_members (
@@ -619,25 +620,26 @@ async def sudo_set_hyperparameter(
619620 param_value : Optional [str ],
620621 prompt : bool ,
621622 json_output : bool ,
622- ):
623+ ) -> tuple [ bool , str ] :
623624 """Set subnet hyperparameters."""
624625 is_allowed_value , value = allowed_value (param_name , param_value )
625626 if not is_allowed_value :
626- err_console . print (
627+ err_msg = (
627628 f"Hyperparameter [dark_orange]{ param_name } [/dark_orange] value is not within bounds. "
628629 f"Value is { param_value } but must be { value } "
629630 )
630- return False
631- success = await set_hyperparameter_extrinsic (
631+ err_console .print (err_msg )
632+ return False , err_msg
633+ success , err_msg = await set_hyperparameter_extrinsic (
632634 subtensor , wallet , netuid , param_name , value , prompt = prompt
633635 )
634636 if json_output :
635- return success
637+ return success , err_msg
636638 if success :
637639 console .print ("\n " )
638640 print_verbose ("Fetching hyperparameters" )
639641 await get_hyperparameters (subtensor , netuid = netuid )
640- return success
642+ return success , err_msg
641643
642644
643645async def get_hyperparameters (
0 commit comments