pub async fn proto_request_with_idempotency_and_caller<Req, Rsp>(
state: &RestState,
proto_id: u32,
json_body: Option<Value>,
idempotency_key: Option<String>,
caller_key_id: Option<String>,
) -> Result<Json<Value>, (StatusCode, Json<Value>)>Expand description
v1.4.106 codex 0920 F1 (P1): 支持 caller key id 的 idempotency 变体. 让 cache namespace 跨 caller 隔离 — 不同 caller 用同 Idempotency-Key 不能 跨 caller 命中老 response (避免跨账户数据泄漏 + 重复下单).
call site: REST trade endpoint (place / modify / cancel / reconfirm)
在 rec: Option<Extension<Arc<KeyRecord>>> 抽 caller_key_id 后传入.