Ҳуҷҷатҳои таҳиягар
ERROR CODES
Рӯйхати пурраи рамзҳои хатогии API TronEnergy бо тавсифҳо ва қадамҳои ҳалли он.
Ҳар як посухи хатогӣ ду майдон дорад: error (дар мошин хондашаванда, устувор, ҳеҷ гоҳ байни версияҳо тағйир намеёбад) ва message (барои инсон хондашаванда, метавонад бо мурури замон беҳтар карда шавад). Ҳамеша фаъол кунед error дар рамзи шумо. Намоиш message ба корбарон.
Формати хато
Ҳамаи посухҳои хатогӣ сохтори якхеларо риоя мекунанд:
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
Баъзе хатогиҳо майдонҳои иловагиро дар бар мегиранд: ref (ID-и истинод барои кӯшиши ваколатдиҳӣ) ва refund (тафсилот дар бораи баргардонидани автоматии маблағ).
Хатогиҳои тасдиқкунӣ
| Рамзи хато | HTTP | Сабаб | Қарор |
|---|---|---|---|
invalid_tx_hash | 400 | tx_hash сатри шонздаҳӣ бо 64-рақама нест | Формати хэшро санҷед. Он бояд дақиқ 64 аломати шонздаҳӣ бошад, бе префикс. |
invalid_address | 400 | delegate_to суроғаи дурусти Tron нест | Пеш аз занг задан, суроғаро бо истифода аз TronWeb .isAddress() тасдиқ кунед. |
missing_signature | 400 | Дар дархост имзо дода нашудааст | Паёмро имзо кунед {tx_hash}:{delegate_to} бо tronWeb.trx.signMessageV2() аз ҳамёне, ки TRX фиристодааст. |
invalid_signature | 401 | Имзо тасдиқ карда нашуд | Боварӣ ҳосил кунед, ки шумо дақиқ имзо кардаед {tx_hash}:{delegate_to} (ҳеши шонздаҳӣ бо ҳарфҳои хурд, ду нуқта, суроғаи дақиқи Tron ). |
signature_mismatch | 403 | Суроғаи имзокунанда бо суроғаи фиристандаи пардохт мувофиқат намекунад | Имзо бояд аз ҳамон ҳамёне бошад, ки пардохти TRX фиристодааст. Ҳамёни дигар = рад карда шудааст. |
Хатогиҳои пардохт
| Рамзи хато | HTTP | Сабаб | Қарор |
|---|---|---|---|
payment_verification_failed | 404 / 400 | Пардохти дохили занҷир тасдиқ карда нашуд. message майдон сабаби мушаххасро тавсиф мекунад. | Сабабҳои маъмулӣ: tx ҳанӯз тасдиқ нашудааст (3-5 сония интизор шавед ва як маротиба такрор кунед), суроғаи нодурусти гиранда, амалиёт интиқоли TRX нест, аз ҳадди ақали 4 TRX камтар аст. |
hash_already_used | 409 | Ин ҳэши TX аллакай даъво карда шудааст | Ҳар як хэш-и пардохт танҳо як маротиба истифода мешавад. Барои ваколати нав пардохти нав фиристед. |
Хатогиҳои хидматрасонӣ
| Рамзи хато | HTTP | Сабаб | Қарор |
|---|---|---|---|
delegation_failed | 400 / 500 | Таъминкунанда натавонист намояндагии энергетикиро таъмин кунад | Агар нокомӣ пас аз тасдиқи пардохти шумо рух дода бошад, баргардонидани автоматии пул дар навбат гузошта мешавад. Санҷед refund объект. Дар акси ҳол, дубора кӯшиш кунед ё бо дастгирии ref ID. |
rate_limited | 429 | Дархостҳои аз ҳад зиёд аз ин IP | Суръатро суст кунед ва дубора кӯшиш кунед. Маҳдудият 20 дархост дар як сония аст. |
server_error | 500 | Хатои дохилии ғайричашмдошт | Пас аз чанд сония дубора кӯшиш кунед. Агар ин кор идома ёбад, бо дастгирии ширкат тамос гиред ref агар дастрас бошад. |
Коркарди хатогиҳо дар код
recommended error handling
const result = await fetch('https://api.tronnrg.com/delegate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ tx_hash: hash, delegate_to: addr, signature: sig }),
}).then(r => r.json());
if (result.error) {
switch (result.error) {
case 'payment_verification_failed':
// Most common: tx not yet indexed. Wait 3s and retry once.
await new Promise(r => setTimeout(r, 3000));
return retry(hash, addr);
case 'hash_already_used':
// Already claimed. Don't retry.
throw new Error('Duplicate delegation attempt');
case 'signature_mismatch':
// Signer != payment sender. Sign with the same key.
throw new Error('Signer does not match payment sender');
case 'delegation_failed':
// Refund queued automatically if payment was verified.
if (result.refund) console.log('Refund queued:', result.refund);
break;
default:
console.error(result.error, result.message);
}
return;
}
// Success
console.log('Delegated:', result.energy, 'energy');
console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan
console.log('Ref:', result.ref);