Remove debugging code

master
Mark Veidemanis 3 years ago
parent 8782aeaead
commit 91f457c82d
Signed by: m
GPG Key ID: 5ACFCEED46C0904F

@ -175,42 +175,6 @@ class Agora(object):
current_trades.append(reference)
self.tx.cleanup(current_trades)
@handle_exceptions
def dashboard_release_urls(self):
"""
Get information about our open trades.
Post new trades to IRC and cache trades for the future.
:return: human readable list of strings about our trades or False
:rtype: list or bool
"""
dash = self.agora.dashboard_seller()
if dash is False:
return False
dash_tmp = []
if "data" not in dash["response"]:
self.log.error("Data not in dashboard response: {content}", content=dash)
return False
if dash["response"]["data"]["contact_count"] > 0:
for contact in dash["response"]["data"]["contact_list"]:
contact_id = contact["data"]["contact_id"]
buyer = contact["data"]["buyer"]["username"]
amount = contact["data"]["amount"]
asset = contact["data"]["advertisement"]["asset"]
if asset == "XMR":
amount_crypto = contact["data"]["amount_xmr"]
elif asset == "BTC":
amount_crypto = contact["data"]["amount_btc"]
currency = contact["data"]["currency"]
release_url = contact["actions"]["release_url"]
if not contact["data"]["is_selling"]:
continue
reference = self.tx.tx_to_ref(contact_id)
if not reference:
reference = "not_set"
dash_tmp.append(f"{reference}: {buyer} {amount}{currency} {amount_crypto}{asset} {release_url}")
return dash_tmp
@handle_exceptions
def get_recent_messages(self, send_irc=True):
"""
@ -310,6 +274,7 @@ class Agora(object):
ads_total.append([ad[0], ad[1], ad[2], ad[3], ad[4]])
return ads_total
# TODO: move to utils library
def last_online_recent(self, date):
"""
Check if the last online date was recent.
@ -381,6 +346,7 @@ class Agora(object):
to_return.append(to_append)
return to_return
# TODO: move to money library
def lookup_rates(self, ads, rates=None):
"""
Lookup the rates for a list of public ads.
@ -430,6 +396,7 @@ class Agora(object):
to_update = self.markets.get_new_ad_equations(public_ads, assets)
self.slow_ad_update(to_update)
# TODO: make generic and move to markets
@handle_exceptions
def get_all_public_ads(self, assets=None, currencies=None, providers=None):
"""
@ -480,7 +447,6 @@ class Agora(object):
Slow ad equation update utilising exponential backoff in order to guarantee all ads are updated.
:param ads: our list of ads
"""
# self.log.info("Beginning slow ad update for {num} ads", num=len(ads))
iterations = 0
throttled = 0
assets = set()
@ -495,7 +461,6 @@ class Agora(object):
if rtrn["success"]:
ads[ad_index][4] = True
throttled = 0
# self.log.info("Successfully updated ad: {id}", id=ad_id)
continue
else:
if "error_code" not in rtrn["response"]["error"]:
@ -515,17 +480,6 @@ class Agora(object):
self.log.error("Error updating ad {ad_id}: {response}", ad_id=ad_id, response=rtrn["response"])
continue
iterations += 1
# if iterations == 0:
# self.log.info("Slow ad update finished, no ads to update")
# self.irc.sendmsg("Slow ad update finished, no ads to update")
# else:
# self.log.info(
# "Slow ad update completed with {iterations} iterations: [{assets}] | [{currencies}]",
# iterations=iterations,
# assets=", ".join(assets),
# currencies=", ".join(currencies),
# )
# self.irc.sendmsg(f"Slow ad update completed with {iterations} iterations: [{', '.join(assets)}] | [{', '.join(currencies)}]")
@handle_exceptions
def nuke_ads(self):
@ -543,6 +497,7 @@ class Agora(object):
return_ids.append(rtrn["success"])
return all(return_ids)
# TODO: move to money
def get_rates_all(self):
"""
Get all rates that pair with USD.
@ -552,6 +507,7 @@ class Agora(object):
rates = self.cr.get_rates("USD")
return rates
# TODO: move to money
def get_acceptable_margins(self, currency, amount):
"""
Get the minimum and maximum amounts we would accept a trade for.
@ -615,11 +571,8 @@ class Agora(object):
min_amount = rates[currency] * min_usd
max_amount = rates[currency] * max_usd
price_formula = f"coingecko{asset.lower()}usd*usd{currency.lower()}*{settings.Agora.Margin}"
# price_formula = f"coingeckoxmrusd*{settings.Agora.Margin}"
# Remove extra tabs
ad = ad.replace("\\t", "\t")
form = {
"country_code": countrycode,
"currency": currency,
@ -635,10 +588,6 @@ class Agora(object):
"payment_method_details": settings.Agora.PaymentMethodDetails,
"account_info": paymentdetailstext,
}
# Dirty hack to test
# if asset == "BTC":
# del form["min_amount"]
if edit:
ad = self.agora.ad(ad_id=ad_id, **form)
else:
@ -817,6 +766,7 @@ class Agora(object):
self.irc.sendmsg(f"Withdrawal: {rtrn1['success']} | {rtrn2['success']}")
self.notify.notify_withdrawal(half_rounded)
# TODO: move to money
def to_usd(self, amount, currency):
if currency == "USD":
return float(amount)

@ -140,28 +140,6 @@ class IRCCommands(object):
rtrn = agora.strip_duplicate_ads()
msg(dumps(rtrn))
class find(object):
name = "find"
authed = True
helptext = "Find a transaction. Usage: find <currency> <amount>"
@staticmethod
def run(cmd, spl, length, authed, msg, agora, revolut, tx, notify):
"""
Find a transaction received by Revolut with the given reference and amount.
"""
try:
int(spl[2])
except ValueError:
msg("Amount is not an integer.")
rtrn = tx.find_tx(spl[1], spl[2])
if rtrn == "AMOUNT_INVALID":
msg("Reference found but amount invalid.")
elif not rtrn:
msg("Reference not found.")
else:
return dumps(rtrn)
class accounts(object):
name = "accounts"
authed = True
@ -227,19 +205,6 @@ class IRCCommands(object):
def run(cmd, spl, length, authed, msg, agora, revolut, tx, notify):
notify.sendmsg("You have been summoned!")
class release_url(object):
name = "release_url"
authed = True
helptext = "Get release URL for all open trades."
@staticmethod
def run(cmd, spl, length, authed, msg, agora, revolut, tx, notify):
trades = agora.dashboard_release_urls()
if not trades:
msg("No trades.")
for trade in trades:
msg(trade)
class message(object):
name = "msg"
authed = True

@ -45,44 +45,31 @@ class Transactions(object):
self.log.error("Could not find entry in DB for typeless transaction: {id}", id=txid)
return
stored_trade = convert(stored_trade)
print("stored trade", stored_trade)
print("received event", dumps(data, indent=2))
if "old_state" in inside:
print("Old state is inside")
if "new_state" in inside:
print("New state is inside")
# We don't care unless we're being told a transaction is now completed
if not inside["new_state"] == "completed":
print("New state is note completed, aborting")
return
# We don't care unless the existing trade is pending
if not stored_trade["state"] == "pending":
print("State is not pending, aborting")
return
# Check the old state is what we also think it is
if inside["old_state"] == stored_trade["state"]:
print("Old state is the state we think it should be")
# Set the state to the new state
stored_trade["state"] = inside["new_state"]
# Store the updated state
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", stored_trade)
self.log.error("Valid not in stored trade for {txid}, aborting.", txid=txid)
return
if stored_trade["valid"] == "1":
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
@ -282,26 +269,6 @@ class Transactions(object):
else:
return reference
def find_tx(self, reference, amount):
"""
Find transactions that match the given reference and amount.
:param reference: transaction reference in Revolut
:param amount: transaction amount
:type reference: string
:type amount: int
:return: transaction details or AMOUNT_INVALID, or False
:rtype: dict or string or bool
"""
all_transactions = r.scan(0, match="tx.*")
for tx_iter in all_transactions[1]:
tx_obj = r.hgetall(tx_iter)
if tx_obj[b"reference"] == str.encode(reference):
if tx_obj[b"amount"] == str.encode(amount):
return convert(tx_obj)
else:
return "AMOUNT_INVALID"
return False
def find_trade(self, txid, currency, amount):
"""
Get a trade reference that matches the given currency and amount.
@ -378,9 +345,6 @@ class Transactions(object):
r.rename(f"trade.{tx}.reference", f"archive.trade.{tx}.reference")
r.rename(f"trade.{reference}", f"archive.trade.{reference}")
def del_tx(self, txid):
pass
def tx_to_ref(self, tx):
refs = self.get_refs()
for reference in refs:
@ -496,25 +460,14 @@ class Transactions(object):
rate = rates[currency]
amount_usd = float(amount) / rate
cumul_usd += amount_usd
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

Loading…
Cancel
Save