diff --git a/bittensor_cli/cli.py b/bittensor_cli/cli.py index bb1c5126a..fdf7ce2a2 100755 --- a/bittensor_cli/cli.py +++ b/bittensor_cli/cli.py @@ -277,8 +277,6 @@ def edit_help(cls, option_name: str, help_text: str): ) rate_tolerance = typer.Option( None, - "--slippage", - "--slippage-tolerance", "--tolerance", "--rate-tolerance", help="Set the rate tolerance percentage for transactions (default: 0.05 for 5%).", @@ -1257,8 +1255,6 @@ def set_config( ), rate_tolerance: Optional[float] = typer.Option( None, - "--slippage", - "--slippage-tolerance", "--tolerance", help="Set the rate tolerance percentage for transactions (e.g. 0.1 for 0.1%).", ), @@ -1404,9 +1400,7 @@ def del_config( wallet_hotkey: bool = typer.Option(False, *Options.wallet_hotkey.param_decls), network: bool = typer.Option(False, *Options.network.param_decls), use_cache: bool = typer.Option(False, "--cache"), - rate_tolerance: bool = typer.Option( - False, "--slippage", "--slippage-tolerance", "--tolerance" - ), + rate_tolerance: bool = typer.Option(False, "--tolerance"), safe_staking: bool = typer.Option( False, "--safe-staking/--no-safe-staking", "--safe/--unsafe" ), diff --git a/bittensor_cli/src/bittensor/subtensor_interface.py b/bittensor_cli/src/bittensor/subtensor_interface.py index e5b5eac12..4ae3861a1 100644 --- a/bittensor_cli/src/bittensor/subtensor_interface.py +++ b/bittensor_cli/src/bittensor/subtensor_interface.py @@ -1534,7 +1534,7 @@ async def get_stake_fee( if destination_hotkey_ss58 is not None and destination_netuid is not None: destination = (destination_hotkey_ss58, destination_netuid) - result = await self.query_runtime_api( + result_ = await self.query_runtime_api( runtime_api="StakeInfoRuntimeApi", method="get_stake_fee", params=[ @@ -1546,8 +1546,11 @@ async def get_stake_fee( ], block_hash=block_hash, ) + result = Balance.from_rao(result_) + if isinstance(origin_netuid, int): + result.set_unit(origin_netuid) - return Balance.from_rao(result) + return result async def get_scheduled_coldkey_swap( self, diff --git a/bittensor_cli/src/commands/stake/move.py b/bittensor_cli/src/commands/stake/move.py index 578c9f0a0..ede380597 100644 --- a/bittensor_cli/src/commands/stake/move.py +++ b/bittensor_cli/src/commands/stake/move.py @@ -38,14 +38,16 @@ async def display_stake_movement_cross_subnets( if origin_netuid == destination_netuid: subnet = await subtensor.subnet(origin_netuid) - received_amount_tao = subnet.alpha_to_tao(amount_to_move) - received_amount_tao -= stake_fee + received_amount_tao = subnet.alpha_to_tao(amount_to_move - stake_fee) + received_amount = subnet.tao_to_alpha(received_amount_tao) - if received_amount_tao < Balance.from_tao(0): - print_error("Not enough Alpha to pay the transaction fee.") + if received_amount < Balance.from_tao(0).set_unit(destination_netuid): + print_error( + f"Not enough Alpha to pay the transaction fee. The fee is {stake_fee}, " + f"which would set the total received to {received_amount}." + ) raise ValueError - received_amount = subnet.tao_to_alpha(received_amount_tao) price = subnet.price.tao price_str = ( str(float(price)) @@ -60,13 +62,15 @@ async def display_stake_movement_cross_subnets( price_destination = dynamic_destination.price.tao rate = price_origin / (price_destination or 1) - received_amount_tao = dynamic_origin.alpha_to_tao(amount_to_move) - received_amount_tao -= stake_fee + received_amount_tao = dynamic_origin.alpha_to_tao(amount_to_move - stake_fee) received_amount = dynamic_destination.tao_to_alpha(received_amount_tao) received_amount.set_unit(destination_netuid) - if received_amount < Balance.from_tao(0): - print_error("Not enough Alpha to pay the transaction fee.") + if received_amount < Balance.from_tao(0).set_unit(destination_netuid): + print_error( + f"Not enough Alpha to pay the transaction fee. The fee is {stake_fee}, " + f"which would set the total received to {received_amount}." + ) raise ValueError price_str = ( diff --git a/tests/e2e_tests/test_unstaking.py b/tests/e2e_tests/test_unstaking.py index e28c54df6..68af71087 100644 --- a/tests/e2e_tests/test_unstaking.py +++ b/tests/e2e_tests/test_unstaking.py @@ -231,7 +231,7 @@ def test_unstaking(local_chain, wallet_setup): "144", ], ) - assert "✅ Finalized" in stake_result.stdout + assert "✅ Finalized" in stake_result.stdout, stake_result.stderr stake_list = exec_command_bob( command="stake",