空跑补一次带签名请求,否则密钥与白名单根本没被验到
dryrun 第 5 步声称"会真实验到密钥与白名单",但 start() 在空跑下于密钥检查 之前就 return,全程只发了 contracts() —— 那是公开端点,不验签。于是空跑会 "通过"却什么都没测到。这种假保证比不测更糟:等第一个真信号来时才暴露,而 信号那时正在过期,没有从容排查的余地。 现在空跑返回前发一次 account()(只读),失败即退出并给出码表(40018 白名单 / 40037 key 不存在 / 40001,40009 secret,passphrase / 40099 权限)。顺带报 可用余额,并在不足 MAX_OPEN 笔并发所需保证金时告警。 两处 SystemExit 会绕过 run() 的收尾,退出前不关 aiohttp 会话,日志尾部一串 Unclosed client session 会把真正的报错顶出视野。都补上了 close()。 BITGET_PASSPHRASE 现在也接受 BITGET_API_PASSPHRASE:另两项都带 API_,只有 它不带,很容易顺手写错,而后果是"像是填了"但签名一直失败。我自己就踩了。 启动时打一行 Telegram 是否启用。配错 token 的表现原本是完全静默。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -85,8 +85,9 @@ else
|
||||
fi
|
||||
|
||||
echo "── 5. 执行器空跑 ${SECS}s(真连交易所,不下单)──"
|
||||
# --dry-run 下 Bitget 客户端只读不写:合约规则、持仓、费率照查,
|
||||
# 下单一律只打印。所以这一步会真实验到密钥与白名单
|
||||
# --dry-run 下只读不写:下单一律只打印。合约规则那个端点是**公开**的、不验签,
|
||||
# 所以空跑里专门补了一次带签名的 account() —— 否则这一步会"通过"却根本没测到
|
||||
# 密钥与 IP 白名单,等第一个真信号来时才暴露,而那时信号正在过期
|
||||
# 让 chan 自己 source 配置($CONF 是 640 root:chan,它读得到)。
|
||||
# 不用 `env "$(grep ...)"` 那种拼法:值里有空格就会被切开
|
||||
set +e
|
||||
|
||||
Reference in New Issue
Block a user