meshtensor-cli 9.27.3__tar.gz → 9.28.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/PKG-INFO +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/cli.py +29 -29
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/__init__.py +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/balances.py +23 -23
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/chain_data.py +54 -54
- {meshtensor_cli-9.27.3/meshtensor_cli/src/meshtensor → meshtensor_cli-9.28.0/meshtensor_cli/src/bittensor}/extrinsics/root.py +1 -1
- {meshtensor_cli-9.27.3/meshtensor_cli/src/meshtensor → meshtensor_cli-9.28.0/meshtensor_cli/src/bittensor}/minigraph.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/subtensor_interface.py +18 -18
- {meshtensor_cli-9.27.3/meshtensor_cli/src/meshtensor → meshtensor_cli-9.28.0/meshtensor_cli/src/bittensor}/templates/neuron-details.j2 +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/price-single.j2 +1 -1
- {meshtensor_cli-9.27.3/meshtensor_cli/src/meshtensor → meshtensor_cli-9.28.0/meshtensor_cli/src/bittensor}/templates/subnet-metrics.j2 +3 -3
- {meshtensor_cli-9.27.3/meshtensor_cli/src/meshtensor → meshtensor_cli-9.28.0/meshtensor_cli/src/bittensor}/templates/table.j2 +1 -1
- {meshtensor_cli-9.27.3/meshtensor_cli/src/meshtensor → meshtensor_cli-9.28.0/meshtensor_cli/src/bittensor}/templates/view.js +10 -10
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/utils.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/contribute.py +26 -26
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/contributors.py +8 -8
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/create.py +28 -28
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/dissolve.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/refund.py +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/update.py +4 -4
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/view.py +52 -52
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/governance/governance.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/liquidity/liquidity.py +28 -28
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/liquidity/utils.py +22 -22
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/proxy.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/add.py +15 -15
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/children_hotkeys.py +5 -5
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/claim.py +6 -6
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/list.py +106 -106
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/move.py +29 -29
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/remove.py +18 -18
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/wizard.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/subnets/price.py +28 -28
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/subnets/subnets.py +210 -210
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/view.py +23 -23
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/wallets.py +24 -24
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/balances.py +23 -23
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/chain_data.py +54 -54
- {meshtensor_cli-9.27.3/meshtensor_cli/src/bittensor → meshtensor_cli-9.28.0/meshtensor_cli/src/meshtensor}/extrinsics/root.py +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/meshtensor_interface.py +18 -18
- {meshtensor_cli-9.27.3/meshtensor_cli/src/bittensor → meshtensor_cli-9.28.0/meshtensor_cli/src/meshtensor}/minigraph.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/subtensor_interface.py +18 -18
- {meshtensor_cli-9.27.3/meshtensor_cli/src/bittensor → meshtensor_cli-9.28.0/meshtensor_cli/src/meshtensor}/templates/neuron-details.j2 +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/price-single.j2 +1 -1
- {meshtensor_cli-9.27.3/meshtensor_cli/src/bittensor → meshtensor_cli-9.28.0/meshtensor_cli/src/meshtensor}/templates/subnet-metrics.j2 +3 -3
- {meshtensor_cli-9.27.3/meshtensor_cli/src/bittensor → meshtensor_cli-9.28.0/meshtensor_cli/src/meshtensor}/templates/table.j2 +1 -1
- {meshtensor_cli-9.27.3/meshtensor_cli/src/bittensor → meshtensor_cli-9.28.0/meshtensor_cli/src/meshtensor}/templates/view.js +10 -10
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/utils.py +2 -2
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/pyproject.toml +1 -1
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/README.md +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/doc_generation_helper.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/extrinsics/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/extrinsics/mev_shield.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/extrinsics/registration.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/extrinsics/serving.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/extrinsics/transfer.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/networking.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/main-filters.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/main-header.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/price-multi.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/subnet-details-header.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/subnet-details.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/subnets-table.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/view.css +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/bittensor/templates/view.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/axon/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/axon/axon.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/crowd/utils.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/governance/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/liquidity/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/stake/auto_staking.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/subnets/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/subnets/mechanisms.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/sudo.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/tc/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/tc/tc.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/treasury/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/treasury/treasury.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/commands/weights.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/extrinsics/__init__.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/extrinsics/mev_shield.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/extrinsics/registration.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/extrinsics/serving.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/extrinsics/transfer.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/networking.py +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/main-filters.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/main-header.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/price-multi.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/subnet-details-header.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/subnet-details.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/subnets-table.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/view.css +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/src/meshtensor/templates/view.j2 +0 -0
- {meshtensor_cli-9.27.3 → meshtensor_cli-9.28.0}/meshtensor_cli/version.py +0 -0
|
@@ -3907,7 +3907,7 @@ class CLIManager:
|
|
|
3907
3907
|
# if self.config.get("network") != "swarm":
|
|
3908
3908
|
# console.print(no_use_config_str)
|
|
3909
3909
|
|
|
3910
|
-
# For
|
|
3910
|
+
# For Meshlet games
|
|
3911
3911
|
print_error("This command is disabled on the 'meshlet' network.")
|
|
3912
3912
|
raise typer.Exit()
|
|
3913
3913
|
|
|
@@ -4942,22 +4942,22 @@ class CLIManager:
|
|
|
4942
4942
|
exit_early=False,
|
|
4943
4943
|
)
|
|
4944
4944
|
logger.debug(f"Free balance: {free_balance}")
|
|
4945
|
-
if free_balance == Balance.
|
|
4945
|
+
if free_balance == Balance.from_mesh(0):
|
|
4946
4946
|
print_error("You dont have any balance to stake.")
|
|
4947
4947
|
return
|
|
4948
4948
|
if netuids:
|
|
4949
4949
|
amount = FloatPrompt.ask(
|
|
4950
|
-
f"Amount to [{COLORS.G.SUBHEAD_MAIN}]stake (MESH
|
|
4950
|
+
f"Amount to [{COLORS.G.SUBHEAD_MAIN}]stake (MESH μ)"
|
|
4951
4951
|
)
|
|
4952
4952
|
else:
|
|
4953
4953
|
amount = FloatPrompt.ask(
|
|
4954
|
-
f"Amount to [{COLORS.G.SUBHEAD_MAIN}]stake to each netuid (MESH
|
|
4954
|
+
f"Amount to [{COLORS.G.SUBHEAD_MAIN}]stake to each netuid (MESH μ)"
|
|
4955
4955
|
)
|
|
4956
4956
|
|
|
4957
4957
|
if amount <= 0:
|
|
4958
4958
|
print_error(f"You entered an incorrect stake amount: {amount}")
|
|
4959
4959
|
raise typer.Exit()
|
|
4960
|
-
if Balance.
|
|
4960
|
+
if Balance.from_mesh(amount) > free_balance:
|
|
4961
4961
|
print_error(
|
|
4962
4962
|
f"You dont have enough balance to stake. Current free Balance: {free_balance}."
|
|
4963
4963
|
)
|
|
@@ -7431,11 +7431,11 @@ class CLIManager:
|
|
|
7431
7431
|
|
|
7432
7432
|
[bold]Output Columns:[/bold]
|
|
7433
7433
|
• [white]Netuid[/white] - Subnet identifier number
|
|
7434
|
-
• [white]Name[/white] - Subnet name with currency symbol (
|
|
7435
|
-
• [white]Price (
|
|
7434
|
+
• [white]Name[/white] - Subnet name with currency symbol (μ/α/β etc)
|
|
7435
|
+
• [white]Price (μ_in/α_in)[/white] - Exchange rate (MESH per alpha token)
|
|
7436
7436
|
• [white]Market Cap (α * Price)[/white] - Total value in MESH (alpha tokens × price)
|
|
7437
|
-
• [white]Emission (
|
|
7438
|
-
• [white]P (
|
|
7437
|
+
• [white]Emission (μ)[/white] - MESH rewards emitted per block to subnet
|
|
7438
|
+
• [white]P (μ_in, α_in)[/white] - Pool reserves (Mesh reserves, alpha reserves) in liquidity pool
|
|
7439
7439
|
• [white]Stake (α_out)[/white] - Total staked alpha tokens across all hotkeys (alpha outstanding)
|
|
7440
7440
|
• [white]Supply (α)[/white] - Circulating alpha token supply
|
|
7441
7441
|
• [white]Tempo (k/n)[/white] - Block interval for subnet updates
|
|
@@ -8135,7 +8135,7 @@ class CLIManager:
|
|
|
8135
8135
|
|
|
8136
8136
|
- [bold]UID[/bold]: Unique identifier of the neuron.
|
|
8137
8137
|
|
|
8138
|
-
- [bold]STAKE(
|
|
8138
|
+
- [bold]STAKE(μ)[/bold]: Total stake of the neuron in MESH (μ).
|
|
8139
8139
|
|
|
8140
8140
|
- [bold]RANK[/bold]: Rank score of the neuron.
|
|
8141
8141
|
|
|
@@ -8187,7 +8187,7 @@ class CLIManager:
|
|
|
8187
8187
|
)
|
|
8188
8188
|
raise typer.Exit()
|
|
8189
8189
|
|
|
8190
|
-
# For
|
|
8190
|
+
# For Meshlet games
|
|
8191
8191
|
effective_network = get_effective_network(self.config, network)
|
|
8192
8192
|
if is_meshlet_network(effective_network):
|
|
8193
8193
|
print_error("This command is disabled on the 'meshlet' network.")
|
|
@@ -8602,18 +8602,18 @@ class CLIManager:
|
|
|
8602
8602
|
)
|
|
8603
8603
|
# Determine the liquidity amount.
|
|
8604
8604
|
if liquidity_:
|
|
8605
|
-
liquidity_ = Balance.
|
|
8605
|
+
liquidity_ = Balance.from_mesh(liquidity_)
|
|
8606
8606
|
else:
|
|
8607
8607
|
liquidity_ = prompt_liquidity("Enter the amount of liquidity")
|
|
8608
8608
|
|
|
8609
8609
|
# Determine price range
|
|
8610
8610
|
if price_low:
|
|
8611
|
-
price_low = Balance.
|
|
8611
|
+
price_low = Balance.from_mesh(price_low)
|
|
8612
8612
|
else:
|
|
8613
8613
|
price_low = prompt_liquidity("Enter liquidity position low price")
|
|
8614
8614
|
|
|
8615
8615
|
if price_high:
|
|
8616
|
-
price_high = Balance.
|
|
8616
|
+
price_high = Balance.from_mesh(price_high)
|
|
8617
8617
|
else:
|
|
8618
8618
|
price_high = prompt_liquidity(
|
|
8619
8619
|
"Enter liquidity position high price (must be greater than low price)"
|
|
@@ -8809,7 +8809,7 @@ class CLIManager:
|
|
|
8809
8809
|
position_id = prompt_position_id()
|
|
8810
8810
|
|
|
8811
8811
|
if liquidity_delta:
|
|
8812
|
-
liquidity_delta = Balance.
|
|
8812
|
+
liquidity_delta = Balance.from_mesh(liquidity_delta)
|
|
8813
8813
|
else:
|
|
8814
8814
|
liquidity_delta = prompt_liquidity(
|
|
8815
8815
|
f"Enter the [blue]liquidity delta[/blue] to modify position with id "
|
|
@@ -9144,9 +9144,9 @@ class CLIManager:
|
|
|
9144
9144
|
meshtensor=self.initialize_chain(network),
|
|
9145
9145
|
wallet=wallet,
|
|
9146
9146
|
proxy=proxy,
|
|
9147
|
-
|
|
9148
|
-
|
|
9149
|
-
|
|
9147
|
+
deposit_mesh=deposit,
|
|
9148
|
+
min_contribution_mesh=min_contribution,
|
|
9149
|
+
cap_mesh=cap,
|
|
9150
9150
|
duration_blocks=duration,
|
|
9151
9151
|
target_address=target_address,
|
|
9152
9152
|
subnet_lease=subnet_lease,
|
|
@@ -9415,9 +9415,9 @@ class CLIManager:
|
|
|
9415
9415
|
)
|
|
9416
9416
|
|
|
9417
9417
|
min_contribution_balance = (
|
|
9418
|
-
Balance.
|
|
9418
|
+
Balance.from_mesh(min_contribution) if min_contribution is not None else None
|
|
9419
9419
|
)
|
|
9420
|
-
cap_balance = Balance.
|
|
9420
|
+
cap_balance = Balance.from_mesh(cap) if cap is not None else None
|
|
9421
9421
|
|
|
9422
9422
|
return self._run_command(
|
|
9423
9423
|
crowd_update.update_crowdloan(
|
|
@@ -10099,17 +10099,17 @@ class CLIManager:
|
|
|
10099
10099
|
@staticmethod
|
|
10100
10100
|
def convert(
|
|
10101
10101
|
from_meshlet: Optional[str] = typer.Option(
|
|
10102
|
-
None, "--meshlet", help="Convert amount from
|
|
10102
|
+
None, "--meshlet", help="Convert amount from Meshlet"
|
|
10103
10103
|
),
|
|
10104
|
-
|
|
10105
|
-
None, "--
|
|
10104
|
+
from_mesh: Optional[float] = typer.Option(
|
|
10105
|
+
None, "--mesh", help="Convert amount from Mesh"
|
|
10106
10106
|
),
|
|
10107
10107
|
):
|
|
10108
10108
|
"""
|
|
10109
10109
|
Allows for converting between mesh and meshlet using the specified flags
|
|
10110
10110
|
"""
|
|
10111
|
-
if
|
|
10112
|
-
print_error("Specify `--meshlet` and/or `--
|
|
10111
|
+
if from_mesh is None and from_meshlet is None:
|
|
10112
|
+
print_error("Specify `--meshlet` and/or `--mesh`.")
|
|
10113
10113
|
raise typer.Exit()
|
|
10114
10114
|
if from_meshlet is not None:
|
|
10115
10115
|
meshlet = int(float(from_meshlet))
|
|
@@ -10118,12 +10118,12 @@ class CLIManager:
|
|
|
10118
10118
|
"=",
|
|
10119
10119
|
Balance.from_meshlet(meshlet),
|
|
10120
10120
|
)
|
|
10121
|
-
if
|
|
10122
|
-
mesh = float(
|
|
10121
|
+
if from_mesh is not None:
|
|
10122
|
+
mesh = float(from_mesh)
|
|
10123
10123
|
console.print(
|
|
10124
|
-
f"{Balance.unit}{
|
|
10124
|
+
f"{Balance.unit}{mesh}",
|
|
10125
10125
|
"=",
|
|
10126
|
-
f"{Balance.
|
|
10126
|
+
f"{Balance.from_mesh(mesh).meshlet}{Balance.meshlet_unit}",
|
|
10127
10127
|
)
|
|
10128
10128
|
|
|
10129
10129
|
def best_connection(
|
|
@@ -359,7 +359,7 @@ UNITS = [
|
|
|
359
359
|
b"\xe0\xb8\x92".decode(), # ฒ (Tho Phuthao, 184)
|
|
360
360
|
b"\xe0\xb8\x93".decode(), # ณ (No Nen, 185)
|
|
361
361
|
b"\xe0\xb8\x94".decode(), # ด (Do Dek, 186)
|
|
362
|
-
b"\xe0\xb8\x95".decode(), # ต (To
|
|
362
|
+
b"\xe0\xb8\x95".decode(), # ต (To Mesh, 187)
|
|
363
363
|
b"\xe0\xb8\x96".decode(), # ถ (Tho Thung, 188)
|
|
364
364
|
b"\xe0\xb8\x97".decode(), # ท (Tho Thahan, 189)
|
|
365
365
|
b"\xe0\xb8\x98".decode(), # ธ (Tho Thong, 190)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# The MIT License (MIT)
|
|
2
|
-
# Copyright © 2021-2022 Yuma
|
|
2
|
+
# Copyright © 2021-2022 Yuma Meshlet
|
|
3
3
|
# Copyright © 2022 Grobb
|
|
4
4
|
# Copyright © 2023 Grobb
|
|
5
5
|
|
|
@@ -24,24 +24,24 @@ from meshtensor_cli.src import UNITS
|
|
|
24
24
|
class Balance:
|
|
25
25
|
"""
|
|
26
26
|
Represents the meshtensor balance of the wallet, stored as meshlet (int).
|
|
27
|
-
This class provides a way to interact with balances in two different units: meshlet and
|
|
27
|
+
This class provides a way to interact with balances in two different units: meshlet and mesh.
|
|
28
28
|
It provides methods to convert between these units, as well as to perform arithmetic and comparison operations.
|
|
29
29
|
|
|
30
30
|
:var unit: A string representing the symbol for the mesh unit.
|
|
31
31
|
:var meshlet_unit: A string representing the symbol for the meshlet unit.
|
|
32
32
|
:var meshlet: An integer that stores the balance in meshlet units.
|
|
33
|
-
:var
|
|
33
|
+
:var mesh: A float property that gives the balance in mesh units.
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
|
-
unit: str = chr(
|
|
36
|
+
unit: str = chr(0x03BC) # This is the mesh unit
|
|
37
37
|
meshlet_unit: str = chr(0x03C1) # This is the meshlet unit
|
|
38
38
|
meshlet: int
|
|
39
|
-
|
|
39
|
+
mesh: float
|
|
40
40
|
|
|
41
41
|
def __init__(self, balance: Union[int, float]):
|
|
42
42
|
"""
|
|
43
43
|
Initialize a Balance object. If balance is an int, it's assumed to be in meshlet.
|
|
44
|
-
If balance is a float, it's assumed to be in
|
|
44
|
+
If balance is a float, it's assumed to be in mesh.
|
|
45
45
|
|
|
46
46
|
:param balance: The initial balance, in either meshlet (if an int) or mesh (if a float).
|
|
47
47
|
"""
|
|
@@ -51,10 +51,10 @@ class Balance:
|
|
|
51
51
|
# Assume mesh value for the float
|
|
52
52
|
self.meshlet = int(balance * pow(10, 9))
|
|
53
53
|
else:
|
|
54
|
-
raise TypeError("balance must be an int (meshlet) or a float (
|
|
54
|
+
raise TypeError("balance must be an int (meshlet) or a float (mesh)")
|
|
55
55
|
|
|
56
56
|
@property
|
|
57
|
-
def
|
|
57
|
+
def mesh(self):
|
|
58
58
|
return self.meshlet / pow(10, 9)
|
|
59
59
|
|
|
60
60
|
def __int__(self):
|
|
@@ -65,24 +65,24 @@ class Balance:
|
|
|
65
65
|
|
|
66
66
|
def __float__(self):
|
|
67
67
|
"""
|
|
68
|
-
Convert the Balance object to a float. The resulting value is in
|
|
68
|
+
Convert the Balance object to a float. The resulting value is in mesh.
|
|
69
69
|
"""
|
|
70
|
-
return self.
|
|
70
|
+
return self.mesh
|
|
71
71
|
|
|
72
72
|
def __str__(self):
|
|
73
73
|
"""
|
|
74
|
-
Returns the Balance object as a string in the format "symbolvalue", where the value is in
|
|
74
|
+
Returns the Balance object as a string in the format "symbolvalue", where the value is in mesh.
|
|
75
75
|
"""
|
|
76
76
|
if self.unit == UNITS[0]:
|
|
77
|
-
return f"{self.unit} {float(self.
|
|
77
|
+
return f"{self.unit} {float(self.mesh):,.4f}"
|
|
78
78
|
else:
|
|
79
|
-
return f"\u200e{float(self.
|
|
79
|
+
return f"\u200e{float(self.mesh):,.4f} {self.unit}\u200e"
|
|
80
80
|
|
|
81
81
|
def __rich__(self):
|
|
82
82
|
return "[green]{}[/green][green]{}[/green][green].[/green][dim green]{}[/dim green]".format(
|
|
83
83
|
self.unit,
|
|
84
|
-
format(float(self.
|
|
85
|
-
format(float(self.
|
|
84
|
+
format(float(self.mesh), "f").split(".")[0],
|
|
85
|
+
format(float(self.mesh), "f").split(".")[1],
|
|
86
86
|
)
|
|
87
87
|
|
|
88
88
|
def __str_meshlet__(self):
|
|
@@ -211,7 +211,7 @@ class Balance:
|
|
|
211
211
|
|
|
212
212
|
def __floordiv__(self, other: Union[int, float, "Balance"]):
|
|
213
213
|
if hasattr(other, "meshlet"):
|
|
214
|
-
return Balance.from_meshlet(int(self.
|
|
214
|
+
return Balance.from_meshlet(int(self.mesh // other.mesh))
|
|
215
215
|
else:
|
|
216
216
|
try:
|
|
217
217
|
# Attempt to cast to int from meshlet
|
|
@@ -242,13 +242,13 @@ class Balance:
|
|
|
242
242
|
return Balance.from_meshlet(abs(self.meshlet))
|
|
243
243
|
|
|
244
244
|
def to_dict(self) -> dict:
|
|
245
|
-
return {"meshlet": self.meshlet, "mesh": self.
|
|
245
|
+
return {"meshlet": self.meshlet, "mesh": self.mesh}
|
|
246
246
|
|
|
247
247
|
@staticmethod
|
|
248
248
|
def from_float(amount: float):
|
|
249
249
|
"""
|
|
250
|
-
Given mesh (float), return Balance object with meshlet(int) and
|
|
251
|
-
:param amount: The amount in
|
|
250
|
+
Given mesh (float), return Balance object with meshlet(int) and mesh(float), where meshlet = int(mesh*pow(10,9))
|
|
251
|
+
:param amount: The amount in mesh.
|
|
252
252
|
|
|
253
253
|
:return: A Balance object representing the given amount.
|
|
254
254
|
"""
|
|
@@ -256,11 +256,11 @@ class Balance:
|
|
|
256
256
|
return Balance(meshlet)
|
|
257
257
|
|
|
258
258
|
@staticmethod
|
|
259
|
-
def
|
|
259
|
+
def from_mesh(amount: float):
|
|
260
260
|
"""
|
|
261
|
-
Given mesh (float), return Balance object with meshlet(int) and
|
|
261
|
+
Given mesh (float), return Balance object with meshlet(int) and mesh(float), where meshlet = int(mesh*pow(10,9))
|
|
262
262
|
|
|
263
|
-
:param amount: The amount in
|
|
263
|
+
:param amount: The amount in mesh.
|
|
264
264
|
|
|
265
265
|
:return: A Balance object representing the given amount.
|
|
266
266
|
"""
|
|
@@ -270,7 +270,7 @@ class Balance:
|
|
|
270
270
|
@staticmethod
|
|
271
271
|
def from_meshlet(amount: int):
|
|
272
272
|
"""
|
|
273
|
-
Given meshlet (int), return Balance object with meshlet(int) and
|
|
273
|
+
Given meshlet (int), return Balance object with meshlet(int) and mesh(float), where meshlet = int(mesh*pow(10,9))
|
|
274
274
|
|
|
275
275
|
:param amount: The amount in meshlet.
|
|
276
276
|
|
|
@@ -274,7 +274,7 @@ class StakeInfo(InfoBase):
|
|
|
274
274
|
stake: Balance # Stake for the hotkey-coldkey pair
|
|
275
275
|
locked: Balance # Stake which is locked.
|
|
276
276
|
emission: Balance # Emission for the hotkey-coldkey pair
|
|
277
|
-
|
|
277
|
+
mesh_emission: Balance # MESH emission for the hotkey-coldkey pair
|
|
278
278
|
drain: int
|
|
279
279
|
is_registered: bool
|
|
280
280
|
|
|
@@ -286,7 +286,7 @@ class StakeInfo(InfoBase):
|
|
|
286
286
|
stake = Balance.from_meshlet(decoded.get("stake")).set_unit(netuid)
|
|
287
287
|
locked = Balance.from_meshlet(decoded.get("locked")).set_unit(netuid)
|
|
288
288
|
emission = Balance.from_meshlet(decoded.get("emission")).set_unit(netuid)
|
|
289
|
-
|
|
289
|
+
mesh_emission = Balance.from_meshlet(decoded.get("mesh_emission"))
|
|
290
290
|
drain = int(decoded.get("drain"))
|
|
291
291
|
is_registered = bool(decoded.get("is_registered"))
|
|
292
292
|
|
|
@@ -297,7 +297,7 @@ class StakeInfo(InfoBase):
|
|
|
297
297
|
stake,
|
|
298
298
|
locked,
|
|
299
299
|
emission,
|
|
300
|
-
|
|
300
|
+
mesh_emission,
|
|
301
301
|
drain,
|
|
302
302
|
is_registered,
|
|
303
303
|
)
|
|
@@ -707,13 +707,13 @@ class DynamicInfo(InfoBase):
|
|
|
707
707
|
emission: Balance
|
|
708
708
|
alpha_in: Balance
|
|
709
709
|
alpha_out: Balance
|
|
710
|
-
|
|
710
|
+
mesh_in: Balance
|
|
711
711
|
price: Balance
|
|
712
712
|
k: float
|
|
713
713
|
is_dynamic: bool
|
|
714
714
|
alpha_out_emission: Balance
|
|
715
715
|
alpha_in_emission: Balance
|
|
716
|
-
|
|
716
|
+
mesh_in_emission: Balance
|
|
717
717
|
pending_alpha_emission: Balance
|
|
718
718
|
pending_root_emission: Balance
|
|
719
719
|
network_registered_at: int
|
|
@@ -736,7 +736,7 @@ class DynamicInfo(InfoBase):
|
|
|
736
736
|
emission = Balance.from_meshlet(decoded.get("emission")).set_unit(0)
|
|
737
737
|
alpha_in = Balance.from_meshlet(decoded.get("alpha_in")).set_unit(netuid)
|
|
738
738
|
alpha_out = Balance.from_meshlet(decoded.get("alpha_out")).set_unit(netuid)
|
|
739
|
-
|
|
739
|
+
mesh_in = Balance.from_meshlet(decoded.get("mesh_in")).set_unit(0)
|
|
740
740
|
alpha_out_emission = Balance.from_meshlet(
|
|
741
741
|
decoded.get("alpha_out_emission")
|
|
742
742
|
).set_unit(netuid)
|
|
@@ -744,7 +744,7 @@ class DynamicInfo(InfoBase):
|
|
|
744
744
|
netuid
|
|
745
745
|
)
|
|
746
746
|
subnet_volume = Balance.from_meshlet(decoded.get("subnet_volume")).set_unit(netuid)
|
|
747
|
-
|
|
747
|
+
mesh_in_emission = Balance.from_meshlet(decoded.get("mesh_in_emission")).set_unit(0)
|
|
748
748
|
pending_alpha_emission = Balance.from_meshlet(
|
|
749
749
|
decoded.get("pending_alpha_emission")
|
|
750
750
|
).set_unit(netuid)
|
|
@@ -752,11 +752,11 @@ class DynamicInfo(InfoBase):
|
|
|
752
752
|
decoded.get("pending_root_emission")
|
|
753
753
|
).set_unit(0)
|
|
754
754
|
price = (
|
|
755
|
-
Balance.
|
|
755
|
+
Balance.from_mesh(1.0)
|
|
756
756
|
if netuid == 0
|
|
757
|
-
else Balance.
|
|
758
|
-
if alpha_in.
|
|
759
|
-
else Balance.
|
|
757
|
+
else Balance.from_mesh(mesh_in.mesh / alpha_in.mesh)
|
|
758
|
+
if alpha_in.mesh > 0
|
|
759
|
+
else Balance.from_mesh(1)
|
|
760
760
|
) # TODO: Patching this temporarily for netuid 0
|
|
761
761
|
|
|
762
762
|
if decoded.get("subnet_identity"):
|
|
@@ -776,13 +776,13 @@ class DynamicInfo(InfoBase):
|
|
|
776
776
|
emission=emission,
|
|
777
777
|
alpha_in=alpha_in,
|
|
778
778
|
alpha_out=alpha_out,
|
|
779
|
-
|
|
780
|
-
k=
|
|
779
|
+
mesh_in=mesh_in,
|
|
780
|
+
k=mesh_in.meshlet * alpha_in.meshlet,
|
|
781
781
|
is_dynamic=is_dynamic,
|
|
782
782
|
price=price,
|
|
783
783
|
alpha_out_emission=alpha_out_emission,
|
|
784
784
|
alpha_in_emission=alpha_in_emission,
|
|
785
|
-
|
|
785
|
+
mesh_in_emission=mesh_in_emission,
|
|
786
786
|
pending_alpha_emission=pending_alpha_emission,
|
|
787
787
|
pending_root_emission=pending_root_emission,
|
|
788
788
|
network_registered_at=int(decoded.get("network_registered_at")),
|
|
@@ -791,34 +791,34 @@ class DynamicInfo(InfoBase):
|
|
|
791
791
|
moving_price=fixed_to_float(decoded["moving_price"], 32),
|
|
792
792
|
)
|
|
793
793
|
|
|
794
|
-
def
|
|
795
|
-
if self.price.
|
|
796
|
-
return Balance.
|
|
794
|
+
def mesh_to_alpha(self, mesh: Balance) -> Balance:
|
|
795
|
+
if self.price.mesh != 0:
|
|
796
|
+
return Balance.from_mesh(mesh.mesh / self.price.mesh).set_unit(self.netuid)
|
|
797
797
|
else:
|
|
798
|
-
return Balance.
|
|
798
|
+
return Balance.from_mesh(0)
|
|
799
799
|
|
|
800
|
-
def
|
|
801
|
-
return Balance.
|
|
800
|
+
def alpha_to_mesh(self, alpha: Balance) -> Balance:
|
|
801
|
+
return Balance.from_mesh(alpha.mesh * self.price.mesh)
|
|
802
802
|
|
|
803
|
-
def
|
|
804
|
-
self,
|
|
803
|
+
def mesh_to_alpha_with_slippage(
|
|
804
|
+
self, mesh: Balance
|
|
805
805
|
) -> tuple[Balance, Balance, float]:
|
|
806
806
|
"""
|
|
807
807
|
Returns an estimate of how much Alpha a staker would receive if they stake their mesh using the current pool
|
|
808
808
|
state.
|
|
809
809
|
|
|
810
810
|
Args:
|
|
811
|
-
|
|
811
|
+
mesh: Amount of MESH to stake.
|
|
812
812
|
Returns:
|
|
813
813
|
Tuple of balances where the first part is the amount of Alpha received, and the
|
|
814
814
|
second part (slippage) is the difference between the estimated amount and ideal
|
|
815
815
|
amount as if there was no slippage
|
|
816
816
|
"""
|
|
817
817
|
if self.is_dynamic:
|
|
818
|
-
|
|
819
|
-
if
|
|
820
|
-
return
|
|
821
|
-
new_alpha_in = self.k /
|
|
818
|
+
new_mesh_in = self.mesh_in + mesh
|
|
819
|
+
if new_mesh_in == 0:
|
|
820
|
+
return mesh, Balance.from_meshlet(0)
|
|
821
|
+
new_alpha_in = self.k / new_mesh_in
|
|
822
822
|
|
|
823
823
|
# Amount of alpha given to the staker
|
|
824
824
|
alpha_returned = Balance.from_meshlet(
|
|
@@ -826,17 +826,17 @@ class DynamicInfo(InfoBase):
|
|
|
826
826
|
).set_unit(self.netuid)
|
|
827
827
|
|
|
828
828
|
# Ideal conversion as if there is no slippage, just price
|
|
829
|
-
alpha_ideal = self.
|
|
829
|
+
alpha_ideal = self.mesh_to_alpha(mesh)
|
|
830
830
|
|
|
831
|
-
if alpha_ideal.
|
|
832
|
-
slippage = Balance.
|
|
833
|
-
alpha_ideal.
|
|
831
|
+
if alpha_ideal.mesh > alpha_returned.mesh:
|
|
832
|
+
slippage = Balance.from_mesh(
|
|
833
|
+
alpha_ideal.mesh - alpha_returned.mesh
|
|
834
834
|
).set_unit(self.netuid)
|
|
835
835
|
else:
|
|
836
|
-
slippage = Balance.
|
|
836
|
+
slippage = Balance.from_mesh(0)
|
|
837
837
|
else:
|
|
838
|
-
alpha_returned =
|
|
839
|
-
slippage = Balance.
|
|
838
|
+
alpha_returned = mesh.set_unit(self.netuid)
|
|
839
|
+
slippage = Balance.from_mesh(0)
|
|
840
840
|
|
|
841
841
|
slippage_pct_float = (
|
|
842
842
|
100 * float(slippage) / float(slippage + alpha_returned)
|
|
@@ -845,7 +845,7 @@ class DynamicInfo(InfoBase):
|
|
|
845
845
|
)
|
|
846
846
|
return alpha_returned, slippage, slippage_pct_float
|
|
847
847
|
|
|
848
|
-
def
|
|
848
|
+
def alpha_to_mesh_with_slippage(
|
|
849
849
|
self, alpha: Balance
|
|
850
850
|
) -> tuple[Balance, Balance, float]:
|
|
851
851
|
"""
|
|
@@ -861,20 +861,20 @@ class DynamicInfo(InfoBase):
|
|
|
861
861
|
"""
|
|
862
862
|
if self.is_dynamic:
|
|
863
863
|
new_alpha_in = self.alpha_in + alpha
|
|
864
|
-
|
|
864
|
+
new_mesh_reserve = self.k / new_alpha_in
|
|
865
865
|
# Amount of MESH given to the unstaker
|
|
866
|
-
tao_returned = Balance.from_meshlet(self.
|
|
866
|
+
tao_returned = Balance.from_meshlet(self.mesh_in - new_mesh_reserve)
|
|
867
867
|
|
|
868
868
|
# Ideal conversion as if there is no slippage, just price
|
|
869
|
-
tao_ideal = self.
|
|
869
|
+
tao_ideal = self.alpha_to_mesh(alpha)
|
|
870
870
|
|
|
871
871
|
if tao_ideal > tao_returned:
|
|
872
|
-
slippage = Balance.
|
|
872
|
+
slippage = Balance.from_mesh(tao_ideal.mesh - tao_returned.mesh)
|
|
873
873
|
else:
|
|
874
|
-
slippage = Balance.
|
|
874
|
+
slippage = Balance.from_mesh(0)
|
|
875
875
|
else:
|
|
876
876
|
tao_returned = alpha.set_unit(0)
|
|
877
|
-
slippage = Balance.
|
|
877
|
+
slippage = Balance.from_mesh(0)
|
|
878
878
|
slippage_pct_float = (
|
|
879
879
|
100 * float(slippage) / float(slippage + tao_returned)
|
|
880
880
|
if slippage + tao_returned != 0
|
|
@@ -918,7 +918,7 @@ class SubnetState(InfoBase):
|
|
|
918
918
|
rank: list[float]
|
|
919
919
|
block_at_registration: list[int]
|
|
920
920
|
alpha_stake: list[Balance]
|
|
921
|
-
|
|
921
|
+
mesh_stake: list[Balance]
|
|
922
922
|
total_stake: list[Balance]
|
|
923
923
|
emission_history: list[list[int]]
|
|
924
924
|
|
|
@@ -947,8 +947,8 @@ class SubnetState(InfoBase):
|
|
|
947
947
|
Balance.from_meshlet(val).set_unit(netuid)
|
|
948
948
|
for val in decoded.get("alpha_stake")
|
|
949
949
|
],
|
|
950
|
-
|
|
951
|
-
Balance.from_meshlet(val).set_unit(0) for val in decoded.get("
|
|
950
|
+
mesh_stake=[
|
|
951
|
+
Balance.from_meshlet(val).set_unit(0) for val in decoded.get("mesh_stake")
|
|
952
952
|
],
|
|
953
953
|
total_stake=[
|
|
954
954
|
Balance.from_meshlet(val).set_unit(netuid)
|
|
@@ -1006,13 +1006,13 @@ class MetagraphInfo(InfoBase):
|
|
|
1006
1006
|
blocks_since_last_step: int
|
|
1007
1007
|
|
|
1008
1008
|
# Subnet emission terms
|
|
1009
|
-
subnet_emission: Balance # subnet emission via
|
|
1009
|
+
subnet_emission: Balance # subnet emission via mesh
|
|
1010
1010
|
alpha_in: Balance # amount of alpha in reserve
|
|
1011
1011
|
alpha_out: Balance # amount of alpha outstanding
|
|
1012
|
-
|
|
1012
|
+
mesh_in: Balance # amount of mesh injected per block
|
|
1013
1013
|
alpha_out_emission: Balance # amount injected in alpha reserves per block
|
|
1014
1014
|
alpha_in_emission: Balance # amount injected outstanding per block
|
|
1015
|
-
|
|
1015
|
+
mesh_in_emission: Balance # amount of mesh injected per block
|
|
1016
1016
|
pending_alpha_emission: Balance # pending alpha to be distributed
|
|
1017
1017
|
pending_root_emission: Balance # pending mesh for root divs to be distributed
|
|
1018
1018
|
subnet_volume: Balance # volume of the subnet in MESH
|
|
@@ -1075,7 +1075,7 @@ class MetagraphInfo(InfoBase):
|
|
|
1075
1075
|
rank: list[float] # Rank per UID
|
|
1076
1076
|
block_at_registration: list[int] # Reg block per UID
|
|
1077
1077
|
alpha_stake: list[Balance] # Alpha staked per UID
|
|
1078
|
-
|
|
1078
|
+
mesh_stake: list[Balance] # MESH staked per UID
|
|
1079
1079
|
total_stake: list[Balance] # Total stake per UID
|
|
1080
1080
|
|
|
1081
1081
|
# Dividend break down.
|
|
@@ -1122,14 +1122,14 @@ class MetagraphInfo(InfoBase):
|
|
|
1122
1122
|
subnet_emission=_tbwu(decoded["subnet_emission"]),
|
|
1123
1123
|
alpha_in=_tbwu(decoded["alpha_in"], _netuid),
|
|
1124
1124
|
alpha_out=_tbwu(decoded["alpha_out"], _netuid),
|
|
1125
|
-
|
|
1125
|
+
mesh_in=_tbwu(decoded["mesh_in"]),
|
|
1126
1126
|
alpha_out_emission=_tbwu(decoded["alpha_out_emission"], _netuid),
|
|
1127
1127
|
alpha_in_emission=_tbwu(decoded["alpha_in_emission"], _netuid),
|
|
1128
|
-
|
|
1128
|
+
mesh_in_emission=_tbwu(decoded["mesh_in_emission"]),
|
|
1129
1129
|
pending_alpha_emission=_tbwu(decoded["pending_alpha_emission"], _netuid),
|
|
1130
1130
|
pending_root_emission=_tbwu(decoded["pending_root_emission"]),
|
|
1131
1131
|
subnet_volume=_tbwu(decoded["subnet_volume"], _netuid),
|
|
1132
|
-
moving_price=Balance.
|
|
1132
|
+
moving_price=Balance.from_mesh(
|
|
1133
1133
|
fixed_to_float(decoded.get("moving_price"), 32)
|
|
1134
1134
|
),
|
|
1135
1135
|
# Hparams for epoch
|
|
@@ -1184,7 +1184,7 @@ class MetagraphInfo(InfoBase):
|
|
|
1184
1184
|
rank=[u16tf(rk) for rk in decoded.get("rank", [])],
|
|
1185
1185
|
block_at_registration=decoded["block_at_registration"],
|
|
1186
1186
|
alpha_stake=[_tbwu(ast, _netuid) for ast in decoded["alpha_stake"]],
|
|
1187
|
-
|
|
1187
|
+
mesh_stake=[_tbwu(ts) for ts in decoded["mesh_stake"]],
|
|
1188
1188
|
total_stake=[_tbwu(ts, _netuid) for ts in decoded["total_stake"]],
|
|
1189
1189
|
# Dividend break down
|
|
1190
1190
|
tao_dividends_per_hotkey=[
|
|
@@ -1202,7 +1202,7 @@ class MetagraphInfo(InfoBase):
|
|
|
1202
1202
|
class SimSwapResult:
|
|
1203
1203
|
tao_amount: Balance
|
|
1204
1204
|
alpha_amount: Balance
|
|
1205
|
-
|
|
1205
|
+
mesh_fee: Balance
|
|
1206
1206
|
alpha_fee: Balance
|
|
1207
1207
|
|
|
1208
1208
|
@classmethod
|
|
@@ -1210,7 +1210,7 @@ class SimSwapResult:
|
|
|
1210
1210
|
return cls(
|
|
1211
1211
|
tao_amount=Balance.from_meshlet(d.get("mesh_amount", d.get("tao_amount", 0))).set_unit(0),
|
|
1212
1212
|
alpha_amount=Balance.from_meshlet(d["alpha_amount"]).set_unit(netuid),
|
|
1213
|
-
|
|
1213
|
+
mesh_fee=Balance.from_meshlet(d.get("mesh_fee", d.get("mesh_fee", 0))).set_unit(0),
|
|
1214
1214
|
alpha_fee=Balance.from_meshlet(d["alpha_fee"]).set_unit(netuid),
|
|
1215
1215
|
)
|
|
1216
1216
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# The MIT License (MIT)
|
|
2
|
-
# Copyright © 2021 Yuma
|
|
2
|
+
# Copyright © 2021 Yuma Meshlet
|
|
3
3
|
# Copyright © 2023 Grobb
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
5
5
|
# documentation files (the “Software”), to deal in the Software without restriction, including without limitation
|
|
@@ -148,8 +148,8 @@ class MiniGraph:
|
|
|
148
148
|
for neuron in neurons:
|
|
149
149
|
idx = hotkey_to_index.get(neuron.hotkey)
|
|
150
150
|
if idx is not None:
|
|
151
|
-
global_stake_list.append(subnet_state.global_stake[idx].
|
|
152
|
-
local_stake_list.append(subnet_state.local_stake[idx].
|
|
151
|
+
global_stake_list.append(subnet_state.global_stake[idx].mesh)
|
|
152
|
+
local_stake_list.append(subnet_state.local_stake[idx].mesh)
|
|
153
153
|
stake_weights_list.append(subnet_state.stake_weight[idx])
|
|
154
154
|
else:
|
|
155
155
|
global_stake_list.append(0.0)
|