浏览代码

fix: add detailed debug logging for closePosition 500 error

添加请求/响应的详细日志,包括 URL、请求体、响应状态码、响应数据等,方便排查关仓 500 错误

Co-authored-by: Cursor <cursoragent@cursor.com>
zhangchunrui 1 月之前
父节点
当前提交
d7dfb2a5b5
共有 2 个文件被更改,包括 24 次插入1 次删除
  1. 1 0
      src/core/sniper.js
  2. 23 1
      src/services/byreal.js

+ 1 - 0
src/core/sniper.js

@@ -442,6 +442,7 @@ export class SniperEngine {
           continue;
         }
         logger.info(`Closing our position: ${myPositionAddress} (parent was ${parentPositionAddress})`);
+        logger.info(`Close context: targetPosition=${targetPositionAddress}, copiedData=${JSON.stringify(copiedData)}`);
         
         const success = await ByrealAPI.closePosition(myPositionAddress);
         

+ 23 - 1
src/services/byreal.js

@@ -223,6 +223,7 @@ export class ByrealAPI {
   static async closePosition(positionAddress) {
     try {
       logger.info(`Closing position: ${positionAddress}`);
+      logger.info(`Close URL: ${CONFIG.CLOSE_ACTION_URL}`);
 
       const body = { positionAddress };
       const headers = {
@@ -230,17 +231,38 @@ export class ByrealAPI {
         'Content-Type': 'application/json',
       };
 
+      logger.info(`Close request body: ${JSON.stringify(body)}`);
+      logger.info(`Close request headers: ${JSON.stringify({ ...headers, Authorization: headers.Authorization ? '[REDACTED]' : 'MISSING' })}`);
+
       const response = await axios.post(CONFIG.CLOSE_ACTION_URL, body, { headers });
 
+      logger.info(`Close response status: ${response.status}`);
+      logger.info(`Close response data: ${JSON.stringify(response.data)}`);
+
       if (response.data?.success) {
         logger.success(`Position closed successfully: ${positionAddress}`);
         return true;
       } else {
-        logger.error('Close request failed:', response.data);
+        logger.error('Close request failed:', JSON.stringify(response.data));
         return false;
       }
     } catch (error) {
       logger.error('Error closing position:', error.message);
+      if (error.response) {
+        logger.error(`Close response status: ${error.response.status}`);
+        logger.error(`Close response statusText: ${error.response.statusText}`);
+        logger.error(`Close response data: ${JSON.stringify(error.response.data)}`);
+        logger.error(`Close response headers: ${JSON.stringify(error.response.headers)}`);
+      } else if (error.request) {
+        logger.error('No response received from server (request was sent but no response)');
+        logger.error(`Request URL: ${error.config?.url}`);
+        logger.error(`Request method: ${error.config?.method}`);
+      } else {
+        logger.error('Error setting up request:', error.message);
+      }
+      if (error.config) {
+        logger.error(`Full request config: URL=${error.config.url}, method=${error.config.method}, data=${JSON.stringify(error.config.data)}`);
+      }
       return false;
     }
   }