Her hata yanıtının iki alanı vardır: error (makine tarafından okunabilir, kararlı, sürümler arasında asla değişmez) ve message (insan tarafından okunabilir, zaman içinde iyileştirilebilir). Kodunda her zaman error üzerinde geç. message kullanıcılara göster.

Hata Biçimi

Tüm hata yanıtları aynı yapıyı izler:

hata yanıtı
{ "error": "error_code_here", "message": "Human-readable explanation" }

Bazı hatalar ek alanlar içerir: ref (delegasyon denemesine ait bir referans kimliği) ve refund (otomatik geri ödeme hakkında ayrıntılar).

Doğrulama Hataları

Hata KoduHTTPSebepÇözüm
invalid_tx_hash400tx_hash, 64 karakterli hex dizesi değildirHash biçimini kontrol edin. Tam olarak 64 hex karakter olmalı, ön ek yok.
invalid_address400delegate_to geçerli bir Tron adresi değildirÇağrıyı yapmadan önce adresi TronWeb.isAddress() ile doğrulayın.
missing_signature400İstekte hiçbir imza sağlanmamıştırMesajı {tx_hash}:{delegate_to} ile tronWeb.trx.signMessageV2() tarafından TRX gönderen cüzdandan imzalayın.
invalid_signature401İmza doğrulanamadıTam olarak {tx_hash}:{delegate_to} imzaladığınızdan emin olun (küçük harf hex hash, iki nokta, tam Tron adresi).
signature_mismatch403İmzalayan adres ödeme göndericisiyle eşleşmiyorİmza, TRX ödemesini gönderen aynı cüzdandan gelmelidir. Farklı cüzdan = reddedildi.

Ödeme Hataları

Hata KoduHTTPSebepÇözüm
payment_verification_failed404 / 400Zincir üstü ödeme doğrulanamadı. message alanı belirli sebebi açıklar.Yaygın sebepler: tx henüz onaylanmadı (3-5 saniye bekleyin ve bir kez daha deneyin), yanlış alıcı adresi, işlem TRX transferi değil, 4 TRX minimumunun altında.
hash_already_used409Bu tx hash zaten talep edilmiştirHer ödeme hash'i yalnızca bir kez kullanılabilir. Yeni delegasyon için yeni bir ödeme gönderin.

Hizmet Hataları

Hata KoduHTTPSebepÇözüm
delegation_failed400 / 500Sağlayıcı enerji delegasyonunu gerçekleştiremediHatanız ödemeniz doğrulandıktan sonra gerçekleştiyse, otomatik geri ödeme kuyruğa alınmıştır. refund nesnesi. Aksi takdirde yeniden deneyin veya destek ile iletişime geçin ref ID.
rate_limited429Bu IP'den çok fazla istekYavaşlayın ve yeniden deneyin. Limit saniyede 20 istektir.
server_error500Beklenmeyen iç hataBirkaç saniye sonra yeniden deneyin. Devam ederse, destek ile iletişime geçin ref (varsa).

Kodda Hataları Yönetmek

önerilen hata işleme
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