Skip to content

Commit

Permalink
Merge pull request #8 from PABourdais/check-wallet-balance
Browse files Browse the repository at this point in the history
Check wallet balance before send loop
  • Loading branch information
PABourdais committed Apr 13, 2023
2 parents 53c308d + 4e65f5d commit 80f0023
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 8 deletions.
16 changes: 16 additions & 0 deletions EGLDSender.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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
# ---------------------------------------------------------------- #
Expand Down
19 changes: 17 additions & 2 deletions ESDTSender.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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()

# ---------------------------------------------------------------- #
Expand Down
27 changes: 22 additions & 5 deletions multipleESDTSender.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)


Expand Down
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -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
multiversx-sdk-network-providers===0.6.9
multiversx_sdk_cli===6.1.3

0 comments on commit 80f0023

Please sign in to comment.