feat: real-time wallet validation — key check, address display, USDC balance, claw402 health

- POST /api/wallet/validate: validate key, derive address, query Base USDC, check claw402
- Claw402ConfigForm: debounced validation, balance display, connection test button
- i18n: 11 new keys (en/zh/id)
- Private key never logged or stored
This commit is contained in:
shinchan-zhai
2026-03-21 01:08:29 +08:00
parent 53ac52562f
commit 79a513470b
4 changed files with 386 additions and 3 deletions

View File

@@ -1230,6 +1230,17 @@ export const translations = {
getApiKey: 'Get API Key',
walletPrivateKeyLabel: 'Wallet Private Key *',
selectModelLabel: 'Select Model',
validating: 'Validating...',
walletAddress: 'Wallet Address',
usdcBalance: 'Base USDC Balance',
claw402Connected: 'claw402 Connected',
claw402Unreachable: 'claw402 Unreachable',
depositUsdc: 'Deposit USDC to this address on Base chain',
invalidKeyPrefix: 'Please add 0x at the beginning',
invalidKeyLength: 'Should be 66 characters, currently',
invalidKeyChars: 'Contains invalid characters',
testConnection: 'Test Connection',
testingConnection: 'Testing...',
},
// ExchangeConfigModal
@@ -2508,6 +2519,17 @@ export const translations = {
getApiKey: '获取 API Key',
walletPrivateKeyLabel: '钱包私钥 *',
selectModelLabel: '选择模型',
validating: '验证中...',
walletAddress: '钱包地址',
usdcBalance: 'Base USDC 余额',
claw402Connected: 'claw402 已连接',
claw402Unreachable: 'claw402 不可达',
depositUsdc: '请往此地址充值 Base 链 USDC',
invalidKeyPrefix: '请在开头加 0x',
invalidKeyLength: '应为 66 个字符,当前',
invalidKeyChars: '包含非法字符',
testConnection: '测试连接',
testingConnection: '测试中...',
},
exchangeConfig: {
@@ -3591,6 +3613,17 @@ export const translations = {
getApiKey: 'Dapatkan API Key',
walletPrivateKeyLabel: 'Private Key Wallet *',
selectModelLabel: 'Pilih Model',
validating: 'Memvalidasi...',
walletAddress: 'Alamat Wallet',
usdcBalance: 'Saldo Base USDC',
claw402Connected: 'claw402 Terhubung',
claw402Unreachable: 'claw402 Tidak Dapat Dijangkau',
depositUsdc: 'Deposit USDC ke alamat ini di Base chain',
invalidKeyPrefix: 'Tambahkan 0x di awal',
invalidKeyLength: 'Harus 66 karakter, saat ini',
invalidKeyChars: 'Mengandung karakter tidak valid',
testConnection: 'Tes Koneksi',
testingConnection: 'Menguji...',
},
exchangeConfig: {