This commit is contained in:
Vivek Teega 2023-04-14 15:38:49 +00:00
commit 1e8b460be4
3 changed files with 28 additions and 25 deletions

1
.gitignore vendored
View File

@ -5,6 +5,7 @@ config.py
.idea/ .idea/
py3.7/ py3.7/
py3/ py3/
py3.8/
*.db *.db
*.code-workspace *.code-workspace
*.log *.log

View File

@ -1327,29 +1327,29 @@ async def tokenTransactions(token):
if senderFloAddress and not destFloAddress: if senderFloAddress and not destFloAddress:
if limit is None: if limit is None:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}"'.format(senderFloAddress)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}"'.format(senderFloAddress))
else: else:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}" LIMIT {}'.format(senderFloAddress, limit)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}" LIMIT {}'.format(senderFloAddress, limit))
elif not senderFloAddress and destFloAddress: elif not senderFloAddress and destFloAddress:
if limit is None: if limit is None:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE destFloAddress="{}"'.format(destFloAddress)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE destFloAddress="{}"'.format(destFloAddress))
else: else:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE destFloAddress="{}" LIMIT {}'.format(destFloAddress, limit)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE destFloAddress="{}" LIMIT {}'.format(destFloAddress, limit))
elif senderFloAddress and destFloAddress: elif senderFloAddress and destFloAddress:
if limit is None: if limit is None:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}"'.format(senderFloAddress, destFloAddress)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}"'.format(senderFloAddress, destFloAddress))
else: else:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" LIMIT {}'.format(senderFloAddress, destFloAddress, limit)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" LIMIT {}'.format(senderFloAddress, destFloAddress, limit))
else: else:
if limit is None: if limit is None:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory') c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory')
else: else:
c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory LIMIT {}'.format(limit)) c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory LIMIT {}'.format(limit))
transactionJsonData = c.fetchall() transactionJsonData = c.fetchall()
conn.close() conn.close()
rowarray_list = [] rowarray_list = []
sorted_list = sorted(transactionJsonData, key=itemgetter('blocktime'), reverse=True) sorted_list = sorted(transactionJsonData, key=itemgetter('time'), reverse=True)
for row in sorted_list: for row in sorted_list:
transactions_object = {} transactions_object = {}
transactions_object['transactionDetails'] = json.loads(row[0]) transactions_object['transactionDetails'] = json.loads(row[0])
@ -1516,14 +1516,14 @@ async def floAddressTransactions(floAddress):
conn.row_factory = sqlite3.Row conn.row_factory = sqlite3.Row
c = conn.cursor() c = conn.cursor()
if limit is None: if limit is None:
c.execute(f'SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY blocktime DESC') c.execute(f'SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY time DESC')
else: else:
c.execute(f'SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY blocktime DESC LIMIT {limit}') c.execute(f'SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY time DESC LIMIT {limit}')
transactionJsonData = c.fetchall() transactionJsonData = c.fetchall()
conn.close() conn.close()
allTransactionList = allTransactionList + transactionJsonData allTransactionList = allTransactionList + transactionJsonData
rowarray_list = [] rowarray_list = []
allTransactionList = sorted(allTransactionList, key=itemgetter('blocktime'), reverse=True) allTransactionList = sorted(allTransactionList, key=itemgetter('time'), reverse=True)
for row in allTransactionList: for row in allTransactionList:
tx = {} tx = {}
tx['transactionDetails'] = json.loads(row[0]) tx['transactionDetails'] = json.loads(row[0])
@ -2054,9 +2054,9 @@ async def transactiondetails1(transactionHash):
@app.route('/api/v2/latestTransactionDetails', methods=['GET']) @app.route('/api/v2/latestTransactionDetails', methods=['GET'])
async def latestTransactionDetails(): async def latestTransactionDetails():
numberOfLatestBlocks = request.args.get('numberOfLatestBlocks') limit = request.args.get('limit')
if numberOfLatestBlocks is not None and not check_integer(numberOfLatestBlocks): if limit is not None and not check_integer(limit):
return jsonify(description='numberOfLatestBlocks validation failed'), 400 return jsonify(description='limit validation failed'), 400
dblocation = dbfolder + '/latestCache.db' dblocation = dbfolder + '/latestCache.db'
if os.path.exists(dblocation): if os.path.exists(dblocation):
@ -2065,10 +2065,10 @@ async def latestTransactionDetails():
else: else:
return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 500 return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 500
if numberOfLatestBlocks is not None: if limit is not None:
c.execute('SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC LIMIT {}) ORDER BY id ASC;'.format(int(numberOfLatestBlocks))) c.execute('SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC LIMIT {}) ORDER BY id DESC;'.format(int(limit)))
else: else:
c.execute('''SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC) ORDER BY id ASC;''') c.execute('''SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC) ORDER BY id DESC;''')
latestTransactions = c.fetchall() latestTransactions = c.fetchall()
c.close() c.close()
tx_list = [] tx_list = []
@ -2098,15 +2098,17 @@ async def latestBlockDetails():
return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 404 return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 404
if limit is None: if limit is None:
c.execute('''SELECT * FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT 4) ORDER BY id ASC;''') c.execute('''SELECT jsonData FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT 4) ORDER BY id DESC;''')
else: else:
c.execute(f'SELECT * FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT {limit}) ORDER BY id ASC;') c.execute(f'SELECT jsonData FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT {limit}) ORDER BY id DESC;')
latestBlocks = c.fetchall() latestBlocks = c.fetchall()
c.close() c.close()
tempdict = {}
templst = []
for idx, item in enumerate(latestBlocks): for idx, item in enumerate(latestBlocks):
tempdict[json.loads(item[3])['hash']] = json.loads(item[3]) templst.append(json.loads(item[0]))
return jsonify(result='ok', latestBlocks=tempdict)
return jsonify(latestBlocks=templst), 200
@app.route('/api/v2/blockTransactions/<blockHash>', methods=['GET']) @app.route('/api/v2/blockTransactions/<blockHash>', methods=['GET'])
@ -2286,4 +2288,4 @@ scheduler.start()
atexit.register(lambda: scheduler.shutdown()) atexit.register(lambda: scheduler.shutdown())
if __name__ == "__main__": if __name__ == "__main__":
app.run(debug=debug_status, host='0.0.0.0', port=5009) app.run(debug=debug_status, host='0.0.0.0', port=5013)

View File

@ -17,7 +17,7 @@ Jinja2==2.10.1
MarkupSafe==1.1.1 MarkupSafe==1.1.1
multidict==4.5.2 multidict==4.5.2
priority==1.3.0 priority==1.3.0
pybtc==2.0.9 pyflo-lib==2.0.9
pycparser==2.19 pycparser==2.19
python-dateutil==2.8.0 python-dateutil==2.8.0
Quart==0.10.0 Quart==0.10.0