From 82d83cce273300e1012ff49bd4b086c6e0c44acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20V=C3=A1zquez?= Date: Tue, 11 Jan 2022 14:12:37 +0100 Subject: [PATCH] First implementation of xch rpc wallet dealer that includes the main functionalities --- CHANGELOG.md | 2 + Pipfile | 12 ++++ Pipfile.lock | 99 ++++++++++++++++++++++++++++++ README.md | 90 ++++++++++++++++++++++++++++ VERSION | 1 + chia-wallet-dealer.png | Bin 0 -> 156973 bytes config_example.yaml | 16 +++++ lib/dealermath/__init.py__ | 0 lib/dealermath/dealermath.py | 25 ++++++++ lib/rpc/__init.py__ | 0 lib/rpc/xchrpc.py | 92 ++++++++++++++++++++++++++++ xchdealer.py | 113 +++++++++++++++++++++++++++++++++++ 12 files changed, 450 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 Pipfile create mode 100644 Pipfile.lock create mode 100644 README.md create mode 100644 VERSION create mode 100644 chia-wallet-dealer.png create mode 100644 config_example.yaml create mode 100644 lib/dealermath/__init.py__ create mode 100644 lib/dealermath/dealermath.py create mode 100644 lib/rpc/__init.py__ create mode 100644 lib/rpc/xchrpc.py create mode 100755 xchdealer.py diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1811f64 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# 0.1.0 +* First implementation of xch rpc wallet dealer diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..bf4d75d --- /dev/null +++ b/Pipfile @@ -0,0 +1,12 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[packages] +requests = "*" +pyyaml = "*" + +[requires] +python_version = "3" + diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..e919342 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,99 @@ +{ + "_meta": { + "hash": { + "sha256": "5692032b7e232544624cc9a24e8f5d7e34e4c7b90021019c3c60808bcc4cd654" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "certifi": { + "hashes": [ + "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", + "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" + ], + "version": "==2021.10.8" + }, + "charset-normalizer": { + "hashes": [ + "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd", + "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455" + ], + "markers": "python_version >= '3'", + "version": "==2.0.10" + }, + "idna": { + "hashes": [ + "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", + "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + ], + "markers": "python_version >= '3'", + "version": "==3.3" + }, + "pyyaml": { + "hashes": [ + "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", + "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", + "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", + "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", + "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", + "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", + "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", + "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", + "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", + "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", + "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", + "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", + "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", + "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", + "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", + "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", + "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", + "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", + "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", + "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", + "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", + "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", + "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", + "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", + "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", + "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", + "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + ], + "index": "pypi", + "version": "==6.0" + }, + "requests": { + "hashes": [ + "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61", + "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d" + ], + "index": "pypi", + "version": "==2.27.1" + }, + "urllib3": { + "hashes": [ + "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed", + "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", + "version": "==1.26.8" + } + }, + "develop": {} +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..75975ea --- /dev/null +++ b/README.md @@ -0,0 +1,90 @@ +# Chia XCH Wallet Dealer + +![hello](chia-wallet-dealer.png) + +## Description +Welcome to Chia RPC XCH Wallet Dealer. The purpose of this project is fractionate and send XCH of an existing and synced chia wallet (using the Chia RPC Protocol) to multiple wallets destinations, using partitions rules on a config file. +Developed and tested only with the official [chia-blockchain](https://github.com/Chia-Network/chia-blockchain) project. + +If you found the project useful, please consider a donation to my chia wallet :) + +`xch1vt3g694eclvcjmrj8mq83vtgrva9sw0qdz34muxrqjh5y5fzq6vq89n605` + +## Requirements +Attending the official [chia RPC doc](https://docs.chia.net/docs/12rpcs/rpcs/) you need a wallet listening via RPC Protocol, built with a default installation. + +You may also need Python interpreter (3.x) installed on your system and it is recommended to use pipenv for installing all libraries dependencys. You can install it with + +```bash +pip3 install pipenv +``` + +## Usage +### The environment +* Install the environment with + +```bash +pipenv install +``` + +* Enter in the environment with + +```bash +pipenv shell +``` + +You can also execute xchdealer without entering in the environment, using `pipenv run python xchdealer.py [params]`, example: + +``` +pipenv run python xchdealer.py --help + +usage: xchdealer.py [-h] -f CONFIG_FILE [-m {simulate,execute}] +... + +``` +### Edit the config +* Edit config_example.yaml to your needs and rename it if you want + +## Config file +Example of config file: +```yaml +--- +rpc_connector: + host: "localhost" #Host of the wallet + port: 9256 #Port of the rpc wallet + private_wallet_cert_path: "~/.chia/mainnet/config/ssl/wallet/private_wallet.crt" #Private certificate to connect with RPC + private_wallet_key_path: "~/.chia/mainnet/config/ssl/wallet/private_wallet.key" #Key of the certificate to connect with RP +dealer: + source_wallet: + id: 1 #ID of source wallet, can be identified launching in simulate mode + distribute_percentage_of_total: 100.0 #Percentage of all amount will be distributed, the rest keep on the wallet + fee: 0 #Transaction fee, default 0 + destination_wallets: + - name: "iv-vz" #For each destination specify a name + address: "xch1vt3g694eclvcjmrj8mq83vtgrva9sw0qdz34muxrqjh5y5fzq6vq89n605" #Address of the destination wallet + distribution_percentage: 90.0 #Percentage of total amount assigned to this wallet + - name: "alber" + address: "xch1vt3g694eclvcjmrj8mq83vtgrva9sw0qdz34muxrqjh5y5fzq6vq89n605" + distribution_percentage: 10.0 + +#The sum of all distribution_percentage of destination_wallets must be equal to 100.0 +``` + +## Arguments + +### Simulate mode + +* You can execute xchdealer in simulate mode to show only the dealing results, check the config or identify the id of source wallet. Run: + +```bash +python xchdealer.py -f config_example.yaml -m simulate +``` + +### Execute mode + +* If you are sure of the result, you can execute the real transactions with: + +```bash +python xchdealer.py -f config_example.yaml -m execute +``` + diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..6e8bf73 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1.0 diff --git a/chia-wallet-dealer.png b/chia-wallet-dealer.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf57caa0619d860e55f8b1db52a07ba9143e4ab GIT binary patch literal 156973 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

