Har bir xato javobi ikkita maydonga ega: error (mashina tomonidan o'qiladigan, barqaror, versiyalar orasida hech qachon o'zgarmaydi) va message (odam o'qiy oladigan, vaqt o'tishi bilan yaxshilanishi mumkin). Har doim yoqing error kodingizda. Displey message foydalanuvchilarga.

Xato formati

Barcha xato javoblari bir xil tuzilishga amal qiladi:

error response
{ "error": "error_code_here", "message": "Human-readable explanation" }

Ba'zi xatolar qo'shimcha maydonlarni o'z ichiga oladi: ref (delegatsiya urinishi uchun ma'lumotnoma identifikatori) va refund (avtomatik qaytarish haqida batafsil ma'lumot).

Tasdiqlash xatolari

Xato kodiHTTPSababRuxsat
invalid_tx_hash400tx_hash 64 belgili hex qatori emasXesh formatini tekshiring. Aniq 64 ta o'n oltilik belgidan iborat bo'lishi kerak, prefikssiz.
invalid_address400delegate_to haqiqiy Tron manzili emasQo'ng'iroq qilishdan oldin manzilni TronWeb .isAddress() yordamida tasdiqlang.
missing_signature400So'rovda imzo ko'rsatilmaganXabarni imzolang {tx_hash}:{delegate_to} bilan tronWeb.trx.signMessageV2() TRX yuborgan hamyondan.
invalid_signature401Imzo tekshirilmadiTo'liq imzolaganingizga ishonch hosil qiling {tx_hash}:{delegate_to} (kichik harflar bilan hex xesh, ikki nuqta, aniq Tron manzili).
signature_mismatch403Imzolovchining manzili to'lov jo'natuvchisi bilan mos kelmaydiImzo TRX to'lovini yuborgan hamyondan bo'lishi kerak. Boshqa hamyon = rad etilgan.

To'lov xatolari

Xato kodiHTTPSababRuxsat
payment_verification_failed404 / 400Zanjir ichidagi to'lovni tekshirib bo'lmadi. message maydon aniq sababni tavsiflaydi.Umumiy sabablar: TX hali tasdiqlanmagan (3-5 soniya kuting va bir marta qayta urinib ko'ring), noto'g'ri qabul qiluvchining manzili, tranzaksiya TRX o'tkazmasi emas, 4 TRX minimal miqdoridan past.
hash_already_used409Bu tx xeshi allaqachon da'vo qilinganHar bir toʻlov xeshidan faqat bir marta foydalanish mumkin. Yangi delegatsiya uchun yangi toʻlov yuboring.

Xizmat xatolari

Xato kodiHTTPSababRuxsat
delegation_failed400 / 500Provayder energiya delegatsiyasini yetkazib bera olmadiAgar xatolik to'lovingiz tasdiqlangandan keyin sodir bo'lsa, avtomatik qaytarish navbatga qo'yiladi. Tekshiring refund obyekt. Aks holda, qayta urinib ko'ring yoki qo'llab-quvvatlash xizmatiga murojaat qiling ref Shaxsni tasdiqlovchi hujjat.
rate_limited429Bu IP manzilidan juda ko'p so'rovlarSekinlashtiring va qayta urinib ko'ring. Cheklov sekundiga 20 ta so'rov.
server_error500Kutilmagan ichki xatoBir necha soniyadan keyin qayta urinib ko'ring. Agar muammo davom etsa, qo'llab-quvvatlash xizmatiga murojaat qiling ref agar mavjud bo'lsa.

Koddagi xatolarni qayta ishlash

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);
Telegram WhatsApp