Factor RetrieveTipbotBalance to utils and add RetrieveHouseBalance
This commit is contained in:
parent
f24dbd3813
commit
cb9a2fccae
25
tipbot.py
25
tipbot.py
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/python
|
#!/bin/python
|
||||||
#
|
#
|
||||||
# Cryptonote tipbot
|
# Cryptonote tipbot
|
||||||
# Copyright 2014 moneromooo
|
# Copyright 2014,2015 moneromooo
|
||||||
# Inspired by "Simple Python IRC bot" by berend
|
# Inspired by "Simple Python IRC bot" by berend
|
||||||
#
|
#
|
||||||
# The Cryptonote tipbot is free software; you can redistribute it and/or
|
# The Cryptonote tipbot is free software; you can redistribute it and/or
|
||||||
|
@ -125,32 +125,11 @@ def GetHeight(nick,chan,cmd):
|
||||||
def GetTipbotBalance(nick,chan,cmd):
|
def GetTipbotBalance(nick,chan,cmd):
|
||||||
log_info('%s wants to know the tipbot balance' % nick)
|
log_info('%s wants to know the tipbot balance' % nick)
|
||||||
try:
|
try:
|
||||||
j = SendWalletJSONRPCCommand("getbalance",None)
|
balance, unlocked_balance = RetrieveTipbotBalance()
|
||||||
except Exception,e:
|
except Exception,e:
|
||||||
SendTo(nick,"An error has occured")
|
SendTo(nick,"An error has occured")
|
||||||
return
|
return
|
||||||
if not "result" in j:
|
|
||||||
log_error('GetTipbotBalance: result not found in reply')
|
|
||||||
SendTo(nick, "An error has occured")
|
|
||||||
return
|
|
||||||
result = j["result"]
|
|
||||||
if not "balance" in result:
|
|
||||||
log_error('GetTipbotBalance: balance not found in result')
|
|
||||||
SendTo(nick, "An error has occured")
|
|
||||||
return
|
|
||||||
if not "unlocked_balance" in result:
|
|
||||||
log_error('GetTipbotBalance: unlocked_balance not found in result')
|
|
||||||
SendTo(nick, "An error has occured")
|
|
||||||
return
|
|
||||||
balance = result["balance"]
|
|
||||||
unlocked_balance = result["unlocked_balance"]
|
|
||||||
log_log('GetTipbotBalance: balance: %s' % str(balance))
|
|
||||||
log_log('GetTipbotBalance: unlocked_balance: %s' % str(unlocked_balance))
|
|
||||||
pending = long(balance)-long(unlocked_balance)
|
pending = long(balance)-long(unlocked_balance)
|
||||||
if pending < 0:
|
|
||||||
log_error('GetTipbotBalance: Negative pending balance! balance %s, unlocked %s' % (str(balance),str(unlocked)))
|
|
||||||
SendTo(nick, "An error has occured")
|
|
||||||
return
|
|
||||||
if pending == 0:
|
if pending == 0:
|
||||||
log_info("GetTipbotBalance: Tipbot balance: %s" % AmountToString(balance))
|
log_info("GetTipbotBalance: Tipbot balance: %s" % AmountToString(balance))
|
||||||
SendTo(nick,"Tipbot balance: %s" % AmountToString(balance))
|
SendTo(nick,"Tipbot balance: %s" % AmountToString(balance))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/python
|
#!/bin/python
|
||||||
#
|
#
|
||||||
# Cryptonote tipbot - utility functions
|
# Cryptonote tipbot - utility functions
|
||||||
# Copyright 2014 moneromooo
|
# Copyright 2014,2015 moneromooo
|
||||||
#
|
#
|
||||||
# The Cryptonote tipbot is free software; you can redistribute it and/or
|
# The Cryptonote tipbot is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License as published
|
# modify it under the terms of the GNU General Public License as published
|
||||||
|
@ -147,3 +147,43 @@ def SendDaemonJSONRPCCommand(method,params):
|
||||||
def SendDaemonHTMLCommand(method):
|
def SendDaemonHTMLCommand(method):
|
||||||
return SendHTMLCommand(config.daemon_host,config.daemon_port,method)
|
return SendHTMLCommand(config.daemon_host,config.daemon_port,method)
|
||||||
|
|
||||||
|
def RetrieveTipbotBalance():
|
||||||
|
j = SendWalletJSONRPCCommand("getbalance",None)
|
||||||
|
if not "result" in j:
|
||||||
|
log_error('RetrieveTipbotBalance: result not found in reply')
|
||||||
|
raise RuntimeError("")
|
||||||
|
return
|
||||||
|
result = j["result"]
|
||||||
|
if not "balance" in result:
|
||||||
|
log_error('RetrieveTipbotBalance: balance not found in result')
|
||||||
|
raise RuntimeError("")
|
||||||
|
return
|
||||||
|
if not "unlocked_balance" in result:
|
||||||
|
log_error('RetrieveTipbotBalance: unlocked_balance not found in result')
|
||||||
|
raise RuntimeError("")
|
||||||
|
return
|
||||||
|
balance = result["balance"]
|
||||||
|
unlocked_balance = result["unlocked_balance"]
|
||||||
|
log_log('RetrieveTipbotBalance: balance: %s' % str(balance))
|
||||||
|
log_log('RetrieveTipbotBalance: unlocked_balance: %s' % str(unlocked_balance))
|
||||||
|
pending = long(balance)-long(unlocked_balance)
|
||||||
|
if pending < 0:
|
||||||
|
log_error('RetrieveTipbotBalance: Negative pending balance! balance %s, unlocked %s' % (str(balance),str(unlocked_balance)))
|
||||||
|
raise RuntimeError("")
|
||||||
|
return
|
||||||
|
return balance, unlocked_balance
|
||||||
|
|
||||||
|
def RetrieveHouseBalance():
|
||||||
|
balance, unlocked_balance = RetrieveTipbotBalance()
|
||||||
|
|
||||||
|
nicks = redis_hgetall("balances")
|
||||||
|
for nick in nicks:
|
||||||
|
nb = redis_hget("balances", nick)
|
||||||
|
unlocked_balance = unlocked_balance - long(nb)
|
||||||
|
log_log('RetrieveHouseBalance: subtracting %s from %s to give %s' % (AmountToString(nb), nick, AmountToString(unlocked_balance)))
|
||||||
|
|
||||||
|
if unlocked_balance < 0:
|
||||||
|
raise RuntimeError('Negative house balance')
|
||||||
|
return
|
||||||
|
return unlocked_balance
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue