Fixed bug with status of the contract for one-time-event type of contracts

This commit is contained in:
Vivek Teega 2023-05-06 13:53:46 +00:00
parent 71f32d96e4
commit 646e874d68

View File

@ -367,6 +367,12 @@ def find_sender_receiver(transaction_data):
return inputlist[0], outputlist[0]
def fetch_contract_status_time_info(contractName, contractAddress):
conn, c = create_database_connection('system_dbs')
c.execute('SELECT status, incorporationDate, expiryDate, closeDate FROM activecontracts WHERE contractName=="{}" AND contractAddress=="{}" ORDER BY id DESC LIMIT 1'.format(contractName, contractAddress))
contract_status_time_info = c.fetchall()
return contract_status_time_info
@app.route('/')
async def welcome_msg():
return jsonify('Welcome to RanchiMall FLO Api v2')
@ -1742,20 +1748,28 @@ async def getContractInfo_v2():
choice_list.append(contractStructure['exitconditions'][obj_key])
returnval['userChoices'] = choice_list
returnval.pop('exitconditions')
conn, c = create_database_connection('system_dbs')
c.execute('SELECT status, incorporationDate, expiryDate, closeDate FROM activecontracts WHERE contractName=="{}" AND contractAddress=="{}"'.format(contractName, contractAddress))
results = c.fetchall()
if len(results) == 1:
for result in results:
returnval['status'] = result[0]
returnval['incorporationDate'] = result[1]
if result[2]:
returnval['expiryDate'] = result[2]
if result[3]:
returnval['closeDate'] = result[3]
contract_status_time_info = fetch_contract_status_time_info(contractName, contractAddress)
if len(contract_status_time_info) == 1:
for status_time_info in contract_status_time_info:
returnval['status'] = status_time_info[0]
returnval['incorporationDate'] = status_time_info[1]
if status_time_info[2]:
returnval['expiryDate'] = status_time_info[2]
if status_time_info[3]:
returnval['closeDate'] = status_time_info[3]
# todo - add code to token tracker to save one-time-event subtype as part of contractStructure and remove the following line
returnval['contractSubtype'] = 'external-trigger'
elif contractStructure['contractType'] == 'one-time-event' and 'payeeAddress' in contractStructure.keys():
contract_status_time_info = fetch_contract_status_time_info(contractName, contractAddress)
if len(contract_status_time_info) == 1:
for status_time_info in contract_status_time_info:
returnval['status'] = status_time_info[0]
returnval['incorporationDate'] = status_time_info[1]
if status_time_info[2]:
returnval['expiryDate'] = status_time_info[2]
if status_time_info[3]:
returnval['closeDate'] = status_time_info[3]
returnval['contractSubtype'] = 'time-trigger'
return jsonify(contractName=contractName, contractAddress=contractAddress, contractInfo=returnval), 200
@ -2417,7 +2431,6 @@ async def priceData():
#######################
#######################
# if system.db isn't present, initialize it
if not os.path.isfile(f"system.db"):
# create an empty db