feat(account): 按代理地址去重、默认账户名、前端重复提示与 DB 唯一约束

后端:
- 导入去重改为按 proxy_address(existsByProxyAddress),重复时返回 ACCOUNT_ALREADY_EXISTS(4601)
- 未填账户名时默认生成 SAFE/MAGIC-代理地址后4位(无中括号)
- Controller 识别 ACCOUNT_ALREADY_EXISTS 并返回对应错误码

前端:
- 导入失败时 message.error 提示;code=4601 时使用 accountImport.duplicateAccount 多语言
- store 抛出错误时附带 response.data.code 供表单判断

数据库 V33:
- 移除 wallet_address 唯一约束,新增 proxy_address 唯一约束
- 已存在账户的 wallet_type 统一更新为 safe

实体:
- Account.walletAddress 取消 unique,Account.proxyAddress 设为 unique

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WrBug
2026-02-14 01:40:25 +08:00
co-authored by Cursor
parent 72de65d670
commit f1ec0a330b
7 changed files with 79 additions and 27 deletions
@@ -267,7 +267,10 @@ const AccountImportForm: React.FC<AccountImportFormProps> = ({
}
return Promise.resolve()
} catch (error: any) {
} catch (error: unknown) {
const err = error as Error & { code?: number }
const isDuplicate = err?.code === 4601
message.error(isDuplicate ? t('accountImport.duplicateAccount') : (err?.message ?? t('accountImport.importFailed')))
return Promise.reject(error)
}
}