firewalletbrowser/account.py

84 lines
1.8 KiB
Python

from handywrapper import api
import os
import dotenv
import requests
dotenv.load_dotenv()
APIKEY = os.getenv("hsd_api")
hsd = api.hsd(APIKEY)
hsw = api.hsw(APIKEY)
# Verify the connection
response = hsd.getInfo()
def check_account(cookie: str):
# Check the account
if cookie.count(":") < 1:
return False
account = cookie.split(":")[0]
password = ":".join(cookie.split(":")[1:])
# Check if the account is valid
info = hsw.getAccountInfo(account, 'default')
if 'error' in info:
return False
return account
def getBalance(account: str):
# Get the total balance
info = hsw.getBalance('default',account)
if 'error' in info:
return {'available': 0, 'total': 0}
total = info['confirmed']
available = total - info['lockedConfirmed']
# Convert to HNS
total = total / 1000000
available = available / 1000000
# Only keep 2 decimal places
total = round(total, 2)
available = round(available, 2)
return {'available': available, 'total': total}
def getPendingTX(account: str):
# Get the pending transactions
info = hsw.getWalletTxHistory()
if 'error' in info:
return 0
pending = 0
for tx in info:
if tx['confirmations'] < 1:
pending += 1
return pending
def getDomains(account):
# Get the domains
# info = hsw.getWalletNames(account)
# if 'error' in info:
# return []
# use requests to get the domains
response = requests.get(f"http://x:{APIKEY}@127.0.0.1:12039/wallet/{account}/name?own=true")
info = response.json()
return info
def getTransactions(account):
# Get the transactions
info = hsw.getWalletTxHistory(account)
if 'error' in info:
return []
return info