Setiap respons kesalahan memiliki dua kolom: error (dapat dibaca mesin, stabil, tidak pernah berubah antar versi) dan message (Dapat dibaca manusia, dapat ditingkatkan seiring waktu). Selalu nyalakan error dalam kode Anda. Tampilkan message kepada pengguna.

Format Kesalahan

Semua respons kesalahan mengikuti struktur yang sama:

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

Beberapa kesalahan menyertakan kolom tambahan: ref (ID referensi untuk upaya delegasi) dan refund (detail tentang pengembalian dana otomatis).

Kesalahan Validasi

Kode KesalahanHTTPMenyebabkanResolusi
invalid_tx_hash400tx_hash bukanlah string heksadesimal 64 karakter.Periksa format hash. Harus tepat 64 karakter heksadesimal, tanpa awalan.
invalid_address400delegate_to bukan alamat Tron yang validValidasi alamat dengan TronWeb () sebelum melakukan panggilan.
missing_signature400Tidak ada tanda tangan yang diberikan dalam permintaan tersebut.Tandatangani pesan tersebut {tx_hash}:{delegate_to} dengan tronWeb.trx.signMessageV2() dari dompet yang mengirimkan TRX .
invalid_signature401Tanda tangan tidak dapat diverifikasi.Pastikan Anda menandatangani dengan tepat. {tx_hash}:{delegate_to} (hash heksadesimal huruf kecil, titik dua, alamat Tron yang tepat).
signature_mismatch403Alamat penandatangan tidak sesuai dengan alamat pengirim pembayaran.Tanda tangan harus berasal dari dompet yang sama yang mengirimkan pembayaran TRX . Dompet berbeda = ditolak.

Kesalahan Pembayaran

Kode KesalahanHTTPMenyebabkanResolusi
payment_verification_failed404 / 400Pembayaran on-chain tidak dapat diverifikasi. message Kolom tersebut menjelaskan penyebab spesifiknya.Penyebab umum: transaksi belum dikonfirmasi (tunggu 3-5 detik dan coba lagi sekali), alamat penerima salah, transaksi bukan transfer TRX , di bawah minimum 4 TRX .
hash_already_used409Hash transaksi ini sudah diklaim.Setiap hash pembayaran hanya dapat digunakan sekali. Kirim pembayaran baru untuk delegasi baru.

Kesalahan Layanan

Kode KesalahanHTTPMenyebabkanResolusi
delegation_failed400 / 500Penyedia tidak dapat mengirimkan delegasi energi.Jika kegagalan terjadi setelah pembayaran Anda diverifikasi, pengembalian dana otomatis sedang diproses. Periksa refund objek. Jika tidak berhasil, coba lagi, atau hubungi dukungan dengan ref PENGENAL.
rate_limited429Terlalu banyak permintaan dari IP iniPerlambat dan coba lagi. Batasnya adalah 20 permintaan per detik.
server_error500Kesalahan internal yang tidak terdugaCoba lagi setelah beberapa detik. Jika masih berlanjut, hubungi dukungan dengan ref jika tersedia.

Menangani Kesalahan dalam Kode

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