|
|
|
@ -39,6 +39,7 @@ class Transactions(object):
|
|
|
|
|
txid = inside["id"]
|
|
|
|
|
|
|
|
|
|
if "type" not in inside:
|
|
|
|
|
# stored_trade here is actually TX
|
|
|
|
|
stored_trade = r.hgetall(f"tx.{txid}")
|
|
|
|
|
if not stored_trade:
|
|
|
|
|
self.log.error("Could not find entry in DB for typeless transaction: {id}", id=txid)
|
|
|
|
@ -67,10 +68,21 @@ class Transactions(object):
|
|
|
|
|
r.hmset(f"tx.{txid}", stored_trade)
|
|
|
|
|
# Check it's all been previously validated
|
|
|
|
|
if "valid" not in stored_trade:
|
|
|
|
|
print("Valid not in stored trade")
|
|
|
|
|
print("valid not in stored_trade", stored_trade)
|
|
|
|
|
if stored_trade["valid"] == "1":
|
|
|
|
|
print("WOULD RELEASE ESCROW FROM SECONDARY NOTINSIDE UPDATE", stored_trade["trade_id"], stored_trade["txid"])
|
|
|
|
|
print("STORED TRADE IS VALID")
|
|
|
|
|
# Make it invalid immediately, as we're going to release now
|
|
|
|
|
stored_trade["valid"] = "0"
|
|
|
|
|
print("SETTING STORED TRADE INVALID")
|
|
|
|
|
r.hmset(f"tx.{txid}", stored_trade)
|
|
|
|
|
print("SAVING STORED TRADE")
|
|
|
|
|
print("STORED TRADE SAVED:", dumps(stored_trade, indent=2))
|
|
|
|
|
reference = self.tx_to_ref(stored_trade["trade_id"])
|
|
|
|
|
print("REFERENCE", reference)
|
|
|
|
|
self.release_funds(stored_trade["trade_id"], reference)
|
|
|
|
|
print("RELEASED FUNDS")
|
|
|
|
|
self.notify.notify_complete_trade(stored_trade["amount"], stored_trade["currency"])
|
|
|
|
|
print("NOTIFICATION SENT")
|
|
|
|
|
return
|
|
|
|
|
# If type not in inside and we haven't hit any more returns
|
|
|
|
|
return
|
|
|
|
@ -416,12 +428,15 @@ class Transactions(object):
|
|
|
|
|
def get_total(self):
|
|
|
|
|
total_usd_revolut = self.revolut.get_total_usd()
|
|
|
|
|
if total_usd_revolut is False:
|
|
|
|
|
self.log.error("Could not get USD total.")
|
|
|
|
|
return False
|
|
|
|
|
agora_wallet_xmr = self.agora.agora.wallet_balance_xmr()
|
|
|
|
|
if not agora_wallet_xmr["success"]:
|
|
|
|
|
self.log.error("Could not get Agora XMR wallet total.")
|
|
|
|
|
return False
|
|
|
|
|
agora_wallet_btc = self.agora.agora.wallet_balance()
|
|
|
|
|
if not agora_wallet_btc["success"]:
|
|
|
|
|
self.log.error("Could not get Agora BTC wallet total.")
|
|
|
|
|
return False
|
|
|
|
|
total_xmr_agora = agora_wallet_xmr["response"]["data"]["total"]["balance"]
|
|
|
|
|
total_btc_agora = agora_wallet_btc["response"]["data"]["total"]["balance"]
|
|
|
|
@ -485,13 +500,21 @@ class Transactions(object):
|
|
|
|
|
return cumul_usd
|
|
|
|
|
|
|
|
|
|
def get_total_remaining(self):
|
|
|
|
|
print("withdrawalLimit", settings.Money.WithdrawLimit)
|
|
|
|
|
total_usd = self.get_total_usd()
|
|
|
|
|
print("total_usd", total_usd)
|
|
|
|
|
total_trades_usd = self.get_open_trades_usd()
|
|
|
|
|
print("total_trades_usd", total_trades_usd)
|
|
|
|
|
if not total_usd:
|
|
|
|
|
return False
|
|
|
|
|
total_usd += total_trades_usd
|
|
|
|
|
print("total_usd after add trades", total_usd)
|
|
|
|
|
|
|
|
|
|
print("baseUSD", settings.Money.BaseUSD)
|
|
|
|
|
print("withdrawalLimit", settings.Money.WithdrawLimit)
|
|
|
|
|
withdraw_threshold = float(settings.Money.BaseUSD) + float(settings.Money.WithdrawLimit)
|
|
|
|
|
print("withdraw_threshold", withdraw_threshold)
|
|
|
|
|
remaining = withdraw_threshold - total_usd
|
|
|
|
|
print("remaining", remaining)
|
|
|
|
|
|
|
|
|
|
return remaining
|
|
|
|
|