adding extra fields for latest transactions

This commit is contained in:
Vivek Teega 2019-08-30 12:23:31 +00:00
parent 9c909b6d09
commit 46ccce5f81
2 changed files with 21 additions and 12 deletions

View File

@ -117,5 +117,14 @@ class LatestTransactions(LatestCacheBase):
id = Column('id', Integer, primary_key=True) id = Column('id', Integer, primary_key=True)
transactionHash = Column('transactionHash', String) transactionHash = Column('transactionHash', String)
jsonData = Column('jsonData', String) jsonData = Column('jsonData', String)
transactionType = Column('transactionType', String)
parsedFloData = Column('parsedFloData', String)
class LatestBlocks(LatestCacheBase):
__tablename__ = "latestBlocks"
id = Column('id', Integer, primary_key=True)
blockNo = Column('blockNo', String)
blockHash = Column('blockHash', String)
jsonData = Column('jsonData', String)

View File

@ -11,7 +11,7 @@ import os
import shutil import shutil
from sqlalchemy.orm import sessionmaker, relationship from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy import create_engine, func, desc from sqlalchemy import create_engine, func, desc
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractParticipantMapping, LatestTransactions, LatestCacheBase from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractParticipantMapping, LatestTransactions, LatestCacheBase, LatestBlocks
from config import * from config import *
import pybtc import pybtc
import socketio import socketio
@ -101,17 +101,17 @@ def processApiBlock(blockhash):
checkLocaltriggerContracts(blockinfo) checkLocaltriggerContracts(blockinfo)
def updateLatestTransaction(transactionData): def updateLatestTransaction(transactionData, parsed_data):
# connect to latest transaction db # connect to latest transaction db
conn = sqlite3.connect('latestCache.db') conn = sqlite3.connect('latestCache.db')
conn.execute("INSERT INTO latestTransactions(transactionHash, jsonData) VALUES (?,?)", (transactionData['hash'], str(transactionData))) conn.execute("INSERT INTO latestTransactions(transactionHash, jsonData, transactionType, parsedFloData) VALUES (?,?,?,?)", (transactionData['hash'], json.dumps(transactionData), parsed_data['type'], json.dumps(parsed_data)))
conn.commit() conn.commit()
conn.close() conn.close()
def updateLatestBlock(blockData): def updateLatestBlock(blockData):
# connect to latest block db # connect to latest block db
conn = sqlite3.connect('latestCache.db') conn = sqlite3.connect('latestCache.db')
#conn.execute('INSERT INTO latestBlocks(blockNumber, blockHash, jsonData) VALUES (?,?, ?)',(blockData['height'],),(blockData['hash'],),(str(transactionData),)) conn.execute('INSERT INTO latestBlocks(blockNumber, blockHash, jsonData) VALUES (?,?,?)',(blockData['height'], blockData['hash'], json.dumps(blockData)))
conn.commit() conn.commit()
conn.close() conn.close()
@ -508,7 +508,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
pushData_SSEapi('Error | Something went wrong while doing the internal db transactions for {}'.format(transaction_data['txid'])) pushData_SSEapi('Error | Something went wrong while doing the internal db transactions for {}'.format(transaction_data['txid']))
return return
else: else:
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
# If this is the first interaction of the outputlist's address with the given token name, add it to token mapping # If this is the first interaction of the outputlist's address with the given token name, add it to token mapping
engine = create_engine('sqlite:///system.db', echo=True) engine = create_engine('sqlite:///system.db', echo=True)
@ -655,7 +655,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
contractName = parsed_data['contractName'], contractAddress = outputlist[0], transactionHash=transaction_data['txid'])) contractName = parsed_data['contractName'], contractAddress = outputlist[0], transactionHash=transaction_data['txid']))
session.commit() session.commit()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
return return
else: else:
@ -682,7 +682,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
contractName=parsed_data['contractName'], contractAddress = outputlist[0], transactionHash=transaction_data['txid'])) contractName=parsed_data['contractName'], contractAddress = outputlist[0], transactionHash=transaction_data['txid']))
session.commit() session.commit()
session.close() session.close()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
return return
else: else:
@ -711,7 +711,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
contractAddress=outputlist[0], transactionHash=transaction_data['txid'])) contractAddress=outputlist[0], transactionHash=transaction_data['txid']))
session.commit() session.commit()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
pushData_SSEapi('Participation | Succesfully participated in the contract {}-{} at transaction {}'.format( pushData_SSEapi('Participation | Succesfully participated in the contract {}-{} at transaction {}'.format(
parsed_data['contractName'], outputlist[0], parsed_data['contractName'], outputlist[0],
@ -750,7 +750,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
connection.close() connection.close()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
pushData_SSEapi('Token | Succesfully incorporated token {} at transaction {}'.format( pushData_SSEapi('Token | Succesfully incorporated token {} at transaction {}'.format(
parsed_data['tokenIdentification'], transaction_data['txid'])) parsed_data['tokenIdentification'], transaction_data['txid']))
@ -842,7 +842,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
session.commit() session.commit()
session.close() session.close()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
pushData_SSEapi('Contract | Contract incorporated at transaction {} with name {}-{}'.format( pushData_SSEapi('Contract | Contract incorporated at transaction {} with name {}-{}'.format(
transaction_data['txid'], parsed_data['contractName'], parsed_data['contractAddress'])) transaction_data['txid'], parsed_data['contractName'], parsed_data['contractAddress']))
@ -925,7 +925,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
parsed_data['contractName'], outputlist[0])) parsed_data['contractName'], outputlist[0]))
connection.close() connection.close()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
pushData_SSEapi('Trigger | Contract triggered of the name {}-{} is active currentlyt at transaction {}'.format(parsed_data['contractName'], outputlist[0], transaction_data['txid'])) pushData_SSEapi('Trigger | Contract triggered of the name {}-{} is active currentlyt at transaction {}'.format(parsed_data['contractName'], outputlist[0], transaction_data['txid']))
return return
@ -1029,7 +1029,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
parsed_data['contractName'], outputlist[0])) parsed_data['contractName'], outputlist[0]))
connection.close() connection.close()
updateLatestTransaction(transaction_data) updateLatestTransaction(transaction_data, parsed_data)
pushData_SSEapi('Trigger | Contract triggered of the name {}-{} is active currentlyt at transaction {}'.format( pushData_SSEapi('Trigger | Contract triggered of the name {}-{} is active currentlyt at transaction {}'.format(
parsed_data['contractName'], outputlist[0], transaction_data['txid'])) parsed_data['contractName'], outputlist[0], transaction_data['txid']))