bittensor.utils.liquidity#

This module provides utilities for managing liquidity positions and price conversions in the Bittensor network. The module handles conversions between TAO and Alpha tokens while maintaining precise calculations for liquidity provisioning and fee distribution.

Attributes#

Classes#

Functions#

calculate_fees(position, global_fees_tao, ...)

get_fees(current_tick, tick, tick_index, quote, ...)

Returns the liquidity fee.

get_fees_in_range(quote, global_fees_tao, ...)

Returns the liquidity fee value in a range.

price_to_tick(price)

Converts a float price to the nearest Uniswap V3 tick index.

tick_to_price(tick)

Convert an integer Uniswap V3 tick index to float price.

Module Contents#

class bittensor.utils.liquidity.LiquidityPosition#
fees_alpha: bittensor.utils.balance.Balance#
fees_tao: bittensor.utils.balance.Balance#
id: int#
liquidity: bittensor.utils.balance.Balance#
netuid: int#
price_high: bittensor.utils.balance.Balance#
price_low: bittensor.utils.balance.Balance#
to_token_amounts(current_subnet_price)#

Convert a position to token amounts.

Parameters:

current_subnet_price (bittensor.utils.balance.Balance) – current subnet price in Alpha.

Returns:

Amount of Alpha in liquidity Amount of TAO in liquidity

Return type:

tuple[int, int]

Liquidity is a combination of TAO and Alpha depending on the price of the subnet at the moment.

bittensor.utils.liquidity.MAX_TICK = 887272#
bittensor.utils.liquidity.MIN_TICK = -887272#
bittensor.utils.liquidity.PRICE_STEP = 1.0001#
bittensor.utils.liquidity.calculate_fees(position, global_fees_tao, global_fees_alpha, tao_fees_below_low, tao_fees_above_high, alpha_fees_below_low, alpha_fees_above_high, netuid)#
Parameters:
  • position (dict[str, Any])

  • global_fees_tao (float)

  • global_fees_alpha (float)

  • tao_fees_below_low (float)

  • tao_fees_above_high (float)

  • alpha_fees_below_low (float)

  • alpha_fees_above_high (float)

  • netuid (int)

Return type:

tuple[bittensor.utils.balance.Balance, bittensor.utils.balance.Balance]

bittensor.utils.liquidity.get_fees(current_tick, tick, tick_index, quote, global_fees_tao, global_fees_alpha, above)#

Returns the liquidity fee.

Parameters:
Return type:

float

bittensor.utils.liquidity.get_fees_in_range(quote, global_fees_tao, global_fees_alpha, fees_below_low, fees_above_high)#

Returns the liquidity fee value in a range.

Parameters:
Return type:

float

bittensor.utils.liquidity.price_to_tick(price)#

Converts a float price to the nearest Uniswap V3 tick index.

Parameters:

price (float)

Return type:

int

bittensor.utils.liquidity.tick_to_price(tick)#

Convert an integer Uniswap V3 tick index to float price.

Parameters:

tick (int)

Return type:

float