|
|
@@ -27,6 +27,10 @@ logger = get_logger('as')
|
|
|
from web3_py_client_lite import EthClient
|
|
|
web3_client = EthClient()
|
|
|
|
|
|
+# delay区块,有利润后延迟几个区块再发
|
|
|
+prev_profit_block_number = 0
|
|
|
+send_delay_block = 1
|
|
|
+
|
|
|
# ok web3的配置
|
|
|
ok_chain_client.api_config = okchain_api # 假设ok_chain_client有此配置方式
|
|
|
|
|
|
@@ -304,13 +308,19 @@ def update_data_for_plotly_and_table():
|
|
|
# actual_profit_usdt_v2 = revenue_on_mexc - cost_on_chain
|
|
|
# actual_profit_usdt = actual_profit_usdt_v2 # 使用更精确的V2版本
|
|
|
|
|
|
+ block_number = web3_client.w3.eth.block_number
|
|
|
# 6. 满足利润条件,发送套利消息, PROFIT_LIMIT + 3的3是提前計算的成本,否則一直提交
|
|
|
global mode
|
|
|
+ global prev_profit_block_number
|
|
|
+
|
|
|
if actual_profit_usdt is not None and actual_profit_usdt > PROFIT_LIMIT + 3 and mode == 'trade':
|
|
|
- if chain_swap_full_response: # 确保有完整的链上数据
|
|
|
+ # 确保有完整的链上数据
|
|
|
+ if chain_swap_full_response and block_number == prev_profit_block_number + send_delay_block:
|
|
|
send_arb_msg(actual_profit_usdt, chain_swap_full_response, mexc_price_target_per_base, in_amount_to_query_human)
|
|
|
else:
|
|
|
logger.warning("利润满足但链上数据不完整,无法发送套利消息。")
|
|
|
+
|
|
|
+ prev_profit_block_number = block_number
|
|
|
|
|
|
current_point = {
|
|
|
"time": fetch_time_chart,
|