From 2686bb70fc6f6f9999b49f54aad079d625d3debb Mon Sep 17 00:00:00 2001 From: Vivek Teega Date: Fri, 27 Jan 2023 07:37:43 +0000 Subject: [PATCH] Added senderAddress and receiverAddress along with the transactionDetails API --- ranchimallflo_api.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/ranchimallflo_api.py b/ranchimallflo_api.py index 4289400..aa9f31d 100644 --- a/ranchimallflo_api.py +++ b/ranchimallflo_api.py @@ -70,11 +70,9 @@ def blockdetailhelper(blockdetail): c = conn.cursor() if blockHash: - c.execute( - f"select jsonData from latestBlocks where blockHash='{blockHash}'") + c.execute(f"select jsonData from latestBlocks where blockHash='{blockHash}'") elif blockHeight: - c.execute( - f"select jsonData from latestBlocks where blockNumber='{blockHeight}'") + c.execute(f"select jsonData from latestBlocks where blockNumber='{blockHeight}'") blockJson = c.fetchall() return blockJson @@ -175,6 +173,15 @@ def fetchContractStatus(contractName, contractAddress): else: return status[0][0] +def extract_ip_op_addresses(transactionJson): + sender_address = transactionJson['vin'][0]['addr'] + receiver_address = None + for utxo in transactionJson['vout']: + if utxo['scriptPubKey']['addresses'][0] == sender_address: + continue + receiver_address = utxo['scriptPubKey']['addresses'][0] + return sender_address, receiver_address + @app.route('/') async def welcome_msg(): @@ -1717,6 +1724,7 @@ async def transactiondetails1(transactionHash): parseResult = json.loads(transactionJsonData[0][1]) operation = transactionJsonData[0][2] db_reference = transactionJsonData[0][3] + sender_address, receiver_address = extract_ip_op_addresses(transactionJson) operationDetails = {} @@ -1782,7 +1790,7 @@ async def transactiondetails1(transactionHash): if winningAmount[0][0] is not None: operationDetails['winningAmount'] = winningAmount[0][0] - return jsonify(parsedFloData=parseResult, transactionDetails=transactionJson, transactionHash=transactionHash, operation=operation, operationDetails=operationDetails), 200 + return jsonify(parsedFloData=parseResult, transactionDetails=transactionJson, transactionHash=transactionHash, operation=operation, operationDetails=operationDetails, senderAddress=sender_address, receiverAddress=receiver_address), 200 else: return jsonify(description='Transaction doesn\'t exist in database'), 404