Skip to content

Commit 8d29c6f

Browse files
authored
Merge pull request #127 from dom-jiang/main
add orderly trading data
2 parents 85217fb + 5a0d3ed commit 8d29c6f

File tree

2 files changed

+66
-2
lines changed

2 files changed

+66
-2
lines changed

app.py

+31-2
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,16 @@
2020
from db_provider import get_history_token_price, query_limit_order_log, query_limit_order_swap, get_liquidity_pools, get_actions, query_dcl_pool_log
2121
from db_provider import query_recent_transaction_swap, query_recent_transaction_dcl_swap, \
2222
query_recent_transaction_liquidity, query_recent_transaction_dcl_liquidity, query_recent_transaction_limit_order, query_dcl_points, query_dcl_points_by_account, \
23-
query_dcl_user_unclaimed_fee, query_dcl_user_claimed_fee, query_dcl_user_unclaimed_fee_24h, query_dcl_user_claimed_fee_24h, query_dcl_user_tvl, query_dcl_user_change_log, query_burrow_log, get_history_token_price_by_token
23+
query_dcl_user_unclaimed_fee, query_dcl_user_claimed_fee, query_dcl_user_unclaimed_fee_24h, query_dcl_user_claimed_fee_24h, \
24+
query_dcl_user_tvl, query_dcl_user_change_log, query_burrow_log, get_history_token_price_by_token, add_orderly_trading_data
2425
import re
2526
from flask_limiter import Limiter
2627
from loguru import logger
2728
from analysis_v2_pool_data_s3 import analysis_v2_pool_data_to_s3, analysis_v2_pool_account_data_to_s3
2829
import time
2930
import datetime
3031

31-
service_version = "20240415.01"
32+
service_version = "20240417.01"
3233
Welcome = 'Welcome to ref datacenter API server, version ' + service_version + ', indexer %s' % \
3334
Cfg.NETWORK[Cfg.NETWORK_ID]["INDEXER_HOST"][-3:]
3435
# Instantiation, which can be regarded as fixed format
@@ -835,6 +836,34 @@ def handle_circulating_supply():
835836
return ret
836837

837838

839+
@app.route('/crm/orderly/trading-data', methods=['GET', 'POST', 'PUT'])
840+
@flask_cors.cross_origin()
841+
def handle_crm_orderly_data():
842+
try:
843+
ret = {
844+
"code": 0,
845+
"msg": "success"
846+
}
847+
json_data = request.get_json()
848+
broker_id = json_data["data"]["broker_id"]
849+
if "health_check" == broker_id:
850+
return ret
851+
logger.info(f"orderly trading data:{json_data}")
852+
signature = request.headers.get("signature")
853+
logger.info("signature:{}", signature)
854+
trading_data_info = json_data["data"]
855+
trading_data_info["timestamp"] = json_data["timestamp"]
856+
symbol_data = trading_data_info["symbol"].split("_")
857+
trading_data_info["data_source"] = "orderly"
858+
trading_data_info["trading_type"] = symbol_data[0]
859+
trading_data_info["token_in"] = symbol_data[1]
860+
trading_data_info["token_out"] = symbol_data[2]
861+
add_orderly_trading_data(trading_data_info)
862+
return ret
863+
except Exception as e:
864+
logger.error("handle orderly trading data error:{}", e)
865+
866+
838867
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
839868
log_file = "app-%s.log" % current_date
840869
logger.add(log_file)

db_provider.py

+35
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ def get_near_lake_dcl_connect(network_id: str):
5252
return conn
5353

5454

55+
def get_crm_db_connect(network_id: str):
56+
conn = pymysql.connect(
57+
host=Cfg.NETWORK[network_id]["DB_HOST"],
58+
port=int(Cfg.NETWORK[network_id]["DB_PORT"]),
59+
user=Cfg.NETWORK[network_id]["DB_UID"],
60+
passwd=Cfg.NETWORK[network_id]["DB_PWD"],
61+
db="crm")
62+
return conn
63+
64+
5565
def get_liquidity_pools(network_id, account_id):
5666
ret = []
5767
db_conn = get_near_lake_connect(network_id)
@@ -1185,6 +1195,31 @@ def query_dcl_user_change_log(network_id, pool_id, account_id, user_token_timest
11851195
cursor.close()
11861196

11871197

1198+
def add_orderly_trading_data(trading_data_info):
1199+
db_conn = get_crm_db_connect(Cfg.NETWORK_ID)
1200+
sql = "insert into t_trading(data_source, trading_type, token_in, token_out, side, `status`, order_id, " \
1201+
"account_id, price, type, quantity, amount, executed, visible, total_fee, fee_asset, client_order_id, " \
1202+
"average_executed_price, created_time, updated_time, `timestamp`, create_time) values(%s,%s,%s,%s,%s,%s," \
1203+
"%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s, now())"
1204+
par = (trading_data_info["data_source"], trading_data_info["trading_type"], trading_data_info["token_in"],
1205+
trading_data_info["token_out"], trading_data_info["side"], trading_data_info["status"],
1206+
trading_data_info["order_id"], trading_data_info["account_id"], trading_data_info["price"],
1207+
trading_data_info["type"], trading_data_info["quantity"], trading_data_info["amount"],
1208+
trading_data_info["executed"], trading_data_info["visible"], trading_data_info["total_fee"],
1209+
trading_data_info["fee_asset"], trading_data_info["client_order_id"],
1210+
trading_data_info["average_executed_price"], trading_data_info["created_time"],
1211+
trading_data_info["updated_time"], trading_data_info["timestamp"])
1212+
cursor = db_conn.cursor(cursor=pymysql.cursors.DictCursor)
1213+
try:
1214+
cursor.execute(sql, par)
1215+
db_conn.commit()
1216+
except Exception as e:
1217+
db_conn.rollback()
1218+
raise e
1219+
finally:
1220+
cursor.close()
1221+
1222+
11881223
if __name__ == '__main__':
11891224
print("#########MAINNET###########")
11901225
# clear_token_price()

0 commit comments

Comments
 (0)