Fixing time issues

This commit is contained in:
Vivek Teega 2019-05-25 19:34:04 +05:30
parent 521668a5ee
commit 4d4d8f3747

View File

@ -14,7 +14,7 @@ from sqlalchemy import create_engine, func, desc
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractParticipantMapping from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractParticipantMapping
committeeAddressList = ['oUc4dVvxwK7w5MHUHtev8UawN3eDjiZnNx'] committeeAddressList = ['of6zWQ2aySxEtd4c51cuXVzsTBHnQuWF6z']
def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress): def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress):
@ -176,8 +176,8 @@ def checkLocaltriggerContracts(blockinfo):
parse_string = '{}/{}/{} {}'.format(expirytime_split[3], parsing.months[expirytime_split[1]], parse_string = '{}/{}/{} {}'.format(expirytime_split[3], parsing.months[expirytime_split[1]],
expirytime_split[2], expirytime_split[4]) expirytime_split[2], expirytime_split[4])
expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace( expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace(
tzinfo=expirytime_split[5]) tzinfo=expirytime_split[5][3:])
blocktime_object = parsing.arrow.get(blockinfo['time']) blocktime_object = parsing.arrow.get(blockinfo['time']).to('IST')
if blocktime_object > expirytime_object: if blocktime_object > expirytime_object:
if 'minimumsubscriptionamount' in list(contractStructure_T[1]): if 'minimumsubscriptionamount' in list(contractStructure_T[1]):
@ -225,8 +225,8 @@ def checkLocaltriggerContracts(blockinfo):
expirytime_split = expiryTime.split(' ') expirytime_split = expiryTime.split(' ')
parse_string = '{}/{}/{} {}'.format(expirytime_split[3], parsing.months[expirytime_split[1]], expirytime_split[2], expirytime_split[4]) parse_string = '{}/{}/{} {}'.format(expirytime_split[3], parsing.months[expirytime_split[1]], expirytime_split[2], expirytime_split[4])
expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace( expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace(
tzinfo=expirytime_split[5]) tzinfo=expirytime_split[5][3:])
blocktime_object = parsing.arrow.get(blockinfo['time']) blocktime_object = parsing.arrow.get(blockinfo['time']).to('IST')
if blocktime_object > expirytime_object: if blocktime_object > expirytime_object:
if 'minimumsubscriptionamount' in list(contractStructure_T[1]): if 'minimumsubscriptionamount' in list(contractStructure_T[1]):
@ -414,8 +414,8 @@ def startWorking(transaction_data, parsed_data, blockinfo):
expirytime = result[0].value.strip() expirytime = result[0].value.strip()
expirytime_split = expirytime.split(' ') expirytime_split = expirytime.split(' ')
parse_string = '{}/{}/{} {}'.format( expirytime_split[3], parsing.months[expirytime_split[1]], expirytime_split[2], expirytime_split[4]) parse_string = '{}/{}/{} {}'.format( expirytime_split[3], parsing.months[expirytime_split[1]], expirytime_split[2], expirytime_split[4])
expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace(tzinfo=expirytime_split[5]) expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace(tzinfo=expirytime_split[5][3:])
blocktime_object = parsing.arrow.get(blockinfo['time']) blocktime_object = parsing.arrow.get(blockinfo['time']).to('IST')
if blocktime_object > expirytime_object: if blocktime_object > expirytime_object:
print('Contract has expired and will not accept any user participation') print('Contract has expired and will not accept any user participation')
@ -677,7 +677,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
connection = engine.connect() connection = engine.connect()
# todo : filter activeContracts which only have local triggers # todo : filter activeContracts which only have local triggers
contractStructure = connection.execute('select * from contractstructure').fetchall() contractStructure = connection.execute('select * from contractstructure').fetchall()
contractStructure_T = list(zip(*contractstructure)) contractStructure_T = list(zip(*contractStructure))
if 'maximumsubscriptionamount' in list(contractStructure_T[1]): if 'maximumsubscriptionamount' in list(contractStructure_T[1]):
maximumsubscriptionamount = connection.execute('select value from contractstructure where attribute=="maximumsubscriptionamount"').fetchall()[0][0] maximumsubscriptionamount = connection.execute('select value from contractstructure where attribute=="maximumsubscriptionamount"').fetchall()[0][0]
@ -690,7 +690,7 @@ def startWorking(transaction_data, parsed_data, blockinfo):
tokenSum = connection.execute('select sum(tokenAmount) from contractparticipants').fetchall()[0][0] tokenSum = connection.execute('select sum(tokenAmount) from contractparticipants').fetchall()[0][0]
winnerSum = connection.execute( winnerSum = connection.execute(
'select sum(tokenAmount) from contractparticipants where userChoice="{}"'.format( 'select sum(tokenAmount) from contractparticipants where userChoice="{}"'.format(
parsed_data['triggerCondition'])).fetchall() parsed_data['triggerCondition'])).fetchall()[0][0]
tokenIdentification = connection.execute( tokenIdentification = connection.execute(
'select value from contractstructure where attribute="tokenIdentification"').fetchall()[0][0] 'select value from contractstructure where attribute="tokenIdentification"').fetchall()[0][0]
connection.close() connection.close()
@ -710,13 +710,13 @@ def startWorking(transaction_data, parsed_data, blockinfo):
# Check if contract has passed expiry time # Check if contract has passed expiry time
expiryTime = connection.execute('select value from contractstructure where attibute=="expiryTime"').fetchall()[0][0] expiryTime = connection.execute('select value from contractstructure where attribute=="expiryTime"').fetchall()[0][0]
expirytime_split = expiryTime.split(' ') expirytime_split = expiryTime.split(' ')
parse_string = '{}/{}/{} {}'.format(expirytime_split[3], parsing.months[expirytime_split[1]], parse_string = '{}/{}/{} {}'.format(expirytime_split[3], parsing.months[expirytime_split[1]],
expirytime_split[2], expirytime_split[4]) expirytime_split[2], expirytime_split[4])
expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace( expirytime_object = parsing.arrow.get(parse_string, 'YYYY/M/D HH:mm:ss').replace(
tzinfo=expirytime_split[5]) tzinfo=expirytime_split[5][3:])
blocktime_object = parsing.arrow.get(blockinfo['time']) blocktime_object = parsing.arrow.get(blockinfo['time']).to('IST')
connection.close() connection.close()
if blocktime_object > expirytime_object: if blocktime_object > expirytime_object:
@ -772,11 +772,12 @@ def startWorking(transaction_data, parsed_data, blockinfo):
connection = engine.connect() connection = engine.connect()
contractWinners = connection.execute('select * from contractparticipants where userChoice="{}"'.format(parsed_data['triggerCondition'])).fetchall() contractWinners = connection.execute('select * from contractparticipants where userChoice="{}"'.format(parsed_data['triggerCondition'])).fetchall()
tokenSum = connection.execute('select sum(tokenAmount) from contractparticipants').fetchall()[0][0] tokenSum = connection.execute('select sum(tokenAmount) from contractparticipants').fetchall()[0][0]
winnerSum = connection.execute('select sum(tokenAmount) from contractparticipants where userChoice="{}"'.format(parsed_data['triggerCondition'])).fetchall() winnerSum = connection.execute('select sum(tokenAmount) from contractparticipants where userChoice="{}"'.format(parsed_data['triggerCondition'])).fetchall()[0][0]
tokenIdentification = connection.execute('select value from contractstructure where attribute="tokenIdentification"').fetchall()[0][0] tokenIdentification = connection.execute('select value from contractstructure where attribute="tokenIdentification"').fetchall()[0][0]
connection.close() connection.close()
for winner in contractWinners: for winner in contractWinners:
winner = list(winner)
returnval = transferToken(tokenIdentification, (winner[2]/winnerSum)*tokenSum, outputlist[0], winner[1]) returnval = transferToken(tokenIdentification, (winner[2]/winnerSum)*tokenSum, outputlist[0], winner[1])
if returnval is None: if returnval is None:
print( print(