From b396bc1f746afe9994b3408d10f242d64f142d04 Mon Sep 17 00:00:00 2001 From: RanchiMall Dev Date: Fri, 9 Jun 2023 19:55:49 +0000 Subject: [PATCH] Critical bug fix for infinite token addressBalance --- tracktokens_smartcontracts.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tracktokens_smartcontracts.py b/tracktokens_smartcontracts.py index c001eb2..87f59a9 100755 --- a/tracktokens_smartcontracts.py +++ b/tracktokens_smartcontracts.py @@ -18,6 +18,7 @@ from datetime import datetime from ast import literal_eval from models import SystemData, TokenBase, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, TokenContractAssociation, ContractBase, ContractStructure, ContractParticipants, ContractTransactionHistory, ContractDeposits, ConsumedInfo, ContractWinners, ContinuosContractBase, ContractStructure2, ContractParticipants2, ContractDeposits2, ContractTransactionHistory2, SystemBase, ActiveContracts, SystemData, ContractAddressMapping, TokenAddressMapping, DatabaseTypeMapping, TimeActions, RejectedContractTransactionHistory, RejectedTransactionHistory, LatestCacheBase, LatestTransactions, LatestBlocks from statef_processing import process_stateF +import pdb def newMultiRequest(apicall): @@ -39,10 +40,10 @@ def newMultiRequest(apicall): def pushData_SSEapi(message): - signature = pyflo.sign_message(message.encode(), privKey) + '''signature = pyflo.sign_message(message.encode(), privKey) headers = {'Accept': 'application/json', 'Content-Type': 'application/json', 'Signature': signature} - '''try: + try: r = requests.post(sseAPI_url, json={'message': '{}'.format(message)}, headers=headers) except: logger.error("couldn't push the following message to SSE api {}".format(message))''' @@ -506,8 +507,10 @@ def processBlock(blockindex=None, blockhash=None): 'ec6604d147d99ec41f05dec82f9c241815358015904fad37ace061d7580b178e', '39ef49e0e06438bda462c794955735e7ea3ae81cb576ec5c97b528c8a257614c', 'd36b744d6b9d8a694a93476dbd1134dbdc8223cf3d1a604447acb09221aa3b49', - '64abe801d12224d10422de88070a76ad8c6d17b533ba5288fb0961b4cbf6adf4']: + '64abe801d12224d10422de88070a76ad8c6d17b533ba5288fb0961b4cbf6adf4', + 'e0f728ec71bef67d17c94d66e051ae4a611ec28454443337b268e5efc0a5f12f']: print(f'Paused at transaction {transaction}') + pdb.set_trace() # TODO CLEANUP - REMOVE THIS WHILE SECTION, WHY IS IT HERE? while(current_index == -1): @@ -589,7 +592,14 @@ def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress, if isInfiniteToken == True: # Make new entry - session.add(ActiveTable(address=outputAddress, consumedpid='1', transferBalance=float(tokenAmount), blockNumber=blockinfo['height'])) + receiverAddress_details = session.query(ActiveTable).filter(ActiveTable.address==outputAddress, ActiveTable.addressBalance!=None).first() + if receiverAddress_details is None: + addressBalance = commentTransferAmount + else: + addressBalance = receiverAddress_details.addressBalance + commentTransferAmount + receiverAddress_details.addressBalance = None + session.add(ActiveTable(address=outputAddress, consumedpid='1', transferBalance=float(tokenAmount), addressBalance=addressBalance, blockNumber=blockinfo['height'])) + add_transaction_history(token_name=tokenIdentification, sourceFloAddress=inputAddress, destFloAddress=outputAddress, transferAmount=tokenAmount, blockNumber=blockinfo['height'], blockHash=blockinfo['hash'], blocktime=blockinfo['time'], transactionHash=transaction_data['txid'], jsonData=json.dumps(transaction_data), transactionType=parsed_data['type'], parsedFloData=json.dumps(parsed_data)) session.commit() session.close()