From 5e704baf9312a714b12383a9515814a2c063b810 Mon Sep 17 00:00:00 2001 From: Patrick Mogul Date: Sun, 5 Nov 2023 20:47:26 -0600 Subject: [PATCH 1/5] test claim --- src/config.py | 2 +- src/toolbox.py | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/config.py b/src/config.py index 5673d5c..ad0147f 100644 --- a/src/config.py +++ b/src/config.py @@ -49,7 +49,7 @@ def __init__(self): # Load environment variables from .env file load_dotenv() - self.toolbox_version = "1.5.2" + self.toolbox_version = "1.5.3" self.server_host_name = socket.gethostname() self.user_home_dir = os.path.expanduser("~") self.dotenv_file = f"{self.user_home_dir}/.findora.env" diff --git a/src/toolbox.py b/src/toolbox.py index 995898a..2ae22c7 100644 --- a/src/toolbox.py +++ b/src/toolbox.py @@ -504,7 +504,7 @@ def set_main_or_test() -> None: def menu_findora() -> None: print(Fore.MAGENTA) - update = menu_topper() + update, public_address = menu_topper() print("* Findora Validator Toolbox - Menu Options:") print("*") print("* 1 - Show 'curl' stats info - Run this to show your local curl stats!") @@ -537,7 +537,7 @@ def menu_findora() -> None: ) print("* 0 - Exit Application - Goodbye!") print_stars() - return + return public_address def get_curl_stats() -> None: @@ -581,7 +581,7 @@ def claim_findora_rewards() -> None: print_stars() try: subprocess.call( - ["fn", "claim"], + ["fn", "claim", f"--validator-td-addr {}"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) @@ -1101,14 +1101,14 @@ def fetch_fn_show_output(): def get_fn_stats(output): - address = extract_value(output, "Validator Node Addr") + public_address = extract_value(output, "Validator Node Addr") # Convert the validator_address to lowercase and ensure it starts with '0x' - validator_address = address.lower() - if not validator_address.startswith("0x"): - validator_address = "0x" + validator_address + validator_address_evm, public = public_address.lower() + if not validator_address_evm, public.startswith("0x"): + validator_address_evm, public = "0x" + validator_address_evm, public # Get validator data - graphql_stats = fetch_single_validator(validator_address) + graphql_stats = fetch_single_validator(validator_address_evm, public) blocks_data = graphql_stats.get("data", {}).get("blocks", []) if not blocks_data: @@ -1169,7 +1169,7 @@ def get_fn_stats(output): your_delegation_rewards = delegation_info.get("reward", 0) fn_info["Pending Rewards"] = f"{findora_gwei_convert(your_delegation_rewards):,.2f}" - return fn_info, validator_address + return fn_info, validator_address_evm, public_address def menu_topper() -> None: @@ -1180,7 +1180,7 @@ def menu_topper() -> None: fra = findora_gwei_convert(curl_stats["result"]["validator_info"]["voting_power"]) our_version = get_container_version() output = fetch_fn_show_output() - our_fn_stats, validator_address = get_fn_stats(output) + our_fn_stats, validator_address, public_address = get_fn_stats(output) external_ip = config.our_external_ip online_version = get_container_version( f'https://{config.fra_env}-{environ.get("FRA_NETWORK")}.{config.fra_env}.findora.org:8668/version' @@ -1249,7 +1249,7 @@ def menu_topper() -> None: f"* CPU Load Averages: {round(Load1, 2)} over 1 min, {round(Load5, 2)} over 5 min, {round(Load15, 2)} over 15 min" ) print_stars() - return update + return update, public_address def rescue_menu() -> None: @@ -1585,7 +1585,7 @@ def run_findora_menu() -> None: 0: finish_node, 1: get_curl_stats, 2: refresh_fn_stats, - 3: claim_findora_rewards, + 3: lambda: claim_findora_rewards(public_address), 4: pre_send_findora, 5: set_send_options, 6: change_validator_info, @@ -1605,7 +1605,7 @@ def run_findora_menu() -> None: # Keep this loop going so when an item ends the menu reloads while True: load_var_file(config.dotenv_file) - menu_findora() + public_address = menu_findora() # Pick an option, any option value = input("* Enter your option: ") # Try/Catch - If it's not a number, goodbye, try again From e5c97c12468467775fc7739606f6dd78161e7b1b Mon Sep 17 00:00:00 2001 From: Patrick Mogul Date: Sun, 5 Nov 2023 20:49:39 -0600 Subject: [PATCH 2/5] addy --- src/toolbox.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/toolbox.py b/src/toolbox.py index 2ae22c7..f00cbe7 100644 --- a/src/toolbox.py +++ b/src/toolbox.py @@ -577,11 +577,11 @@ def refresh_fn_stats() -> None: ) -def claim_findora_rewards() -> None: +def claim_findora_rewards(public_address) -> None: print_stars() try: subprocess.call( - ["fn", "claim", f"--validator-td-addr {}"], + ["fn", "claim", f"--validator-td-addr {public_address}"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) @@ -1679,7 +1679,9 @@ def parse_flags(parser, region, network): args = parser.parse_args() if args.claim: - claim_findora_rewards() + output = fetch_fn_show_output() + our_fn_stats, validator_address, public_address = get_fn_stats(output) + claim_findora_rewards(public_address) finish_node() if args.installer: From 24dbc11c0c18784ece218be85dbe22e9bb960ff2 Mon Sep 17 00:00:00 2001 From: Patrick Mogul Date: Sun, 5 Nov 2023 20:51:39 -0600 Subject: [PATCH 3/5] gat --- src/toolbox.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/toolbox.py b/src/toolbox.py index f00cbe7..f952b09 100644 --- a/src/toolbox.py +++ b/src/toolbox.py @@ -1103,12 +1103,12 @@ def fetch_fn_show_output(): def get_fn_stats(output): public_address = extract_value(output, "Validator Node Addr") # Convert the validator_address to lowercase and ensure it starts with '0x' - validator_address_evm, public = public_address.lower() - if not validator_address_evm, public.startswith("0x"): - validator_address_evm, public = "0x" + validator_address_evm, public + validator_address_evm = public_address.lower() + if not validator_address_evm.startswith("0x"): + validator_address_evm = "0x" + validator_address_evm # Get validator data - graphql_stats = fetch_single_validator(validator_address_evm, public) + graphql_stats = fetch_single_validator(validator_address_evm) blocks_data = graphql_stats.get("data", {}).get("blocks", []) if not blocks_data: From 2f3058b0ef9a346dba3f5f39d240662bd18dd634 Mon Sep 17 00:00:00 2001 From: Patrick Mogul Date: Sun, 5 Nov 2023 20:53:24 -0600 Subject: [PATCH 4/5] test claim --- src/toolbox.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/toolbox.py b/src/toolbox.py index f952b09..bbe403c 100644 --- a/src/toolbox.py +++ b/src/toolbox.py @@ -581,7 +581,7 @@ def claim_findora_rewards(public_address) -> None: print_stars() try: subprocess.call( - ["fn", "claim", f"--validator-td-addr {public_address}"], + ["fn", "claim", "--validator-td-addr", public_address], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) From bdb121686d716bf08d8c46e7444efc141049705d Mon Sep 17 00:00:00 2001 From: Patrick Mogul Date: Sun, 5 Nov 2023 20:56:02 -0600 Subject: [PATCH 5/5] cleaner text. --- src/toolbox.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/toolbox.py b/src/toolbox.py index bbe403c..ac032ae 100644 --- a/src/toolbox.py +++ b/src/toolbox.py @@ -577,20 +577,24 @@ def refresh_fn_stats() -> None: ) +import subprocess + def claim_findora_rewards(public_address) -> None: print_stars() try: - subprocess.call( + print("* Claiming all pending FRA rewards now.") + result = subprocess.call( ["fn", "claim", "--validator-td-addr", public_address], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) - print("* Claim all pending completed, refresh your stats after the next block.") - except subprocess.CalledProcessError as err: - print( - "* Error, no response from local API, try your command again or " - + f"check your fn stats to see if there's an issue.\n* Error: {err}" - ) + if result == 0: + print("* Claim all pending completed, refresh your stats after the next block.") + else: + print("* Error: An issue occurred while claiming rewards. Please check your command and try again.") + except Exception as err: + print("* Error: An unexpected error occurred. Please check your setup and try again.") + print(f"* Error: {err}") def get_total_send(our_fn_stats) -> None: