Merge branch 'v2' of https://github.com/ranchimall/ranchimallflo-api into v2
This commit is contained in:
commit
1e8b460be4
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@ config.py
|
|||||||
.idea/
|
.idea/
|
||||||
py3.7/
|
py3.7/
|
||||||
py3/
|
py3/
|
||||||
|
py3.8/
|
||||||
*.db
|
*.db
|
||||||
*.code-workspace
|
*.code-workspace
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user