pub fn require_trading(
state: &ServerState,
tool: &'static str,
env: &str,
ctx: Option<CheckCtx>,
override_key: Option<&str>,
) -> GuardOutcomeExpand description
交易写守卫:scope + legacy 兼容 + (可选)限额检查 + (可选)per-call key 覆盖
env:"real" / "simulate";ctx 为 Some 时跑限额检查(下单路径)。
override_key 为 Some 时,本次调用使用这个 key(KeyStore::verify 一次性
拿最新 record)而不是 state.authed_key;典型用法:MCP 多租户,让 LLM 客户端
每个 tool call 带自己的 key。验证失败 → reject,不回落。若为 None → 用启动时
捕获的 state.authed_key(SIGHUP-aware fresh lookup)。