sa 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 DK+SZY literal 0 HcmV?d00001 diff --git a/config_example.yaml b/config_example.yaml new file mode 100644 index 0000000..c56d337 --- /dev/null +++ b/config_example.yaml @@ -0,0 +1,16 @@ +--- +rpc_connector: + host: "localhost" + port: 9256 + private_wallet_cert_path: "~/.chia/mainnet/config/ssl/wallet/private_wallet.crt" + private_wallet_key_path: "~/.chia/mainnet/config/ssl/wallet/private_wallet.key" + +dealer: + source_wallet: + id: 1 + distribute_percentage_of_total: 0.1 + fee: 0 + destination_wallets: + - name: "iv-vz" + address: "xch1vt3g694eclvcjmrj8mq83vtgrva9sw0qdz34muxrqjh5y5fzq6vq89n605" + distribution_percentage: 100.0 diff --git a/lib/dealermath/__init.py__ b/lib/dealermath/__init.py__ new file mode 100644 index 0000000..e69de29 diff --git a/lib/dealermath/dealermath.py b/lib/dealermath/dealermath.py new file mode 100644 index 0000000..abbec6a --- /dev/null +++ b/lib/dealermath/dealermath.py @@ -0,0 +1,25 @@ +class DealerMath(): + + @staticmethod + def mojo_to_xch_str(mojos=int): + max_send_amount_xch = (mojos / 1000000000000) + return(f'{max_send_amount_xch:.12f}') + + @staticmethod + def calculate_proportion(total_amount=int, percentage=float): + if DealerMath.is_between(0.0, percentage, 100.0): + return(int((percentage / 100) * total_amount)) + else: + raise Exception(f"Percentage values must be between 0.0 and 100.0! Specified: {str(percentage)}") + + @staticmethod + def check_sum(sum_elements=list, expected_total_value=float): + if all(isinstance(x, float) for x in sum_elements): + if sum(sum_elements) != expected_total_value: + raise Exception(f"The sum of {str(' + '.join(map(str, sum_elements)))} is not equal to {str(expected_total_value)}!") + else: + raise Exception(f"NOT all percentage values are written as floats!") + + @staticmethod + def is_between(a, x, b): + return min(a, b) <= x <= max(a, b) \ No newline at end of file diff --git a/lib/rpc/__init.py__ b/lib/rpc/__init.py__ new file mode 100644 index 0000000..e69de29 diff --git a/lib/rpc/xchrpc.py b/lib/rpc/xchrpc.py new file mode 100644 index 0000000..168f4d5 --- /dev/null +++ b/lib/rpc/xchrpc.py @@ -0,0 +1,92 @@ +import logging, requests, json +from os.path import expanduser +from requests.packages.urllib3.exceptions import InsecureRequestWarning +from lib.dealermath.dealermath import DealerMath + +class RemoteProcedureCall(): + + def __init__(self, host="localhost", port=9256, private_wallet_cert_path="~/.chia/mainnet/config/ssl/wallet/private_wallet.crt", private_wallet_key_path="~/.chia/mainnet/config/ssl/wallet/private_wallet.key"): + requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + + self.default_rpc_headers = {'Content-Type': 'application/json'} + self.default_wallet_certs = (expanduser(private_wallet_cert_path), expanduser(private_wallet_key_path)) + self.host = host + self.port = port + + logging.info(f"RPC connector set to {self.host}:{str(self.port)} using certs {str(self.default_wallet_certs)}") + + + def check_available_wallets(self): + logging.info('Checking available RPC chia wallets') + + request_data = {"wallet_id": "*"} + try: + response = requests.post(f"https://{self.host}:{str(self.port)}/get_wallets", headers=self.default_rpc_headers, json=request_data, cert=self.default_wallet_certs, verify=False) + response.raise_for_status() + except Exception as e: + logging.error(f"Cannot get available RPC chia wallets {str(e)}") + return(False) + else: + available_wallets = json.loads(response.text)['wallets'] + logging.info(f"Connection with chia RPC protocol sucessfull") + logging.info(f"Available wallets: {available_wallets}") + return(available_wallets) + + def check_wallets_synced(self): + logging.info(f"Checking chia wallets synced") + + request_data = {} + try: + response = requests.post(f"https://{self.host}:{str(self.port)}/get_sync_status", headers=self.default_rpc_headers, json=request_data, cert=self.default_wallet_certs, verify=False) + response.raise_for_status() + except Exception as e: + logging.error(f"Cannot get RPC chia wallets sync status {str(e)}") + return(False) + else: + loaded_json = json.loads(response.text) + if loaded_json["syncing"]: + logging.info(f"Wallets are syncing with network") + else: + logging.info(f"Wallets are NOT syncing with network") + + if loaded_json["synced"]: + logging.info(f"Wallets are correctly synced with network") + else: + logging.warning(f"Wallets are NOT synced with network") + return(False) + + def check_wallet_balance(self, wallet_id=int): + logging.info(f"Checking XCH balance on wallet id {str(wallet_id)}") + + request_data = {"wallet_id": wallet_id} + try: + response = requests.post(f"https://{self.host}:{str(self.port)}/get_wallet_balance", headers=self.default_rpc_headers, json=request_data, cert=self.default_wallet_certs, verify=False) + response.raise_for_status() + except Exception as e: + logging.error(f"Cannot get available RPC chia wallets {str(e)}") + return(False) + else: + max_send_amount_mojo = int(json.loads(response.text)["wallet_balance"]["max_send_amount"]) + max_send_amount_xch_str = DealerMath.mojo_to_xch_str(max_send_amount_mojo) + logging.info(f"Available balance for sending (max_send_amount): {str(max_send_amount_mojo)} MOJOs == {str(max_send_amount_xch_str)} XCH") + + return(max_send_amount_mojo, max_send_amount_xch_str) + + def send_wallet_transaction(self, source_wallet_id=int, amount=int, destination_wallet_address=str, fee=0): + logging.info(f"Sending {str(amount)} MOJO to address {destination_wallet_address}") + + request_data = { + "wallet_id": source_wallet_id, + "amount": amount, + "address": destination_wallet_address, + "fee": fee + } + try: + response = requests.post(f"https://{self.host}:{str(self.port)}/send_transaction", headers=self.default_rpc_headers, json=request_data, cert=self.default_wallet_certs, verify=False) + response.raise_for_status() + except Exception as e: + logging.error(str(e)) + return(False) + + logging.info(response.text) + diff --git a/xchdealer.py b/xchdealer.py new file mode 100755 index 0000000..e1ea096 --- /dev/null +++ b/xchdealer.py @@ -0,0 +1,113 @@ +#!/bin/python +import argparse, requests, logging, sys, yaml +from lib.rpc.xchrpc import RemoteProcedureCall +from lib.dealermath.dealermath import DealerMath + +def set_app_logger(): + root = logging.getLogger() + root.setLevel(logging.INFO) + handler = logging.StreamHandler(sys.stdout) + handler.setLevel(logging.INFO) + formatter = logging.Formatter('[%(levelname)s]|%(asctime)s|%(filename)s|%(funcName)s|%(message)s') + handler.setFormatter(formatter) + root.addHandler(handler) + +def get_app_argparse(): + parser = argparse.ArgumentParser(description='Fractionate and send XCH of a chia wallet (using the Chia RPC Protocol) to multiple wallets destinations using partitions rules on a config file.') + + parser.add_argument('-f', '--config-file', type=str, help='YAML config file', required=True) + parser.add_argument('-m', '--mode', + type=str, + choices=['simulate', 'execute'], + default='simulate', required=False, + help='Simulate only or really execute the deal') + + global args + args = parser.parse_args() + +def load_config_file(): + global config + try: + with open(args.config_file, 'r') as file: + config = yaml.full_load(file) + except Exception as e: + logging.error(f"Cannot open config file {args.config_file}: {str(e)}") + exit(1) + else: + logging.info(f"Successfully loaded config file {args.config_file}") + +def calculate_deals(total_mojos, total_xch_str): + logging.info(f"Calculating proportions of deal") + dealing_total_mojo = DealerMath.calculate_proportion(total_mojos, float(config['dealer']['source_wallet']['distribute_percentage_of_total'])) + + logging.info(f"{str(config['dealer']['source_wallet']['distribute_percentage_of_total'])}% of the total amount will be dealed: {str(dealing_total_mojo)} MOJOs") + + deals = {} + + for count, dest in enumerate(config['dealer']['destination_wallets']): + will_receive_mojos = DealerMath.calculate_proportion(dealing_total_mojo, float(config['dealer']['destination_wallets'][count]['distribution_percentage'])) + deals[dest['name']] = {'address': dest['address'], 'mojo': will_receive_mojos, 'xch': DealerMath.mojo_to_xch_str(will_receive_mojos)} + logging.info(f"{dest['name']} will receive {will_receive_mojos} MOJOs == {DealerMath.mojo_to_xch_str(will_receive_mojos)} XCH") + + return(deals) + +def check_percentages(): + try: + DealerMath.check_sum([d['distribution_percentage'] for d in config['dealer']['destination_wallets']], 100.0) + except Exception as e: + logging.error(f"Incorrect configurated distribution percentages: {str(e)}") + exit(1) + else: + logging.info(f"All percentages in config are correctly set and pass checksum test") + +def default_routine(): + available_wallets = rpc.check_available_wallets() + if available_wallets == False: + exit(1) + + if any(d['id'] == config["dealer"]["source_wallet"]["id"] for d in available_wallets): + logging.info(f"Configured source wallet id: {str(config['dealer']['source_wallet']['id'])} is available, using it to operate") + else: + logging.error(f"Configured source wallet id: {str(config['dealer']['source_wallet']['id'])} not in available wallets") + exit(1) + + max_send_amount_mojo, max_send_amount_xch_str = rpc.check_wallet_balance(wallet_id=int(config['dealer']['source_wallet']['id'])) + check_percentages() + deals = calculate_deals(max_send_amount_mojo, max_send_amount_xch_str) + + for name, data in deals.items(): + logging.info(f"Preparing transaction to {name} with {data['xch']} XCH") + rpc.send_wallet_transaction(source_wallet_id=config['dealer']['source_wallet']['id'], amount=data['mojo'], destination_wallet_address=data['address']) + +def check_only_routine(): + rpc.check_available_wallets() + rpc.check_wallets_synced() + max_send_amount_mojo, max_send_amount_xch_str = rpc.check_wallet_balance(wallet_id=int(config['dealer']['source_wallet']['id'])) + check_percentages() + deals = calculate_deals(max_send_amount_mojo, max_send_amount_xch_str) + +if __name__ == "__main__": + get_app_argparse() + set_app_logger() + logging.info(f"Welcome to Chia XCH RPC Dealer") + load_config_file() + + rpc = RemoteProcedureCall( + host=config["rpc_connector"]["host"], + port=int(config["rpc_connector"]["port"]), + private_wallet_cert_path=config["rpc_connector"]["private_wallet_cert_path"], + private_wallet_key_path=config["rpc_connector"]["private_wallet_key_path"]) + + logging.info(f"XCH Dealer routine set to {args.mode} mode") + + if args.mode == "simulate": + check_only_routine() + logging.info(f"Simulate mode finished, if you want to apply and send XCH launch xchdealer in 'execute' mode") + elif args.mode == "execute": + default_routine() + else: + logging.error(f"Only simulate or execute modes can be set") + exit(1) + exit(0) + +