diff --git a/EGLDSender.py b/EGLDSender.py index fc1b1b7..f5ae472 100644 --- a/EGLDSender.py +++ b/EGLDSender.py @@ -3,10 +3,13 @@ from multiversx_sdk_core.transaction_builders import DefaultTransactionBuildersConfiguration from multiversx_sdk_core.transaction_builders import EGLDTransferBuilder from multiversx_sdk_network_providers import ProxyNetworkProvider +from multiversx_sdk_cli.accounts import Account from pathlib import Path +import requests import argparse +import sys import pandas as pd pd.options.mode.chained_assignment = None # default='warn' @@ -57,6 +60,19 @@ CHAIN_ID = config_network[CHAIN]["chainID"] PROXY = config_network[CHAIN]["proxy"] +wallet = Account(pem_file=Path(f"./{args.pem}")).address + +try: + response = requests.get(f'https://{PROXY}api.multiversx.com/accounts/{wallet}') + response.raise_for_status() + balance = response.json()['balance'] + if float(balance) < float(args.amount_airdrop) * pow(10, 18): + print(f"ERROR: You don't have enough EGLD") + sys.exit() +except requests.exceptions.HTTPError as e: + print(f"ERROR: You don't own any EGLD") + sys.exit() + # ---------------------------------------------------------------- # # MAIN EGLD FUNCTION # ---------------------------------------------------------------- # diff --git a/ESDTSender.py b/ESDTSender.py index dc5c1ee..c6c5830 100644 --- a/ESDTSender.py +++ b/ESDTSender.py @@ -2,6 +2,7 @@ from multiversx_sdk_core import Address, TokenPayment from multiversx_sdk_core.transaction_builders import ESDTTransferBuilder, DefaultTransactionBuildersConfiguration from multiversx_sdk_network_providers import ProxyNetworkProvider +from multiversx_sdk_cli.accounts import Account from pathlib import Path @@ -60,11 +61,25 @@ TOKEN_DECIMALS = args.decimals # default : 18 TOKEN_ID = args.id +wallet = Account(pem_file=Path(f"./{args.pem}")).address + +try: + response = requests.get(f'https://{PROXY}api.multiversx.com/tokens/{TOKEN_ID}') + response.raise_for_status() +except requests.exceptions.HTTPError as e: + print(f"ERROR: Token ({TOKEN_ID}) does not exist") + sys.exit() + try: - response = requests.get(f'https://{PROXY}api.multiversx.com/tokens?identifier={TOKEN_ID}') + response = requests.get(f'https://{PROXY}api.multiversx.com/accounts/{wallet}/tokens/{TOKEN_ID}') response.raise_for_status() + balance = response.json()['balance'] + amount_to_drop = float(args.amount_airdrop) * pow(10, int(args.decimals)) + if float(balance) < amount_to_drop: + print(f"ERROR: You don't have enough {TOKEN_ID}") + sys.exit() except requests.exceptions.HTTPError as e: - print("ERROR: Token does not exist") + print(f"ERROR: You don't own any {TOKEN_ID}") sys.exit() # ---------------------------------------------------------------- # diff --git a/multipleESDTSender.py b/multipleESDTSender.py index d5f18bb..0aad379 100644 --- a/multipleESDTSender.py +++ b/multipleESDTSender.py @@ -2,6 +2,7 @@ from multiversx_sdk_core import Address, TokenPayment from multiversx_sdk_core.transaction_builders import DefaultTransactionBuildersConfiguration, \ MultiESDTNFTTransferBuilder +from multiversx_sdk_cli.accounts import Account from multiversx_sdk_network_providers import ProxyNetworkProvider from pathlib import Path @@ -65,18 +66,34 @@ TOKEN_DECIMALS = [] TOKEN_IDs = [] + +wallet = Account(pem_file=Path(f"./{args.pem}")).address + for index, id in enumerate(args.ids): try: - response = requests.get(f'https://{PROXY}api.multiversx.com/tokens?identifier={id}') + response = requests.get(f'https://{PROXY}api.multiversx.com/tokens/{id}') response.raise_for_status() except requests.exceptions.HTTPError as e: print(f"ERROR: Token {id} does not exist") sys.exit() - if index < len(args.decimals): - TOKEN_DECIMALS.append(args.decimals[index]) - else: - TOKEN_DECIMALS.append(18) # default : 18 + try: + response = requests.get(f'https://{PROXY}api.multiversx.com/accounts/{wallet}/tokens/{id}') + response.raise_for_status() + + if index < len(args.decimals): + TOKEN_DECIMALS.append(args.decimals[index]) + else: + TOKEN_DECIMALS.append(18) # default : 18 + + balance = response.json()['balance'] + amount_to_drop = float(args.amounts_airdrop[index]) * pow(10, int(TOKEN_DECIMALS[index])) + if float(balance) < amount_to_drop: + print(f"ERROR: You don't have enough {id}") + sys.exit() + except requests.exceptions.HTTPError as e: + print(f"ERROR: You don't own any {id}") + sys.exit() TOKEN_IDs.append(id) diff --git a/requirements.txt b/requirements.txt index 5a8d257..ea08a4c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ pandas==1.4.1 multiversx-sdk-core===0.4.1 multiversx-sdk-wallet===0.6.2 -multiversx-sdk-network-providers===0.6.9 \ No newline at end of file +multiversx-sdk-network-providers===0.6.9 +multiversx_sdk_cli===6.1.3