From 03bb22b35f94bb39c1dbbe732af809393d560194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Andr=C3=B3il?= Date: Sat, 8 Feb 2025 20:30:41 +0100 Subject: [PATCH 1/2] fix spelling aerial_stake_optimizer.py --- examples/aerial_stake_optimizer.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/aerial_stake_optimizer.py b/examples/aerial_stake_optimizer.py index 2bd0cd7b..45d642eb 100644 --- a/examples/aerial_stake_optimizer.py +++ b/examples/aerial_stake_optimizer.py @@ -78,7 +78,7 @@ def main(): total_stake = sum(validators_stake) # Get validators commissions - validators_comission = [ + validators_commission = [ int(validator.commission.commission_rates.rate) for validator in resp.validators if validator.status == 3 @@ -90,10 +90,10 @@ def main(): # Choose a threshold for a validators minimum percentage of total stake delegated stake_threshold = 0.10 - for _i in range(len(validators_comission)): + for _i in range(len(validators_commission)): # Choose validator with lower commission - validator_index = validators_comission.index(min(validators_comission)) + validator_index = validators_commission.index(min(validators_commission)) # Verify that it meets the minimum % threshold validator_stake_pct = validators_stake[validator_index] / total_stake @@ -104,11 +104,11 @@ def main(): break # We omit this validator by setting his commssion to infinity - validators_comission[validator_index] = float("inf") + validators_commission[validator_index] = float("inf") if validator == "not_selected": - # Restart validators_comission list with original values - validators_comission = [ + # Restart validators_commission list with original values + validators_commission = [ int(validator.commission.commission_rates.rate) for validator in resp.validators if validator.status == 3 @@ -117,7 +117,7 @@ def main(): print("No validator meets the minimum stake threshold requirement") # Proceed to select the validator with the lowest commission - validator_index = validators_comission.index(min(validators_comission)) + validator_index = validators_commission.index(min(validators_commission)) validator = validators[validator_index] # Query validator commission From 2475c8bed4a712fdf75879ebabb967a37333b20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Andr=C3=B3il?= Date: Sat, 8 Feb 2025 20:31:46 +0100 Subject: [PATCH 2/2] fix spelling stake-optimizer.md --- docs/stake-optimizer.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/stake-optimizer.md b/docs/stake-optimizer.md index e8302cd3..e3bed12d 100644 --- a/docs/stake-optimizer.md +++ b/docs/stake-optimizer.md @@ -40,12 +40,12 @@ validators_stake = [int(validator.tokens) for validator in resp.validators if va total_stake = sum(validators_stake) # For every bonded validator, we print commission and percentage of total stake -print("MONIKER COMISSION % of TOTAL STAKE") +print("MONIKER COMMISSION % of TOTAL STAKE") for validator in resp.validators: if validator.status == 3: moniker = validator.description.moniker - comission = int(validator.commission.commission_rates.rate)/1e18*100 - print(moniker[:10]," ", comission,"% ", round(int(validator.tokens)/total_stake*100,3),"%") + commission = int(validator.commission.commission_rates.rate)/1e18*100 + print(moniker[:10]," ", commission,"% ", round(int(validator.tokens)/total_stake*100,3),"%") ``` After running the code above, you will observe each validator commission rate and its percentage delegated of the total stake. The most important parameter to observe in each validator is the commission it will take from the rewards. We will always select a validator with the lower commission as long as it has a reasonable stake compared with the total stake. In this case, at the moment the code was run, all validators had the same commission, therefore, we simply selected the validator with the highest stake, which was validator0. Feel free to select the most convenient validator when you run the code above. We will save the variables `commission` and the fraction of our `initial_stake` to the total stake to use them later on. @@ -60,7 +60,7 @@ selected_validator = "validator0" validator = [v for v in validators if v.moniker == selected_validator][0] query_validator = [v for v in resp.validators if v.description.moniker == selected_validator][0] -# Set the comission % +# Set the commission % commission = int(query_validator.commission.commission_rates.rate)/1e18 # Set percentage delegated of total stake @@ -262,4 +262,4 @@ plt.yscale('log') ``` -You can view an abbreviated version of the code at [`stake optimizer`](https://github.com/fetchai/cosmpy/blob/main/examples/aerial_stake_optimizer.py) \ No newline at end of file +You can view an abbreviated version of the code at [`stake optimizer`](https://github.com/fetchai/cosmpy/blob/main/examples/aerial_stake_optimizer.py)