diff --git a/documentation/dev-portal/src/SUMMARY.md b/documentation/dev-portal/src/SUMMARY.md index 8a0db815c4..dff2f67b6e 100644 --- a/documentation/dev-portal/src/SUMMARY.md +++ b/documentation/dev-portal/src/SUMMARY.md @@ -1,3 +1,4 @@ +# # Summary - [Introduction](introduction.md) diff --git a/documentation/docs/src/SUMMARY.md b/documentation/docs/src/SUMMARY.md index a4875d9217..9ae4e3aa87 100644 --- a/documentation/docs/src/SUMMARY.md +++ b/documentation/docs/src/SUMMARY.md @@ -1,3 +1,4 @@ +# # Summary [Introduction](introduction.md) @@ -14,7 +15,7 @@ # Nodes -- [Node Types (Previously Setup Guides)](nodes/overview.md) +- [Node Types (Previously Setup Guides)](nodes/overview.md) - [Mix Node](nodes/mixnode.md) - [Gateway](nodes/gateway.md) - [Network Requester](nodes/network-requester.md) @@ -56,7 +57,7 @@ - [Mixnet Explorer](explorers/mixnet-explorer.md) # Nyx Blockchain -- [Interacting with Nyx Chain and Smart Contracts](nyx/interacting-with-chain.md) +- [Interacting with Nyx Chain and Smart Contracts](nyx/interacting-with-chain.md) - [Smart Contracts](nyx/smart-contracts.md) - [Mixnet Contract](nyx/mixnet-contract.md) - [Vesting Contract](nyx/vesting-contract.md) diff --git a/documentation/operators/src/SUMMARY.md b/documentation/operators/src/SUMMARY.md index 669fd2a42d..c7167fe898 100644 --- a/documentation/operators/src/SUMMARY.md +++ b/documentation/operators/src/SUMMARY.md @@ -1,3 +1,4 @@ +# # Summary - [Introduction](introduction.md) @@ -28,6 +29,11 @@ - [ExploreNYM scripts](testing/explorenym-scripts.md) - [Troubleshooting](nodes/troubleshooting.md) + # Token Economics diff --git a/documentation/scripts/cmdrun/README.md b/documentation/scripts/cmdrun/README.md new file mode 100644 index 0000000000..faa809357b --- /dev/null +++ b/documentation/scripts/cmdrun/README.md @@ -0,0 +1,3 @@ +# cmdrun scripts + +A place for all scripts used for `mdbook-cmdrun` to auto-fill the pages with up todate info, syntax and command outputs. diff --git a/documentation/scripts/cmdrun/api_targets.py b/documentation/scripts/cmdrun/api_targets.py new file mode 100644 index 0000000000..6bd1fca0dd --- /dev/null +++ b/documentation/scripts/cmdrun/api_targets.py @@ -0,0 +1,182 @@ +import argparse +import os +import requests +import json +import sys +import pandas as pd +from collections import namedtuple + +############################################ +############## GENERAL FNs ################# +############################################ + +def get_url(args): + config_file = "./api_targets_config.json" + with open(config_file, "r") as f: + config = json.load(f) + env = args.api + endpoint = args.endpoint + if env == "github": + url = f"{config[env]}/{endpoint}" + else: + url = f"{config[env]}/api/v1/{endpoint}" + return url + +def subparser_read(args): + url = get_url(args) + r = requests.get(url) + response = r.json() + return response + +############################################ +########### NYX RELATED FNs ################ +############################################ + +def convert_u_nym(unym): + unym = int(unym) + nym = unym / 1000000 + nym = int(nym) + return nym + +def thousand_separator(n): + n = f'{n:_}' + return n + +def remove_underscore(arg): + string = arg.replace("_", " ") + string = string.title() + return string + +def display_supply_table(response, args): + df = pd.DataFrame(response) + df = df.T + del df['denom'] +# df.set_axis(['**Item**', '**Amount in NYM**'], axis=1, inplace=True) + df = df.rename_axis('index1').reset_index() + df = df.rename(columns={'index1': '**Item**', 'amount': '**Amount in NYM**'}) + df['**Item**'] = df['**Item**'].apply(remove_underscore) + df['**Amount in NYM**'] = df['**Amount in NYM**'].apply(convert_u_nym) + df['**Amount in NYM**'] = df['**Amount in NYM**'].apply(thousand_separator) + table = df.to_markdown(index=False) + print(table) + +def read_supply(args): + response = subparser_read(args) + if args.endpoint == "circulating-supply": + if args.format: + display_supply_table(response, args) + else: + print(response) + elif args.endpoint == "foo": + # placeholder for other endpoint args + pass + else: + # placeholder for other endpoint args + pass + +########################################### +############ GH RELATED FNs ############### +########################################### + +def get_nym_vpn_version(args): + response = subparser_read(args) + if args.client == "desktop": + version = current_desktop_version(args, response) + elif args.client == "cli": + version = current_cli_version(args, response) + else: + print("Incorrect argument for -c, --client") + sys.exit(-1) + +def current_cli_version(args, response): + df = pd.DataFrame(response) + print(df) + + # NEEDS THIS IN PYTHON: + # current_cli_version=$(curl -s $release_url | jq -r '.[].tag_name' | grep '^nym-vpn-cli-v' | sort -Vr | head -n 1 | awk -F'-v' '{print $NF}') + + +def current_desktop_version(args, response): + # NEEDS THIS IN PYTHON: + df = pd.DataFrame(response) + print(df) + # version=$(curl -s $release_url | jq -r '.[].tag_name' | grep '^nym-vpn-desktop-v' | sort -Vr | head -n 1 | awk -F'-v' '{print $NF}') + + +########################################### +############### MAIN PARSER ############### +########################################### + +def parser_main(): + parser = argparse.ArgumentParser( + prog="Nym API scraper", + description='''Get any live data from Nyx validator''', + epilog='' + ) + subparsers = parser.add_subparsers(help="") + parser_supply = subparsers.add_parser('supply', + help='reads API on supply', + aliases=['s','S'] + ) + + parser_supply.add_argument( + "-a","--api", + type=str, + default="mainnet", + help="choose: mainnet, perf, sandbox" + ) + parser_supply.add_argument( + "-e","--endpoint", + type=str, + help="choose from: https://validator.nymtech.net/api/swagger/index.html" + ) + parser_supply.add_argument( + "-f","--format", + action="store_true", + help="format the output for documentation purpose (.md) - default: False (raw output)", + ) + + parser_supply.set_defaults(func=read_supply) + + + parser_nym_vpn = subparsers.add_parser('nym_vpn', + help='reads NymVPN latest version', + aliases=['n','N'] + ) + + parser_nym_vpn.add_argument( + "-c","--client", + type=str, + default="desktop", + help="choose: desktop, cli - default: desktop" + ) + + parser_nym_vpn.add_argument( + "-a","--api", + type=str, + default="github", + help="choose: mainnet, perf, sandbox" + ) + + parser_nym_vpn.add_argument( + "-e","--endpoint", + type=str, + help="add the url suffix", + default="repos/nymtech/nym-vpn-client/releases" + ) + + + parser_nym_vpn.set_defaults(func=get_nym_vpn_version) + + args = parser.parse_args() + try: + args.func(args) + except AttributeError as e: + print("Error on argparser") + sys.exit(-1) + + + + +if __name__ == "__main__": + parser_main() diff --git a/documentation/scripts/cmdrun/api_targets_config.json b/documentation/scripts/cmdrun/api_targets_config.json new file mode 100644 index 0000000000..fd5d8b6939 --- /dev/null +++ b/documentation/scripts/cmdrun/api_targets_config.json @@ -0,0 +1,6 @@ +{ + "sandbox": "https://sandbox-nym-api1.nymtech.net", + "perf": "https://api.performance.nymte.ch", + "mainnet": "https://validator.nymtech.net", + "github": "https://api.github.com" +}