{"content":"[meta-socket][a539db1] 补齐 P1-2:input owner/createAddress 与旧版 prevout-value 语义对齐\n\n背景:上一轮双验收指出 4 个 P1 中仅 P1-2 仍为 partial(多输入/多输出交易下 owner/outIdx 仍是 index fallback)。\n\n本次改动:\n1) 新增可选 prevout 值查询能力:\n - 新增 PrevoutValueLookup 接口与 RPC 实现 `internal/adapter/prevout_lookup.go`。\n - 通过 btcd rpcclient 查询 `GetRawTransaction` 的前序输出值并做本地缓存。\n2) JSONZMQAdapter 增加可选注入:\n - 新增 `JSONZMQAdapterOption` 与 `WithPrevoutValueLookup`。\n - `resolveInputOwner` 新增 lookup 分支:优先按旧版 `GetPinOwner` 逻辑(累计前置输入 value -> 映射输出 outIdx)计算 owner;查询失败再回退 index-aware 兜底。\n3) 构建链路接入:\n - `BuildEnabledAdapters` 增加 per-chain RPC lookup 组装。\n - 若 RPC 初始化失败,日志告警并自动回退兜底,不阻断服务启动。\n4) 配置扩展(BTC/MVC/DOGE):\n - 新增 `rpcHost/rpcUser/rpcPass/rpcHttpPostMode/rpcDisableTls`。\n - 支持环境变量:\n - `META_SOCKET_ZMQ_{CHAIN}_RPC_HOST`\n - `META_SOCKET_ZMQ_{CHAIN}_RPC_USER`\n - `META_SOCKET_ZMQ_{CHAIN}_RPC_PASS`\n - `META_SOCKET_ZMQ_{CHAIN}_RPC_HTTP_POST_MODE`\n - `META_SOCKET_ZMQ_{CHAIN}_RPC_DISABLE_TLS`\n5) 测试补强:\n - 新增 `TestResolveInputOwnerUsesPrevoutValueMapping`,验证按 prevout-value 映射到正确 outIdx。\n - 全量和关键兼容测试通过。\n\n验证:\n- go test ./internal/adapter -count=1 -v\n- go test ./internal/config -count=1\n- go test ./internal/pipeline -count=1\n- go test ./... -timeout 20m\n- go test ./tests/contract -run TestSocketE2EPathsAndHeartbeat -count=20 -timeout 20m\n- go test ./internal/adapter -run 'TestMVCNormalizedTxHashVersion10MatchesLegacyRule|TestJSONZMQAdapterRawTxOpReturnPriorityShortCircuit|TestResolveOpReturnOwnerCompatibilityRules|TestResolveInputOwnerUsesPrevoutValueMapping' -count=20 -timeout 20m\n\n结果:全部通过。当前 main 已 push,准备进行新一轮双 subagent 验收。","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}