Adding parsedFloData to APIs which provide transaction details

This commit is contained in:
Vivek Teega 2020-01-07 09:47:17 +05:30
parent 77628d206a
commit c81d7e8627

View File

@ -124,42 +124,43 @@ async def getTokenTransactions():
if senderFloAddress and not destFloAddress: if senderFloAddress and not destFloAddress:
if limit is None: if limit is None:
c.execute('SELECT jsonData FROM transactionHistory WHERE sourceFloAddress="{}" ORDER BY id DESC LIMIT 100'.format(senderFloAddress)) c.execute('SELECT jsonData, parsedFloData FROM transactionHistory WHERE sourceFloAddress="{}" ORDER BY id DESC LIMIT 100'.format(senderFloAddress))
else: else:
c.execute('SELECT jsonData FROM transactionHistory WHERE sourceFloAddress="{}" ORDER BY id DESC LIMIT {}'.format(senderFloAddress,limit)) c.execute('SELECT jsonData, parsedFloData FROM transactionHistory WHERE sourceFloAddress="{}" ORDER BY id DESC LIMIT {}'.format(senderFloAddress,limit))
elif not senderFloAddress and destFloAddress: elif not senderFloAddress and destFloAddress:
if limit is None: if limit is None:
c.execute( c.execute(
'SELECT jsonData FROM transactionHistory WHERE destFloAddress="{}" ORDER BY id DESC LIMIT 100'.format( 'SELECT jsonData, parsedFloData FROM transactionHistory WHERE destFloAddress="{}" ORDER BY id DESC LIMIT 100'.format(
destFloAddress)) destFloAddress))
else: else:
c.execute( c.execute(
'SELECT jsonData FROM transactionHistory WHERE destFloAddress="{}" ORDER BY id DESC LIMIT {}'.format( 'SELECT jsonData, parsedFloData FROM transactionHistory WHERE destFloAddress="{}" ORDER BY id DESC LIMIT {}'.format(
destFloAddress, limit)) destFloAddress, limit))
elif senderFloAddress and destFloAddress: elif senderFloAddress and destFloAddress:
if limit is None: if limit is None:
c.execute( c.execute(
'SELECT jsonData FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" ORDER BY id DESC LIMIT 100'.format( 'SELECT jsonData, parsedFloData FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" ORDER BY id DESC LIMIT 100'.format(
senderFloAddress, destFloAddress)) senderFloAddress, destFloAddress))
else: else:
c.execute( c.execute(
'SELECT jsonData FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" ORDER BY id DESC LIMIT {}'.format( 'SELECT jsonData, parsedFloData FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" ORDER BY id DESC LIMIT {}'.format(
senderFloAddress, destFloAddress, limit)) senderFloAddress, destFloAddress, limit))
else: else:
if limit is None: if limit is None:
c.execute( c.execute(
'SELECT jsonData FROM transactionHistory ORDER BY id DESC LIMIT 100') 'SELECT jsonData, parsedFloData FROM transactionHistory ORDER BY id DESC LIMIT 100')
else: else:
c.execute( c.execute(
'SELECT jsonData FROM transactionHistory ORDER BY id DESC LIMIT {}'.format(limit)) 'SELECT jsonData, parsedFloData FROM transactionHistory ORDER BY id DESC LIMIT {}'.format(limit))
latestTransactions = c.fetchall() transactionJsonData = c.fetchall()
conn.close() conn.close()
rowarray_list = {} rowarray_list = {}
for row in latestTransactions: for row in transactionJsonData:
jsonData = row[row.keys()[0]] temp = {}
jsonData = json.loads(jsonData) temp['transactionDetails'] = json.loads(row[0])
rowarray_list[jsonData['txid']]=jsonData temp['parseResult'] = json.loads(row[1])
rowarray_list[temp['transactionDetails']['txid']] = temp
return jsonify(result='ok', token=token, transactions=rowarray_list) return jsonify(result='ok', token=token, transactions=rowarray_list)
@ -296,7 +297,7 @@ async def getAddressBalance():
@app.route('/api/v1.0/getFloAddressTransactions', methods=['GET']) @app.route('/api/v1.0/getFloAddressTransactions', methods=['GET'])
async def getAddressTransactions(): async def getFloAddressTransactions():
floAddress = request.args.get('floAddress') floAddress = request.args.get('floAddress')
token = request.args.get('token') token = request.args.get('token')
limit = request.args.get('limit') limit = request.args.get('limit')
@ -308,9 +309,9 @@ async def getAddressTransactions():
dblocation = dbfolder + '/system.db' dblocation = dbfolder + '/system.db'
if os.path.exists(dblocation): if os.path.exists(dblocation):
conn = sqlite3.connect(dblocation) conn = sqlite3.connect(dblocation)
c = conn.cursor() c = conn.cursor()
c.execute('select token from tokenAddressMapping where tokenAddress="{}"'.format(floAddress)) c.execute('select token from tokenAddressMapping where tokenAddress="{}"'.format(floAddress))
tokenNames = c.fetchall() tokenNames = c.fetchall()
else: else:
dblocation = dbfolder + '/tokens/' + str(token) + '.db' dblocation = dbfolder + '/tokens/' + str(token) + '.db'
if os.path.exists(dblocation): if os.path.exists(dblocation):
@ -330,17 +331,17 @@ async def getAddressTransactions():
conn = sqlite3.connect(dblocation) conn = sqlite3.connect(dblocation)
c = conn.cursor() c = conn.cursor()
if limit is None: if limit is None:
c.execute('SELECT jsonData FROM transactionHistory WHERE sourceFloAddress="{}" OR destFloAddress="{}" ORDER BY id DESC LIMIT 100'.format(floAddress, floAddress)) c.execute('SELECT jsonData, parsedFloData FROM transactionHistory WHERE sourceFloAddress="{}" OR destFloAddress="{}" ORDER BY id DESC LIMIT 100'.format(floAddress, floAddress))
else: else:
c.execute('SELECT jsonData FROM transactionHistory WHERE sourceFloAddress="{}" OR destFloAddress="{}" ORDER BY id DESC LIMIT {}'.format(floAddress, floAddress, limit)) c.execute('SELECT jsonData, parsedFloData FROM transactionHistory WHERE sourceFloAddress="{}" OR destFloAddress="{}" ORDER BY id DESC LIMIT {}'.format(floAddress, floAddress, limit))
latestTransactions = c.fetchall() transactionJsonData = c.fetchall()
conn.close() conn.close()
rowarray_list = [] for row in transactionJsonData:
for row in latestTransactions: temp = {}
row = json.loads(row[0]) temp['transactionDetails'] = json.loads(row[0])
row['token'] = str(tokenname) temp['parseResult'] = json.loads(row[1])
allTransactionList[row['txid']] = row allTransactionList[temp['transactionDetails']['txid']] = temp
if token is None: if token is None:
return jsonify(result='ok', floAddress=floAddress, transactions=allTransactionList) return jsonify(result='ok', floAddress=floAddress, transactions=allTransactionList)
@ -750,14 +751,17 @@ async def getsmartcontracttransactions():
# Make db connection and fetch data # Make db connection and fetch data
conn = sqlite3.connect(filelocation) conn = sqlite3.connect(filelocation)
c = conn.cursor() c = conn.cursor()
c.execute('select jsonData from contractTransactionHistory') c.execute('select jsonData, parsedFloData from contractTransactionHistory')
result = c.fetchall() result = c.fetchall()
conn.close() conn.close()
returnval = {} returnval = {}
for transaction in result: for item in result:
transactionJson = json.loads(transaction[0]) temp = {}
returnval[transactionJson['txid']] = transactionJson temp['transactionDetails'] = json.loads(item[0])
temp['parseResult'] = json.loads(item[1])
returnval[temp['transactionDetails']['txid']] = temp
return jsonify(result='ok', contractName=contractName, contractAddress=contractAddress, contractTransactions=returnval) return jsonify(result='ok', contractName=contractName, contractAddress=contractAddress, contractTransactions=returnval)
else: else: