|
|
@@ -1,17 +1,17 @@
|
|
|
import time
|
|
|
-import logging
|
|
|
import traceback
|
|
|
import copy
|
|
|
from web3_py_client import EthClient
|
|
|
from mexc_client import MexcClient
|
|
|
from decimal import Decimal, ROUND_DOWN
|
|
|
from as_utils import add_state_flow_entry
|
|
|
+from checker.logger_config import get_logger
|
|
|
|
|
|
web3 = EthClient()
|
|
|
mexc = MexcClient()
|
|
|
|
|
|
# 配置日志
|
|
|
-logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
+logger = get_logger('as')
|
|
|
|
|
|
class ArbitrageProcess:
|
|
|
def __init__(self, tx, gas_limit_multiplier, gas_price_multiplier, process_item,
|
|
|
@@ -119,11 +119,11 @@ class ArbitrageProcess:
|
|
|
设置系统状态,并打印日志
|
|
|
"""
|
|
|
if state in self.STATES:
|
|
|
- logging.info(f"状态变更:{self.current_state} -> {state}")
|
|
|
- logging.info('')
|
|
|
+ logger.info(f"状态变更:{self.current_state} -> {state}")
|
|
|
+ logger.info('')
|
|
|
self.current_state = state
|
|
|
else:
|
|
|
- logging.error(f"尝试设置无效状态:{state}")
|
|
|
+ logger.error(f"尝试设置无效状态:{state}")
|
|
|
|
|
|
def run_arbitrage_step(self):
|
|
|
"""
|
|
|
@@ -163,17 +163,17 @@ class ArbitrageProcess:
|
|
|
|
|
|
elif self.current_state == self.STATE_COMPLETED:
|
|
|
msg = "套利流程成功完成!"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
elif self.current_state == self.STATE_REJECT:
|
|
|
msg = "套利流程被程序拒绝"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
elif self.current_state == self.STATE_FAILED:
|
|
|
msg = "套利流程失败!"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
def _execute_check(self):
|
|
|
@@ -191,13 +191,13 @@ class ArbitrageProcess:
|
|
|
if balance['asset'] == self.coin:
|
|
|
if Decimal(balance['free']) < pseudo_amount_to_sell:
|
|
|
msg = f"交易所剩余{self.coin}: {balance['free']}, 交易所准备卖出:{pseudo_amount_to_sell}, 不能触发套保交易。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_REJECT)
|
|
|
return
|
|
|
else:
|
|
|
msg = f"交易所剩余{self.coin}: {balance['free']}, 交易所准备卖出:{pseudo_amount_to_sell}, 余额校验通过(可以套保)。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
break
|
|
|
|
|
|
@@ -217,7 +217,7 @@ class ArbitrageProcess:
|
|
|
estimated_eth = estimated_eth.quantize(Decimal('1e-8'), rounding=ROUND_DOWN)
|
|
|
|
|
|
msg = f"估算的燃气量: {estimated_gas}, eth消耗: {estimated_eth}, gas price: {gas_price_gwei} gwei, gas估算通過"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# step3, 費用與利潤比較
|
|
|
@@ -226,12 +226,12 @@ class ArbitrageProcess:
|
|
|
cost = estimated_eth_value + self.WITHDRAW_FEE # 成本
|
|
|
if self.profit < cost:
|
|
|
msg = f"費用判斷不通過! profit: {self.profit}, eth_value:{estimated_eth_value}, eth: {estimated_eth}, eth_price: {self.eth_price}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_REJECT)
|
|
|
return
|
|
|
msg = f"費用判斷通過! profit: {self.profit}, eth_value:{estimated_eth_value}, eth: {estimated_eth}, eth_price: {self.eth_price}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# step4, 與賬戶eth餘額比對(至少留0.001,不然沒gas了)
|
|
|
@@ -241,19 +241,19 @@ class ArbitrageProcess:
|
|
|
eth_balance = eth_balance.quantize(Decimal('1e-6'), rounding=ROUND_DOWN)
|
|
|
if eth_balance - estimated_eth < MARGIN:
|
|
|
msg = f"gas餘額判斷不通過! MARGIN:{MARGIN}, estimated_eth: {estimated_eth}, eth_balance: {eth_balance}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_REJECT)
|
|
|
return
|
|
|
msg = f"gas餘額判斷通過! MARGIN:{MARGIN}, estimated_eth: {estimated_eth}, eth_balance: {eth_balance}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# final, 設定交易狀態,開始交易
|
|
|
self._set_state(self.STATE_SELLING_ON_EXCHANGE)
|
|
|
except Exception as e:
|
|
|
msg = f"前置檢查未通過:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_REJECT)
|
|
|
|
|
|
@@ -265,7 +265,7 @@ class ArbitrageProcess:
|
|
|
在中心化交易所卖出现货
|
|
|
"""
|
|
|
msg = "执行:中心化交易所卖出现货..."
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
try:
|
|
|
# 第一步直接卖出,这个数量用固定数量
|
|
|
@@ -279,11 +279,11 @@ class ArbitrageProcess:
|
|
|
"type": "MARKET",
|
|
|
"quantity": int(pseudo_amount_to_sell),
|
|
|
}
|
|
|
- logging.info(order_params)
|
|
|
+ logger.info(order_params)
|
|
|
exchange_sell_order = mexc.trade.post_order(order_params)
|
|
|
if 'orderId' not in exchange_sell_order:
|
|
|
msg = f"交易所现货卖出下单失败:{exchange_sell_order}, {order_params}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
|
|
|
@@ -292,13 +292,13 @@ class ArbitrageProcess:
|
|
|
self.exchange_sell_order_id = exchange_sell_order['orderId']
|
|
|
|
|
|
msg = f"交易所现货卖出订单已发送, 订单ID: {self.exchange_sell_order_id}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self._set_state(self.STATE_WAITING_SELL_CONFIRM)
|
|
|
except Exception as e:
|
|
|
msg = f"交易所现货卖出下单失败:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
|
|
|
@@ -310,7 +310,7 @@ class ArbitrageProcess:
|
|
|
"""
|
|
|
exchange_sell_order_id = self.exchange_sell_order_id
|
|
|
msg = f"等待交易所现货卖出订单确认:{exchange_sell_order_id}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
|
|
|
last_order = None
|
|
|
@@ -333,7 +333,7 @@ class ArbitrageProcess:
|
|
|
self.sell_price = self.sell_price.quantize(Decimal('1e-8'), rounding=ROUND_DOWN)
|
|
|
|
|
|
msg = f"交易所现货卖出订单已完成, 价格:{self.sell_price}, money: {money}, {order}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self.exchange_withdrawal_amount = money
|
|
|
@@ -345,12 +345,12 @@ class ArbitrageProcess:
|
|
|
waiting_times = waiting_times - 1
|
|
|
|
|
|
msg = f"交易所现货卖出订单失敗, 最後狀態:{last_order}。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
except Exception as e:
|
|
|
msg = f"查询交易所现货卖出订单状态时发生错误:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
|
|
|
@@ -361,7 +361,7 @@ class ArbitrageProcess:
|
|
|
在链上执行买入操作
|
|
|
"""
|
|
|
msg = "执行:链上买入操作..."
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
try:
|
|
|
# 交易前nonce
|
|
|
@@ -388,13 +388,13 @@ class ArbitrageProcess:
|
|
|
|
|
|
# 交易成功
|
|
|
msg = f"链上买入交易已发送, 交易哈希:{self.chain_tx_hash}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
self._set_state(self.STATE_WAITING_CHAIN_CONFIRM)
|
|
|
|
|
|
except Exception as e:
|
|
|
msg = f"链上买入失败:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_WAITING_EXCHANGE_ROLLBACK)
|
|
|
|
|
|
@@ -407,7 +407,7 @@ class ArbitrageProcess:
|
|
|
|
|
|
chain_tx_hash = self.chain_tx_hash
|
|
|
msg = f"等待链上交易确认:{chain_tx_hash}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
try:
|
|
|
# 給300秒時間進行確認
|
|
|
@@ -429,7 +429,7 @@ class ArbitrageProcess:
|
|
|
# 交易失敗的邏輯處理,直接進行回滾
|
|
|
if tx_details['status'] != 'success':
|
|
|
msg = f"链上交易失敗。{tx_details}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_WAITING_EXCHANGE_ROLLBACK)
|
|
|
@@ -437,7 +437,7 @@ class ArbitrageProcess:
|
|
|
break
|
|
|
|
|
|
msg = f"链上交易已确认。{tx_details}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# 獲取交易信息
|
|
|
@@ -459,7 +459,7 @@ class ArbitrageProcess:
|
|
|
rate = rate.quantize(Decimal('1e-4'), rounding=ROUND_DOWN)
|
|
|
|
|
|
msg = f"【比率{rate}】。用{from_token_amount_human}买入{to_token_amount_human},价格{self.buy_price}。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# 判斷快速二賣條件
|
|
|
@@ -467,7 +467,7 @@ class ArbitrageProcess:
|
|
|
value = diff * self.sell_price
|
|
|
if value > 2:
|
|
|
msg = f"滿足二賣條件,{diff}*{self.sell_price} = {value}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
order_params = {
|
|
|
@@ -476,11 +476,11 @@ class ArbitrageProcess:
|
|
|
"type": "MARKET",
|
|
|
"quantity": int(diff),
|
|
|
}
|
|
|
- logging.info(order_params)
|
|
|
+ logger.info(order_params)
|
|
|
exchange_sell_order = mexc.trade.post_order(order_params)
|
|
|
if 'orderId' not in exchange_sell_order:
|
|
|
msg = f"交易所现货二卖下单失败:{exchange_sell_order}, {order_params}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
else:
|
|
|
oid = exchange_sell_order['orderId']
|
|
|
@@ -499,7 +499,7 @@ class ArbitrageProcess:
|
|
|
money = Decimal(order['cummulativeQuoteQty'])
|
|
|
|
|
|
msg = f"交易所现货二卖订单已完成。money: {money}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self.exchange_withdrawal_amount = self.exchange_withdrawal_amount + money
|
|
|
@@ -511,11 +511,11 @@ class ArbitrageProcess:
|
|
|
|
|
|
if waiting_times_inner <= 0:
|
|
|
msg = f"交易所现货二卖订单失敗, 最後狀態:{last_order}。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
else:
|
|
|
msg = f"不滿足二賣條件,{diff}*{self.sell_price} = {value}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_WAITING_TRANSFER_ARRIVE)
|
|
|
@@ -528,12 +528,12 @@ class ArbitrageProcess:
|
|
|
tx_details = copy.deepcopy(self.pending_data[chain_tx_hash]['tx_details'])
|
|
|
|
|
|
msg = f"链上交易确认失败:{chain_tx_hash}, {tx_details}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_WAITING_EXCHANGE_ROLLBACK)
|
|
|
except Exception as e:
|
|
|
msg = f"查询链上确认状态时发生错误:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_WAITING_EXCHANGE_ROLLBACK)
|
|
|
|
|
|
@@ -544,7 +544,7 @@ class ArbitrageProcess:
|
|
|
市价进行交易所交易回滚
|
|
|
"""
|
|
|
msg = "执行:中心化交易所买入现货回滚..."
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
try:
|
|
|
# 使用预提现数量进行回滚
|
|
|
@@ -560,13 +560,13 @@ class ArbitrageProcess:
|
|
|
|
|
|
if pseudo_amount_to_buy < Decimal('10'):
|
|
|
msg = f"交易所剩余{self.base_coin}: {balance['free']}, 小于10, 不能触发回滚交易。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
return
|
|
|
else:
|
|
|
msg = f"交易所剩余{self.base_coin}: {balance['free']}, 交易所准备使用:{pseudo_amount_to_buy}, 余额校验通过(可以回滚)。"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
break
|
|
|
|
|
|
@@ -576,11 +576,11 @@ class ArbitrageProcess:
|
|
|
"type": "MARKET",
|
|
|
"quoteOrderQty": int(pseudo_amount_to_buy),
|
|
|
}
|
|
|
- logging.info(order_params)
|
|
|
+ logger.info(order_params)
|
|
|
exchange_buy_order = mexc.trade.post_order(order_params)
|
|
|
if 'orderId' not in exchange_buy_order:
|
|
|
msg = f"【回滚】交易所现货买入下单失败:{exchange_buy_order}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state("FAILED")
|
|
|
|
|
|
@@ -589,7 +589,7 @@ class ArbitrageProcess:
|
|
|
exchange_buy_order_id = exchange_buy_order['orderId']
|
|
|
|
|
|
msg = f"【回滚】交易所现货买入订单已发送, 订单ID: {exchange_buy_order_id}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# 查询交易所订单状态
|
|
|
@@ -611,7 +611,7 @@ class ArbitrageProcess:
|
|
|
|
|
|
msg = f"【回滚】交易所现货买入订单已完全成交, 价格:{price}。{order}"
|
|
|
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
@@ -624,13 +624,13 @@ class ArbitrageProcess:
|
|
|
waiting_times = waiting_times - 1
|
|
|
|
|
|
msg = f"【回滚】回滚交易订单查询超时, 订单ID: {exchange_buy_order_id},最终状态:{last_query_rst}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
except Exception as e:
|
|
|
msg = f"【回滚】交易所回滚交易失败:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
|
|
|
@@ -641,7 +641,7 @@ class ArbitrageProcess:
|
|
|
等待资产在交易所内到账
|
|
|
"""
|
|
|
msg = f"等待资产在交易所到账..."
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
|
|
|
try:
|
|
|
@@ -688,13 +688,13 @@ class ArbitrageProcess:
|
|
|
# 最終判斷
|
|
|
if exchange_sell_amount + asset_balance > pending_amount:
|
|
|
msg = f"【flash】资产可以進行快速提現。{last_deposit_state}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self._set_state(self.STATE_TRANSFERRING_TO_CHAIN)
|
|
|
return
|
|
|
|
|
|
- logging.info(f"正在檢查快速提現條件...({waiting_times}/10)")
|
|
|
+ logger.info(f"正在檢查快速提現條件...({waiting_times}/10)")
|
|
|
waiting_times = waiting_times - 1
|
|
|
|
|
|
# 最多等待30分钟
|
|
|
@@ -708,13 +708,13 @@ class ArbitrageProcess:
|
|
|
|
|
|
last_deposit_state = deposit
|
|
|
|
|
|
- logging.info(f"等待资产在交易所到账...({deposit['confirmTimes']}/{deposit['unlockConfirm']})")
|
|
|
+ logger.info(f"等待资产在交易所到账...({deposit['confirmTimes']}/{deposit['unlockConfirm']})")
|
|
|
if Decimal(deposit['confirmTimes']) >= Decimal(deposit['unlockConfirm']):
|
|
|
is_arrived = True
|
|
|
|
|
|
if is_arrived:
|
|
|
msg = f"资产已在交易所到账。{last_deposit_state}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self._set_state(self.STATE_TRANSFERRING_TO_CHAIN)
|
|
|
@@ -724,13 +724,13 @@ class ArbitrageProcess:
|
|
|
waiting_times = waiting_times - 1
|
|
|
|
|
|
msg = f"等待充值到账超时(超过30分钟): {last_deposit_state}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
except Exception as e:
|
|
|
msg = f"查询交易所到账状态时发生错误:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
@@ -742,7 +742,7 @@ class ArbitrageProcess:
|
|
|
将交易后获得的计价资产(例如USDT)转账回链上
|
|
|
"""
|
|
|
msg = "执行:交易所计价资产转账回链上..."
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
|
|
|
try:
|
|
|
@@ -757,20 +757,20 @@ class ArbitrageProcess:
|
|
|
withdrawal_rst = mexc.wallet.post_withdraw(withdrawal_params)
|
|
|
if "id" not in withdrawal_rst:
|
|
|
msg = f"交易所提现失败\n參數: {withdrawal_params}\n響應: {withdrawal_rst}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
else:
|
|
|
self.exchange_withdrawal_id = withdrawal_rst["id"]
|
|
|
msg = f"交易所提现已发送, 提现ID: {self.exchange_withdrawal_id}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self._set_state(self.STATE_WAITING_WITHDRAWAL_CONFIRM)
|
|
|
except Exception as e:
|
|
|
msg = f"转账回链上失败: {e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
@@ -784,7 +784,7 @@ class ArbitrageProcess:
|
|
|
exchange_withdrawal_id = self.exchange_withdrawal_id
|
|
|
|
|
|
msg = f"等待交易所提现确认:{exchange_withdrawal_id}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
try:
|
|
|
is_arrived = False
|
|
|
@@ -797,7 +797,7 @@ class ArbitrageProcess:
|
|
|
|
|
|
if not isinstance(withdrawal_list, list):
|
|
|
msg = f"查询交易所提现状态时发生错误:{withdrawal_list}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state("FAILED")
|
|
|
@@ -814,7 +814,7 @@ class ArbitrageProcess:
|
|
|
|
|
|
if is_arrived:
|
|
|
msg = f"提现请求已上链: {last_deposit_state}"
|
|
|
- logging.info(msg)
|
|
|
+ logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self._set_state(self.STATE_COMPLETED)
|
|
|
@@ -824,13 +824,13 @@ class ArbitrageProcess:
|
|
|
waiting_times = waiting_times - 1
|
|
|
|
|
|
msg = f"等待提现到账超时(超过30分钟): {last_deposit_state}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
except Exception as e:
|
|
|
msg = f"查询交易所提现状态时发生错误:{e}"
|
|
|
- logging.error(msg)
|
|
|
+ logger.error(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
self._set_state(self.STATE_FAILED)
|
|
|
|
|
|
@@ -901,8 +901,8 @@ if __name__ == "__main__":
|
|
|
# else:
|
|
|
# time.sleep(1)
|
|
|
|
|
|
- logging.info(process_item)
|
|
|
+ logger.info(process_item)
|
|
|
if ap.current_state == "COMPLETED":
|
|
|
- logging.info("套利流程执行成功!")
|
|
|
+ logger.info("套利流程执行成功!")
|
|
|
else:
|
|
|
- logging.info("套利流程执行失败!")
|
|
|
+ logger.info("套利流程执行失败!")
|