Fixed rollback

This commit is contained in:
RanchiMall Dev 2023-08-12 17:51:13 +00:00
parent 63a3c2344c
commit 44aa304f61

View File

@ -157,7 +157,7 @@ def find_input_output_addresses(transaction_data):
querylist = [] querylist = []
for vin in transaction_data["vin"]: for vin in transaction_data["vin"]:
vinlist.append([vin["address"][0], float(vin["value"])]) vinlist.append([vin["addresses"][0], float(vin["value"])])
totalinputval = float(transaction_data["valueIn"]) totalinputval = float(transaction_data["valueIn"])
@ -210,17 +210,17 @@ def rollback_database(blockNumber, dbtype, dbname):
db_session = create_database_session_orm('token', {'token_name':dbname}, TokenBase) db_session = create_database_session_orm('token', {'token_name':dbname}, TokenBase)
while(True): while(True):
subqry = db_session.query(func.max(ActiveTable.id)) subqry = db_session.query(func.max(ActiveTable.id))
activeTable_entry = db_session.query(ActiveTable).filter(ActiveTable.id == subqry).first() activeTable_entry = db_session.query(ActiveTable).filter(ActiveTable.id == subqry).first()
if activeTable_entry.blockNumber <= blockNumber: if activeTable_entry.blockNumber <= blockNumber:
break break
outputAddress = activeTable_entry.address outputAddress = activeTable_entry.address
transferAmount = activeTable_entry.transferBalance transferAmount = activeTable_entry.transferBalance
inputAddress = None inputAddress = None
# Find out consumedpid and partially consumed pids # Find out consumedpid and partially consumed pids
parentid = None parentid = None
orphaned_parentid = None orphaned_parentid = None
consumedpid = None consumedpid = None
if activeTable_entry.parentid is not None: if activeTable_entry.parentid is not None:
parentid = activeTable_entry.parentid parentid = activeTable_entry.parentid
if activeTable_entry.orphaned_parentid is not None: if activeTable_entry.orphaned_parentid is not None:
@ -420,16 +420,16 @@ def initiate_rollback_process():
for db in db_names: for db in db_names:
if db.db_type in ['token', 'nft', 'infinite-token']: if db.db_type in ['token', 'nft', 'infinite-token']:
if db.blockNumber > rollback_block: if db.blockNumber > rollback_block:
delete_database(rollback_block, f"{db.db_name}") delete_database(rollback_block, f"{db.db_name}")
else: else:
rollback_database(rollback_block, 'token', f"{db.db_name}") rollback_database(rollback_block, 'token', f"{db.db_name}")
elif db.db_type in ['smartcontract']: elif db.db_type in ['smartcontract']:
if db.blockNumber > rollback_block: if db.blockNumber > rollback_block:
delete_database(rollback_block, f"{db.db_name}") delete_database(rollback_block, f"{db.db_name}")
else: else:
db_split = db.db_name.rsplit('-',1) db_split = db.db_name.rsplit('-',1)
db_name = {'contract_name':db_split[0], 'contract_address':db_split[1]} db_name = {'contract_name':db_split[0], 'contract_address':db_split[1]}
rollback_database(rollback_block, 'smartcontract', db_name) rollback_database(rollback_block, 'smartcontract', db_name)
''' '''
for token_db in tokendb_set: for token_db in tokendb_set: