From 1fde179a32e0a92e159e7018d43978442e4e23ca Mon Sep 17 00:00:00 2001 From: RanchiMall Dev Date: Sat, 8 Apr 2023 09:29:02 +0000 Subject: [PATCH 1/4] Fixed the change in transactions columns, from blocktime -> time --- ranchimallflo_api.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ranchimallflo_api.py b/ranchimallflo_api.py index adc9092..aa279a4 100644 --- a/ranchimallflo_api.py +++ b/ranchimallflo_api.py @@ -1327,29 +1327,29 @@ async def tokenTransactions(token): if senderFloAddress and not destFloAddress: if limit is None: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}"'.format(senderFloAddress)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}"'.format(senderFloAddress)) else: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}" LIMIT {}'.format(senderFloAddress, limit)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}" LIMIT {}'.format(senderFloAddress, limit)) elif not senderFloAddress and destFloAddress: if limit is None: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE destFloAddress="{}"'.format(destFloAddress)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE destFloAddress="{}"'.format(destFloAddress)) else: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE destFloAddress="{}" LIMIT {}'.format(destFloAddress, limit)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE destFloAddress="{}" LIMIT {}'.format(destFloAddress, limit)) elif senderFloAddress and destFloAddress: if limit is None: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}"'.format(senderFloAddress, destFloAddress)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}"'.format(senderFloAddress, destFloAddress)) else: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" LIMIT {}'.format(senderFloAddress, destFloAddress, limit)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{}" AND destFloAddress="{}" LIMIT {}'.format(senderFloAddress, destFloAddress, limit)) else: if limit is None: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory') + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory') else: - c.execute('SELECT jsonData, parsedFloData, blocktime FROM transactionHistory LIMIT {}'.format(limit)) + c.execute('SELECT jsonData, parsedFloData, time FROM transactionHistory LIMIT {}'.format(limit)) transactionJsonData = c.fetchall() conn.close() rowarray_list = [] - sorted_list = sorted(transactionJsonData, key=itemgetter('blocktime'), reverse=True) + sorted_list = sorted(transactionJsonData, key=itemgetter('time'), reverse=True) for row in sorted_list: transactions_object = {} transactions_object['transactionDetails'] = json.loads(row[0]) @@ -1516,14 +1516,14 @@ async def floAddressTransactions(floAddress): conn.row_factory = sqlite3.Row c = conn.cursor() if limit is None: - c.execute(f'SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY blocktime DESC') + c.execute(f'SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY time DESC') else: - c.execute(f'SELECT jsonData, parsedFloData, blocktime FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY blocktime DESC LIMIT {limit}') + c.execute(f'SELECT jsonData, parsedFloData, time FROM transactionHistory WHERE sourceFloAddress="{floAddress}" OR destFloAddress="{floAddress}" ORDER BY time DESC LIMIT {limit}') transactionJsonData = c.fetchall() conn.close() allTransactionList = allTransactionList + transactionJsonData rowarray_list = [] - allTransactionList = sorted(allTransactionList, key=itemgetter('blocktime'), reverse=True) + allTransactionList = sorted(allTransactionList, key=itemgetter('time'), reverse=True) for row in allTransactionList: tx = {} tx['transactionDetails'] = json.loads(row[0]) From c46c45e6b98a490398eef646234b1b1c513d7d97 Mon Sep 17 00:00:00 2001 From: RanchiMall Dev Date: Sat, 8 Apr 2023 09:29:23 +0000 Subject: [PATCH 2/4] Updated gitignore and requirements.txt --- .gitignore | 1 + requirements.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 184331f..ffa4bf3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ config.py .idea/ py3.7/ py3/ +py3.8/ *.db *.code-workspace *.log diff --git a/requirements.txt b/requirements.txt index cd8dbd7..5166ca8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,7 +17,7 @@ Jinja2==2.10.1 MarkupSafe==1.1.1 multidict==4.5.2 priority==1.3.0 -pybtc==2.0.9 +pyflo-lib==2.0.9 pycparser==2.19 python-dateutil==2.8.0 Quart==0.10.0 From 26444acca983151977ab0b13ceb5275fbab14f07 Mon Sep 17 00:00:00 2001 From: RanchiMall Dev Date: Sat, 8 Apr 2023 09:56:17 +0000 Subject: [PATCH 3/4] Changed api/v2/latestTransactionDetails parameter to v2 --- ranchimallflo_api.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ranchimallflo_api.py b/ranchimallflo_api.py index aa279a4..d73fc85 100644 --- a/ranchimallflo_api.py +++ b/ranchimallflo_api.py @@ -2020,9 +2020,9 @@ async def transactiondetails1(transactionHash): @app.route('/api/v2/latestTransactionDetails', methods=['GET']) async def latestTransactionDetails(): - numberOfLatestBlocks = request.args.get('numberOfLatestBlocks') - if numberOfLatestBlocks is not None and not check_integer(numberOfLatestBlocks): - return jsonify(description='numberOfLatestBlocks validation failed'), 400 + limit = request.args.get('limit') + if limit is not None and not check_integer(limit): + return jsonify(description='limit validation failed'), 400 dblocation = dbfolder + '/latestCache.db' if os.path.exists(dblocation): @@ -2031,8 +2031,8 @@ async def latestTransactionDetails(): else: return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 500 - if numberOfLatestBlocks is not None: - c.execute('SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC LIMIT {}) ORDER BY id ASC;'.format(int(numberOfLatestBlocks))) + if limit is not None: + c.execute('SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC LIMIT {}) ORDER BY id ASC;'.format(int(limit))) else: c.execute('''SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC) ORDER BY id ASC;''') latestTransactions = c.fetchall() From 9731999833b7de7e8728b50a503188ed4c1f1588 Mon Sep 17 00:00:00 2001 From: RanchiMall Dev Date: Sat, 8 Apr 2023 17:31:20 +0000 Subject: [PATCH 4/4] Fixed order to descending for latestBlocks and latestTransactions --- ranchimallflo_api.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ranchimallflo_api.py b/ranchimallflo_api.py index d73fc85..db30b22 100644 --- a/ranchimallflo_api.py +++ b/ranchimallflo_api.py @@ -2032,9 +2032,9 @@ async def latestTransactionDetails(): return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 500 if limit is not None: - c.execute('SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC LIMIT {}) ORDER BY id ASC;'.format(int(limit))) + c.execute('SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC LIMIT {}) ORDER BY id DESC;'.format(int(limit))) else: - c.execute('''SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC) ORDER BY id ASC;''') + c.execute('''SELECT * FROM latestTransactions WHERE blockNumber IN (SELECT DISTINCT blockNumber FROM latestTransactions ORDER BY blockNumber DESC) ORDER BY id DESC;''') latestTransactions = c.fetchall() c.close() tx_list = [] @@ -2064,15 +2064,17 @@ async def latestBlockDetails(): return jsonify(description='Latest transactions db doesn\'t exist. This is unusual, please report on https://github.com/ranchimall/ranchimallflo-api'), 404 if limit is None: - c.execute('''SELECT * FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT 4) ORDER BY id ASC;''') + c.execute('''SELECT jsonData FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT 4) ORDER BY id DESC;''') else: - c.execute(f'SELECT * FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT {limit}) ORDER BY id ASC;') + c.execute(f'SELECT jsonData FROM ( SELECT * FROM latestBlocks ORDER BY blockNumber DESC LIMIT {limit}) ORDER BY id DESC;') latestBlocks = c.fetchall() c.close() - tempdict = {} + + templst = [] for idx, item in enumerate(latestBlocks): - tempdict[json.loads(item[3])['hash']] = json.loads(item[3]) - return jsonify(result='ok', latestBlocks=tempdict) + templst.append(json.loads(item[0])) + + return jsonify(latestBlocks=templst), 200 @app.route('/api/v2/blockTransactions/', methods=['GET']) @@ -2252,4 +2254,4 @@ scheduler.start() atexit.register(lambda: scheduler.shutdown()) if __name__ == "__main__": - app.run(debug=debug_status, host='0.0.0.0', port=5009) \ No newline at end of file + app.run(debug=debug_status, host='0.0.0.0', port=5013)