Hi,
I am writing a small program for Bitcoin as I am learning Python3 and I needed a function to return multiple Bitcoin addresses Balance and Fiat Balance, I thought it may come in useful to someone or at the very least I would get feedback about how I could improve the code to make it less lines / better error checking for some of you more experience Python Devs out there. You will need to install Python Modules urllib3 and certifi
Anyway Here it is.
Supported Currencies ARS, AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, ILS, INR, MXN, NOK, NZD, PLN, RUB, SEK, SGD, THB, USD, ZAR
Usage:
python GetBalance.py ...
#!/usr/bin/python3
#
# Bitcoin GetBalance
#
# Supported Currencies ARS, AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, ILS, INR, MXN, NOK, NZD, PLN, RUB, SEK, SGD, THB, USD, ZAR
#
# Usage:
# python GetBalance.py ...
#
import argparse, urllib3, json, certifi
parser = argparse.ArgumentParser(description='Get Balance of Bitcoin Addresses.')
parser.add_argument('Currency', nargs=1, help='Currency')
parser.add_argument('BitcoinAddresses', metavar='BitcoinAddress', nargs='+',
help='a Bitcoin Address')
args = parser.parse_args()
def GetBalance():
for BitcoinAddr in args.BitcoinAddresses:
blockchain = urllib3.PoolManager()
req = blockchain.request('GET', 'http://blockchain.info/q/addressbalance/' + BitcoinAddr)
SatoshiConvert = int(req.data) / 100000000
if FiatValue() == 'Error: No Such Currency':
print('no such currency {}'.format(args.Currency[0]))
break
else:
FiatConvert = FiatValue() * SatoshiConvert
print('{} - {} ({:,} {})'.format(BitcoinAddr, SatoshiConvert, round(FiatConvert, 2), args.Currency[0]))
def FiatValue():
fiatvalues = urllib3.PoolManager(
cert_reqs='CERT_REQUIRED',
ca_certs=certifi.where(),
)
req = fiatvalues.request('GET', 'https://localbitcoins.com/bitcoinaverage/ticker-all-currencies')
jsondata = json.loads(req.data.decode('utf-8'))
try:
return float(jsondata[args.Currency[0]]['rates']['last'])
except:
return 'Error: No Such Currency'
GetBalance()
Output for 3 Random Addresses
C:\Users\mrflibblehat\Desktop\Python>python GetBalance.py USD 3MkwFfGNQDve7vz1z6gUDVxk
uQpcSV3Mz8 15qwThKcv55zeJLxd8AXmK3TCgHbW8SXrQ 1QACD9ZHnBSJVWsyE6wrfBm7GvU7QCc5KQ
3MkwFfGNQDve7vz1z6gUDVxkuQpcSV3Mz8 - 4299.52149361 (1,747,841.48 USD)
15qwThKcv55zeJLxd8AXmK3TCgHbW8SXrQ - 83.55649333 (33,967.39 USD)
1QACD9ZHnBSJVWsyE6wrfBm7GvU7QCc5KQ - 1.21749614 (494.94 USD)