|
|
@@ -178,6 +178,7 @@ class ArbitrageProcess:
|
|
|
logging.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "pending")
|
|
|
try:
|
|
|
+ # 交易所套保余额判断
|
|
|
balances = mexc.trade.get_account_info()['balances']
|
|
|
for balance in balances:
|
|
|
if balance['asset'] == self.coin:
|
|
|
@@ -192,6 +193,18 @@ class ArbitrageProcess:
|
|
|
logging.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
break
|
|
|
+
|
|
|
+ # 链上余额判断
|
|
|
+ from_token_balance = web3.get_erc20_balance(self.from_token_addr, self.user_wallet)
|
|
|
+
|
|
|
+ if from_token_balance < self.arbitrage_details["chain_usdt_use"]:
|
|
|
+ msg = f"链上剩余{self.base_coin}: {from_token_balance}, 需要使用:{self.arbitrage_details["chain_usdt_use"]}, 余额不足,不能触发交易。"
|
|
|
+ logging.info(msg)
|
|
|
+ add_state_flow_entry(self.process_item, self.current_state, msg, "fail")
|
|
|
+ return
|
|
|
+ msg = f"链上剩余{self.base_coin}: {from_token_balance}, 需要使用:{self.arbitrage_details["chain_usdt_use"]}, 余额充足。"
|
|
|
+ logging.info(msg)
|
|
|
+ add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
self.arbitrage_details["chain_amount_before_trade"] = web3.get_erc20_balance(self.to_token_addr, self.user_exchange_wallet)
|
|
|
# 调用链上客户端执行买入交易
|