coinbus-data/coinbus/db_if_qt.py

563 lines
30 KiB
Python
Raw Permalink Normal View History

2025-07-25 09:29:12 +00:00
# coding=utf-8
import datetime
import pymysql
from loguru import logger
import time
class DbIf:
def __init__(self, host="172.17.0.1", port=4419, user="root", password="IeQcJNnagkaFP1Or", dbname="btcdb"):
self.conn = pymysql.connect(host=host, port=port, user=user, password=password, database=dbname,cursorclass=pymysql.cursors.DictCursor)
def update_to_dailyindsv2(self, dt_utc, height_begin, height_end, lth_volume, frm, cvdd, realized_price, transferred_price, balanced_price, nvt_ratio, velocity):
with self.conn.cursor() as cursor:
print(dt_utc, height_begin, height_end, lth_volume, frm, cvdd, realized_price, transferred_price, balanced_price, nvt_ratio, velocity)
sql_insert = "REPLACE INTO dailyindsv3e2 (unixdt, height_begin, height_end, lth_volume, frm, cvdd, realized_price, transferred_price, balanced_price, nvt_ratio, velocity"
sql_insert = sql_insert + ") VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
cursor.execute(sql_insert, (
dt_utc, height_begin, height_end, lth_volume, frm, cvdd, realized_price, transferred_price, balanced_price, nvt_ratio, velocity))
'''
def update_to_realtimeindsv2(self, dt_utc, mempool_volume, mempool_fees):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO realtimeindsv2b (unixdt, mempool_volume, mempool_fees)"
cursor.execute(sql_insert, (dt_utc, mempool_volume, mempool_fees))
'''
def update_to_dailyinds(self, dt_utc, height_begin, height_end, profitrate, fees, txs, new_address, total_address, new_address_volume, active_address,
send_address, receive_address, volume, eavolume, sopr, asopr, easopr, lthsopr, sthsopr,
asol, eaasol, dormancy, adormancy, eadormancy, cdd, sacdd, eacdd, day1, day7, day30, day60,
day90, day180, day365, day730, csupply, mintusd, sumcsupply, sumcdd, sumeacdd,
liveliness, ealiveliness, rprofit, rloss, rplrate, price, marketcap, rcap, earcap, mvrv,
nupl,vdd):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO dailyindsv3e1 (unixdt, height_begin, height_end, profitrate, fees, txs, new_address, total_address, new_address_volume, active_address, send_address, receive_address, volume, eavolume, sopr, asopr, easopr, lthsopr, sthsopr,"
sql_insert = sql_insert + " asol, eaasol, dormancy, adormancy, eadormancy, cdd, sacdd, eacdd, day1, day7, day30, day60, day90, day180, day365, day730, csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, "
sql_insert = sql_insert + " ealiveliness, rprofit, rloss, rplrate, price, marketcap, rcap, earcap, mvrv, nupl,vdd"
sql_insert = sql_insert + ") VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (
dt_utc, height_begin, height_end, profitrate, fees, txs, new_address, total_address, new_address_volume, active_address, send_address,
receive_address, volume, eavolume, sopr, asopr, easopr, lthsopr, sthsopr, asol, eaasol, dormancy,
adormancy, eadormancy, cdd, sacdd, eacdd, day1, day7, day30, day60, day90, day180, day365, day730,
csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, ealiveliness, rprofit, rloss, rplrate,
price, marketcap, rcap, earcap, mvrv,
nupl,vdd))
self.conn.commit()
'''
def update_to_dailyinds(self, dt_utc, height_begin, height_end, profitrate, fees, txs, new_address, new_address_volume, active_address,
send_address, receive_address, volume, eavolume, sopr, asopr, easopr, lthsopr, sthsopr,
asol, eaasol, dormancy, adormancy, eadormancy, cdd, sacdd, eacdd, day1, day7, day30, day60,
day90, day180, day365, day730, csupply, mintusd, sumcsupply, sumcdd, sumeacdd,
liveliness, ealiveliness, rprofit, rloss, rplrate, price, marketcap, rcap, earcap, mvrv,
lthmarketcap, lthrcap, sthmarketcap, sthrcap, lthmvrv, sthmvrv, nupl):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO dailyindsv1 (unixdt, height_begin, height_end, profitrate, fees, txs, new_address, new_address_volume, active_address, send_address, receive_address, volume, eavolume, sopr, asopr, easopr, lthsopr, sthsopr,"
sql_insert = sql_insert + " asol, eaasol, dormancy, adormancy, eadormancy, cdd, sacdd, eacdd, day1, day7, day30, day60, day90, day180, day365, day730, csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, "
sql_insert = sql_insert + " ealiveliness, rprofit, rloss, rplrate, price, marketcap, rcap, earcap, mvrv, lthmarketcap, lthrcap, sthmarketcap, sthrcap, lthmvrv, sthmvrv, nupl"
sql_insert = sql_insert + ") VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (
dt_utc, height_begin, height_end, profitrate, fees, txs, new_address, new_address_volume, active_address, send_address,
receive_address, volume, eavolume, sopr, asopr, easopr, lthsopr, sthsopr, asol, eaasol, dormancy,
adormancy, eadormancy, cdd, sacdd, eacdd, day1, day7, day30, day60, day90, day180, day365, day730,
csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, ealiveliness, rprofit, rloss, rplrate,
price, marketcap, rcap, earcap, mvrv, lthmarketcap, lthrcap, sthmarketcap, sthrcap, lthmvrv, sthmvrv,
nupl))
self.conn.commit()
'''
'''
# daily daily on-chain volume
def query_from_dailyvolume(self, start_id=0, end_id=0, start_time="", end_time="", limit=0):
with self.conn.cursor() as cursor:
sql_query = "SELECT * from `dailyvolume`"
if start_id > 0:
sql_query = sql_query + " WHERE id > " + str(start_id)
if end_id > 0:
sql_query = sql_query + " AND id < " + str(end_id)
else:
if end_id > 0:
sql_query = sql_query + " WHERE id < " + str(end_id)
if len(start_time) > 0:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(\'" + end_time + "\')"
else:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(NOW())"
else:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(NOW()) AND UNIX_TIMESTAMP(\'" + end_time + "\')"
sql_query = sql_query + " order by `unixdt` desc"
if limit > 0:
sql_query = sql_query + " LIMIT " + str(limit)
print(sql_query)
cursor.execute(sql_query)
return cursor.fetchall()
'''
# newaddrs
'''
def update_to_newaddr(self, dayutc, last_profit_rate, last_fees, last_txs, last_eatxs, last_newaddr_cnt,
last_newaddr_vol, last_active_addr_cnt, last_tx_addr_cnt, last_rx_addr_cnt, last_vol_change,
last_vol):
with self.conn.cursor() as cursor:
sql_query = "SELECT COUNT(id) FROM `newaddrs` WHERE unixdt=FROM_UNIXTIME(%s)"
cursor.execute(sql_query, {dayutc, })
result = cursor.fetchone()
# print(dt_utc)
# print(result)
if result is not None:
if "COUNT(id)" in result:
if result["COUNT(id)"] > 0:
print("update")
sql_update = 'UPDATE newaddrs SET `total`=%s, `amount`=%s, `active`=%s, `tx`=%s, `rx`=%s, `volume_change`=%s, `volume=%s`,`txs`=%s, `eatxs`=%s, `fees`=%s, `last_profit_rate`=%s WHERE unixdt=FROM_UNIXTIME(%s)'
cursor.execute(sql_update, (
last_newaddr_cnt, last_newaddr_vol, last_active_addr_cnt, last_tx_addr_cnt,
last_rx_addr_cnt,
last_vol_change, last_vol, last_txs, last_eatxs, last_fees, last_profit_rate, dayutc))
else:
print("insert")
sql_insert = "INSERT INTO `newaddrs` (`unixdt`, `total`, `amount`, `active`, `tx`, `rx`, `volume_change`, `volume`, `txs`, `eatxs`, `fees`, `last_profit_rate`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (
dayutc, last_newaddr_cnt, last_newaddr_vol, last_active_addr_cnt, last_tx_addr_cnt,
last_rx_addr_cnt, last_vol_change, last_vol, last_txs, last_eatxs, last_fees,
last_profit_rate))
self.conn.commit()
'''
'''
def update_to_sellprofit(self, dayutc, current_price, block_buy_volume, block_sell_volume, block_sell_profit, last_height):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `dailybuysell` (`unixdt`, `price`, `buyvolume`, `sellvolume`, `sellprofit`, `height`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s)"
#print(sql_insert)
#print(datetime, txid, vout, voutalias, amount, height)
cursor.execute(sql_insert, (dayutc, current_price, block_buy_volume, block_sell_volume, block_sell_profit, last_height))
self.conn.commit()
'''
'''
def update_to_bigsellprofit(self, dayutc, current_price, tx_sell_average, tx_sell_amount, tx_sell_profit,
days_earliest, days_latest, days_largest, days_current, tx_buy_address, txid,
block_height):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `bigsell` (`unixdt`, `buyprice`, `sellprice`, `amount`, `profit`, `days_earliest`, `days_latest`, `days_largest`, `days_current`, `address`, `txid`, `height`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
# print(datetime, txid, vout, voutalias, amount, height)
cursor.execute(sql_insert, (
dayutc, current_price, tx_sell_average, tx_sell_amount, tx_sell_profit, days_earliest, days_latest,
days_largest, days_current, tx_buy_address, txid, block_height))
self.conn.commit()
'''
'''
def update_to_dailycdd(self, dt_utc, cdd):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO `dailycdd` (`unixdt`, `cdd`) VALUES (FROM_UNIXTIME(%s), %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, cdd))
self.conn.commit()
'''
'''
def update_to_dailycdddays(self, dt_utc, dormancy, adormancy, eadormancy, cdd, acdd, eacdd, day1, day7, day30,
day60, day90, day180, day365, day730):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO `dailycdddays` (`unixdt`, dormancy, adormancy, eadormancy, cdd, acdd, eacdd, `day1`, day7, day30, day60, day90, day180, day365, day730) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (
dt_utc, dormancy, adormancy, eadormancy, cdd, acdd, eacdd, day1, day7, day30, day60, day90, day180,
day365,
day730))
self.conn.commit()
'''
'''
def update_to_dailysopr(self, dt_utc, last_sopr, last_asopr, last_easopr, last_lth_sopr, last_sth_sopr):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO `dailysopr` (`unixdt`, `sopr`, asopr, easopr, lth_sopr, sth_sopr) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, last_sopr, last_asopr, last_easopr, last_lth_sopr, last_sth_sopr))
self.conn.commit()
'''
'''
def update_to_inds(self, dt_utc, csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, ealiveliness, rprofit,
rloss, rplrate, price, marketcap, rcap, earcap, mvrv):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO `inds` (`unixdt`, csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, ealiveliness, rprofit, rloss, rplrate, price, marketcap, rcap, earcap, mvrv) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (
dt_utc, csupply, mintusd, sumcsupply, sumcdd, sumeacdd, liveliness, ealiveliness, rprofit, rloss,
rplrate,
price, marketcap, rcap, earcap, mvrv))
self.conn.commit()
'''
# daily volume
'''
def update_to_dailyvolume(self, dt_utc, volume):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO `dailyvolume` (`unixdt`, `volume`) VALUES (FROM_UNIXTIME(%s), %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, volume))
self.conn.commit()
'''
'''with self.conn.cursor() as cursor:
sql_query = "SELECT COUNT(id) FROM `dailyvolume` WHERE unixdt=FROM_UNIXTIME(%s)"
cursor.execute(sql_query, {dt_utc,})
result = cursor.fetchone()
#print(dt_utc)
#print(result)
if result is not None:
if "COUNT(id)" in result:
if result["COUNT(id)"] > 0:
print("update")
sql_update = 'UPDATE dailyvolume SET `volume`=%s WHERE unixdt=FROM_UNIXTIME(%s)'
cursor.execute(sql_update, (volume, dt_utc))
else:
print("insert")
sql_insert = "INSERT INTO `dailyvolume` (`unixdt`, `volume`) VALUES (FROM_UNIXTIME(%s), %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, volume))
self.conn.commit()'''
'''
def update_to_dailyfees(self, dt_utc, fees):
with self.conn.cursor() as cursor:
sql_insert = "REPLACE INTO `dailyfees` (`unixdt`, `fees`) VALUES (FROM_UNIXTIME(%s), %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, fees))
self.conn.commit()
'''
'''
def import_to_dailyvolume2(self, dt_utc, volume):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `dailyvolume` (`unixdt`, `volume`) VALUES (FROM_UNIXTIME(%s), %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, volume))
self.conn.commit()
def delete_dailyvolume_data(self, config):
with self.conn.cursor() as cursor:
sql_query = "DELETE FROM `dailyvolume`"
cursor.execute(sql_query)
self.conn.commit()
# daily market cap
def query_from_marketcap(self, start_id=0, end_id=0, start_time="", end_time="", limit=0):
with self.conn.cursor() as cursor:
sql_query = "SELECT * from `dailyprice`"
if start_id > 0:
sql_query = sql_query + " WHERE id > " + str(start_id)
if end_id > 0:
sql_query = sql_query + " AND id < " + str(end_id)
else:
if end_id > 0:
sql_query = sql_query + " WHERE id < " + str(end_id)
if len(start_time) > 0:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(\'" + end_time + "\')"
else:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(NOW())"
else:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(NOW()) AND UNIX_TIMESTAMP(\'" + end_time + "\')"
sql_query = sql_query + " order by `unixdt` desc"
if limit > 0:
sql_query = sql_query + " LIMIT " + str(limit)
print(sql_query)
cursor.execute(sql_query)
return cursor.fetchall()
#daily price
def import_to_dailyprice(self, dt_utc, price, volume, marketcap, csupply):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `dailyprice` (`unixdt`, `price`, `volume`, `marketcap`, `csupply`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s)"
#print(sql_insert)
cursor.execute(sql_insert, (dt_utc, price, volume, marketcap, csupply))
self.conn.commit()
def update_to_dailyprice(self, dt_utc, price, volume, change):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `dailyprice` (`unixdt`, `price`, `volume`, `change`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s)"
#print(sql_insert)
cursor.execute(sql_insert, (dt_utc, price, volume, change))
self.conn.commit()
def update_to_dailyprice2(self, dt_utc, price, volume, change, marketcap, csupply):
with self.conn.cursor() as cursor:
sql_query = "SELECT COUNT(id) FROM `dailyprice` WHERE unixdt=FROM_UNIXTIME(%s)"
cursor.execute(sql_query, {dt_utc,})
result = cursor.fetchone()
#print(dt_utc)
#print(result)
if result is not None:
if "COUNT(id)" in result:
if result["COUNT(id)"] > 0:
print("update")
sql_update = 'UPDATE dailyprice SET `price`=%s, `marketcap`=%s, `csupply`=%s, `volume`=%s, `change`=%s WHERE unixdt=FROM_UNIXTIME(%s)'
cursor.execute(sql_update, (price, marketcap, csupply, volume, change, dt_utc))
else:
print("insert")
sql_insert = "INSERT INTO `dailyprice` (`unixdt`, `price`, `volume`, `change`, `marketcap`, `csupply`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s)"
# print(sql_insert)
cursor.execute(sql_insert, (dt_utc, price, volume, change, marketcap, csupply))
self.conn.commit()
def update_dailypricechange(self):
with self.conn.cursor() as cursor:
sql_query = "SELECT unixdt,price FROM `dailyprice` order by unixdt"
cursor.execute(sql_query)
results = cursor.fetchall()
prevprice = -1
for result in results:
if prevprice < 0:
prevprice = result["price"]
else:
#print(result["unixdt"], result["price"], result["marketcap"])
try:
change = (result["price"]/prevprice - 1)*100
except:
change = 0
#print(csupply)
datestr = result["unixdt"]
logger.debug(datestr.__format__('%Y-%m-%d') + " " + str(change))
sql_update = 'UPDATE dailyprice SET `change`=%s WHERE unixdt=%s'
cursor.execute(sql_update, (str(change), result["unixdt"]))
prevprice = result["price"]
self.conn.commit()
def delete_dailyprice_data(self, config):
with self.conn.cursor() as cursor:
sql_query = "DELETE FROM `dailyprice`"
cursor.execute(sql_query)
self.conn.commit()
def delete_failed_blockvolume(self, height):
with self.conn.cursor() as cursor:
sql_insert = "DELETE FROM `bigamountvout` WHERE height=%s"
cursor.execute(sql_insert, (height,))
sql_insert = "DELETE FROM `bigamounttx` WHERE height=%s"
cursor.execute(sql_insert, (height,))
sql_insert = "DELETE FROM `blockamount` WHERE height=%s"
cursor.execute(sql_insert, (height,))
self.conn.commit()
#block check --- big amount for vout
def query_from_bigamountvout(self, start_id=0, end_id=0, start_time="", end_time="", address="", limit=0):
with self.conn.cursor() as cursor:
sql_query = "SELECT * from `bigamountvout`"
if start_id > 0:
sql_query = sql_query + " WHERE id > " + str(start_id)
if end_id > 0:
sql_query = sql_query + " AND id < " + str(end_id)
else:
if end_id > 0:
sql_query = sql_query + " WHERE id < " + str(end_id)
if len(start_time) > 0:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(\'" + end_time + "\')"
else:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(NOW())"
else:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(NOW()) AND UNIX_TIMESTAMP(\'" + end_time + "\')"
sql_query = sql_query + " order by `unixdt` desc"
if limit > 0:
sql_query = sql_query + " LIMIT " + str(limit)
print(sql_query)
cursor.execute(sql_query)
return cursor.fetchall()
'''
def update_to_bigamountvout(self, datetime, txid, vout, voutn, vouttype, amount, height, days, buyin, sellout,
profit):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `bigamountvoutv3e` (`unixdt`, `vout`, `voutn`, `vouttype`, `amount`, `height`, `txid`, days, buyprice, sellprice, profit) VALUES (FROM_UNIXTIME(%s), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# print(sql_insert)
# print(datetime, txid, vout, voutalias, amount, height)
cursor.execute(sql_insert,
(datetime, vout, voutn, vouttype, amount, height, txid, days, buyin, sellout, profit))
self.conn.commit()
'''
# block check --- big amount tx
def query_from_bigamounttx(self, start_id=0, end_id=0, start_time="", end_time="", address="", limit=0):
with self.conn.cursor() as cursor:
sql_query = "SELECT * from `bigamounttx`"
if start_id > 0:
sql_query = sql_query + " WHERE id > " + str(start_id)
if end_id > 0:
sql_query = sql_query + " AND id < " + str(end_id)
else:
if end_id > 0:
sql_query = sql_query + " WHERE id < " + str(end_id)
if len(start_time) > 0:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(\'" + end_time + "\')"
else:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(NOW())"
else:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(NOW()) AND UNIX_TIMESTAMP(\'" + end_time + "\')"
sql_query = sql_query + " order by `unixdt` desc"
if limit > 0:
sql_query = sql_query + " LIMIT " + str(limit)
print(sql_query)
cursor.execute(sql_query)
return cursor.fetchall()
def update_to_bigamounttx(self, datetime, txid, amount, height):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `bigamounttx` (`unixdt`, `amount`, `height`, `txid`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s)"
#print(sql_insert)
#print(datetime, txid, amount, height)
cursor.execute(sql_insert, (datetime, amount, height, txid))
self.conn.commit()
# block check --- per block amount
def query_from_blockamount(self, start_id=0, end_id=0, start_time="", end_time="", limit=0, amount=0):
with self.conn.cursor() as cursor:
sql_query = "SELECT * from `blockamount`"
if start_id > 0:
sql_query = sql_query + " WHERE id > " + str(start_id)
if end_id > 0:
sql_query = sql_query + " AND id < " + str(end_id)
if amount > 0:
sql_query = sql_query + " AND amount > " + str(amount)
else:
if end_id > 0:
sql_query = sql_query + " WHERE id < " + str(end_id)
if amount > 0:
sql_query = sql_query + " AND amount > " + str(amount)
else:
if amount > 0:
sql_query = sql_query + "WHERE amount > " + str(amount)
if len(start_time) > 0:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(\'" + end_time + "\')"
else:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(NOW())"
if amount > 0:
sql_query = sql_query + " AND amount > " + str(amount)
else:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(NOW()) AND UNIX_TIMESTAMP(\'" + end_time + "\')"
if amount > 0:
sql_query = sql_query + " AND amount > " + str(amount)
sql_query = sql_query + " order by `unixdt` desc"
if limit > 0:
sql_query = sql_query + " LIMIT " + str(limit)
cursor.execute(sql_query)
return cursor.fetchall()
def update_to_blockamount(self, datetime, blockid, amount, height):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `blockamount` (`unixdt`, `amount`, `height`, `blockid`) VALUES (FROM_UNIXTIME(%s), %s, %s, %s)"
#print(sql_insert)
#print(datetime, blockid, amount, height)
cursor.execute(sql_insert, (datetime, amount, height, blockid))
self.conn.commit()
def delete_node_data(self, config):
with self.conn.cursor() as cursor:
sql_query = "DELETE FROM `blockamount`"
cursor.execute(sql_query)
sql_query = "DELETE FROM `bigamountvout`"
cursor.execute(sql_query)
sql_query = "DELETE FROM `bigamounttx`"
cursor.execute(sql_query)
self.conn.commit()
def update_realize_cap(self, dayutc, last_rv):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `dailyrcap` (`unixdt`, `rcap`) VALUES (FROM_UNIXTIME(%s), %s)"
#print(sql_insert)
#print(datetime, blockid, amount, height)
cursor.execute(sql_insert, (dayutc, last_rv))
self.conn.commit()
# daily realize cap
def query_from_realizecap(self, start_id=0, end_id=0, start_time="", end_time="", limit=0):
with self.conn.cursor() as cursor:
sql_query = "SELECT * from `dailyrcap`"
if start_id > 0:
sql_query = sql_query + " WHERE id > " + str(start_id)
if end_id > 0:
sql_query = sql_query + " AND id < " + str(end_id)
else:
if end_id > 0:
sql_query = sql_query + " WHERE id < " + str(end_id)
if len(start_time) > 0:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(\'" + end_time + "\')"
else:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(\'" + start_time + "\') AND UNIX_TIMESTAMP(NOW())"
else:
if len(end_time) > 0:
sql_query = sql_query + " WHERE UNIX_TIMESTAMP(unixdt) BETWEEN \
UNIX_TIMESTAMP(NOW()) AND UNIX_TIMESTAMP(\'" + end_time + "\')"
sql_query = sql_query + " order by `unixdt` desc"
if limit > 0:
sql_query = sql_query + " LIMIT " + str(limit)
print(sql_query)
cursor.execute(sql_query)
return cursor.fetchall()
def update_daily_addr(self, dayutc, last_add_cnt):
with self.conn.cursor() as cursor:
sql_insert = "INSERT INTO `dailyaddradd` (`unixdt`, `addcnt`) VALUES (FROM_UNIXTIME(%s), %s)"
#print(sql_insert)
#print(datetime, blockid, amount, height)
cursor.execute(sql_insert, (dayutc, last_add_cnt))
self.conn.commit()
def delete_daily_addr(self, config):
with self.conn.cursor() as cursor:
sql_query = "DELETE FROM `dailyaddradd`"
cursor.execute(sql_query)
self.conn.commit()
def delete_daily_rv(self, config):
with self.conn.cursor() as cursor:
sql_query = "DELETE FROM `dailyrcap`"
cursor.execute(sql_query)
self.conn.commit()
'''
def __del__(self):
self.conn.close()