diff --git a/allways/cli/swap_commands/admin.py b/allways/cli/swap_commands/admin.py index bc4da5b1..95a1dfdd 100644 --- a/allways/cli/swap_commands/admin.py +++ b/allways/cli/swap_commands/admin.py @@ -6,14 +6,13 @@ from allways.cli.swap_commands.helpers import ( blocks_to_minutes_str, console, - from_rao, get_cli_context, is_valid_ss58, loading, print_contract_error, - to_rao, ) from allways.contract_client import ContractError +from allways.utils.misc import from_rao, to_rao def _run_setter(title, getter, setter, noun, format_current, new_display, success_msg): diff --git a/allways/cli/swap_commands/claim.py b/allways/cli/swap_commands/claim.py index 9fd59b45..4f298a93 100644 --- a/allways/cli/swap_commands/claim.py +++ b/allways/cli/swap_commands/claim.py @@ -6,9 +6,10 @@ from allways.classes import SwapStatus from allways.cli.help import StyledCommand -from allways.cli.swap_commands.helpers import console, from_rao, get_cli_context, loading, print_contract_error +from allways.cli.swap_commands.helpers import console, get_cli_context, loading, print_contract_error from allways.cli.swap_commands.view import DEFAULT_DASHBOARD_URL from allways.contract_client import ContractError +from allways.utils.misc import from_rao @click.command('claim', cls=StyledCommand, show_disclaimer=True) diff --git a/allways/cli/swap_commands/collateral.py b/allways/cli/swap_commands/collateral.py index be4b2a1c..ea885b81 100644 --- a/allways/cli/swap_commands/collateral.py +++ b/allways/cli/swap_commands/collateral.py @@ -7,14 +7,13 @@ from allways.cli.swap_commands.helpers import ( blocks_to_minutes_str, console, - from_rao, get_cli_context, loading, print_contract_error, - to_rao, ) from allways.constants import MIN_BALANCE_FOR_TX_RAO, MIN_COLLATERAL_TAO from allways.contract_client import ContractError, is_contract_rejection +from allways.utils.misc import from_rao, to_rao @click.group('collateral', cls=StyledGroup, show_disclaimer=True) diff --git a/allways/cli/swap_commands/helpers.py b/allways/cli/swap_commands/helpers.py index 26293e96..3865e21c 100644 --- a/allways/cli/swap_commands/helpers.py +++ b/allways/cli/swap_commands/helpers.py @@ -18,7 +18,6 @@ MAX_EXTENSION_BLOCKS, MAX_EXTENSIONS_PER_RESERVATION, NETUID_FINNEY, - TAO_TO_RAO, ) from allways.contract_client import AllwaysContractClient, ContractError, is_contract_rejection @@ -161,16 +160,6 @@ def is_local_network(network: str) -> bool: return any(host in network for host in ('127.0.0.1', 'localhost', '0.0.0.0')) -def to_rao(amount_tao: float) -> int: - """Convert TAO to rao.""" - return int(amount_tao * TAO_TO_RAO) - - -def from_rao(amount_rao: int) -> float: - """Convert rao to TAO.""" - return amount_rao / TAO_TO_RAO - - def load_cli_config() -> dict: """Load CLI configuration from ~/.allways/config.json.""" if not CONFIG_FILE.exists(): diff --git a/allways/cli/swap_commands/miner_commands.py b/allways/cli/swap_commands/miner_commands.py index ba00553f..5f565f2a 100644 --- a/allways/cli/swap_commands/miner_commands.py +++ b/allways/cli/swap_commands/miner_commands.py @@ -15,7 +15,6 @@ SWAP_STATUS_COLORS, blocks_to_minutes_str, console, - from_rao, get_cli_context, loading, print_contract_error, @@ -24,6 +23,7 @@ from allways.cli.validator_rejections import render_and_aggregate from allways.constants import FEE_DIVISOR from allways.contract_client import ContractError +from allways.utils.misc import from_rao @click.group('miner', cls=StyledGroup) diff --git a/allways/cli/swap_commands/quote.py b/allways/cli/swap_commands/quote.py index 5a452f26..76609353 100644 --- a/allways/cli/swap_commands/quote.py +++ b/allways/cli/swap_commands/quote.py @@ -9,13 +9,13 @@ from allways.cli.swap_commands.helpers import ( console, find_matching_miners, - from_rao, get_cli_context, loading, read_miner_commitments, ) from allways.constants import FEE_DIVISOR from allways.contract_client import ContractError +from allways.utils.misc import from_rao from allways.utils.rate import apply_fee_deduction, calculate_to_amount, check_swap_viability, derive_tao_leg diff --git a/allways/cli/swap_commands/status.py b/allways/cli/swap_commands/status.py index 85faf91e..5e16caf5 100644 --- a/allways/cli/swap_commands/status.py +++ b/allways/cli/swap_commands/status.py @@ -7,7 +7,6 @@ from allways.cli.swap_commands.helpers import ( blocks_to_minutes_str, console, - from_rao, get_cli_context, hydrate_pending_swap, load_pending_swap, @@ -17,6 +16,7 @@ ) from allways.constants import NETUID_FINNEY from allways.contract_client import ContractError +from allways.utils.misc import from_rao @click.command('status', cls=StyledCommand) diff --git a/allways/cli/swap_commands/swap.py b/allways/cli/swap_commands/swap.py index 37729845..e120496a 100644 --- a/allways/cli/swap_commands/swap.py +++ b/allways/cli/swap_commands/swap.py @@ -21,7 +21,6 @@ clear_pending_swap, console, find_matching_miners, - from_rao, get_cli_context, is_local_network, load_pending_swap, @@ -37,6 +36,7 @@ from allways.constants import FEE_DIVISOR, NETUID_FINNEY from allways.contract_client import ContractError from allways.synapses import SwapConfirmSynapse, SwapReserveSynapse +from allways.utils.misc import from_rao from allways.utils.proofs import reserve_proof_message, swap_proof_message from allways.utils.rate import apply_fee_deduction, calculate_to_amount, check_swap_viability, derive_tao_leg diff --git a/allways/cli/swap_commands/view.py b/allways/cli/swap_commands/view.py index a2088052..de76bc60 100644 --- a/allways/cli/swap_commands/view.py +++ b/allways/cli/swap_commands/view.py @@ -19,7 +19,6 @@ blocks_to_minutes_str, clear_pending_swap, console, - from_rao, get_cli_context, hydrate_pending_swap, load_pending_swap, @@ -35,6 +34,7 @@ MAX_EXTENSIONS_PER_SWAP, ) from allways.contract_client import ContractError +from allways.utils.misc import from_rao DEFAULT_DASHBOARD_URL = 'https://test.all-ways.io' diff --git a/allways/utils/misc.py b/allways/utils/misc.py index b7b166a7..a68e18d0 100644 --- a/allways/utils/misc.py +++ b/allways/utils/misc.py @@ -3,6 +3,18 @@ from math import floor from typing import Any, Callable +from allways.constants import TAO_TO_RAO + + +def to_rao(amount_tao: float) -> int: + """Convert TAO to rao.""" + return int(amount_tao * TAO_TO_RAO) + + +def from_rao(amount_rao: int) -> float: + """Convert rao to TAO.""" + return amount_rao / TAO_TO_RAO + # LRU Cache with TTL def ttl_cache(maxsize: int = 128, typed: bool = False, ttl: int = -1):