[BUG] API onchain_info 字段聚合不完整 - GET /api/assets/{id} 返回链上信息为空 #1
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题描述
在 2026-03-22 对一键上链系统(onboarding.newassetchain.io)进行完整数据流转验证时,发现
GET /api/assets/{id}API 接口返回的onchain_info字段中,链上关键信息为空(--),但前端界面能正确显示这些信息。影响范围
/opt/nac/onboarding/backend,FastAPI,端口 9552复现步骤
GET /api/assets/{asset_id}接口onchain_info字段实际结果
期望结果
根本原因分析
前端能正确显示这些数据,说明数据存储在步骤历史(
step_history)的details字段中,而不是在onchain_info聚合字段中。API 的onchain_info字段没有从step_history中正确聚合这些数据。修复方案
在后端
GET /api/assets/{id}接口中,遍历step_history数组,从各步骤的details字段中提取以下信息并填充到onchain_info:DnaGenerated步骤 →dna_hashChainConfirmed步骤 →chain_txTokenIssued步骤 →token_symbol,token_addressXtzhMinted步骤 →xtzh_minted验证方法
修复后,调用
GET /api/assets/{id}应返回完整的链上信息,与前端显示一致。关联工单
/home/ubuntu/logs/2026-03-22_onboarding_verification_report.md完成标准
GET /api/assets/{id}返回完整的onchain_info字段✅ 修复完成 - 2026-03-22
修复内容:
在
routers/assets.py的GET /api/assets/{asset_id}接口中,新增了_build_onchain_info()函数,从各步骤专用字段中聚合链上关键信息:doc["dna"]["hash"]→dna_hash(Step 5 generate-dna)doc["warrant"]["tx_hash"]→chain_tx(Step 6 chain-confirm)doc["token"]["symbol/address"]→token_symbol,token_address(Step 14 issue-token)doc["xtzh"]["amount"]→xtzh_minted(Step 13 mint-xtzh)doc["warrant_cert"]["warrant_id"]→warrant_id(Step 9 issue-warrant)doc["custody"]["warrant_custody_tx"]→custody_tx(Step 11 custody)验证结果:
旧文件备份:
/opt/nac/onboarding/backend/routers/assets.py.bak_20260322服务状态: nac-onboarding 已重启,端口 9552 正常,健康检查 HTTP 200