Entwicklerdokumentation
ERROR CODES
Vollständige Liste der TronEnergy API Fehlercodes mit Beschreibungen und Lösungsschritten.
Jede Fehlermeldung enthält zwei Felder: error (maschinenlesbar, stabil, ändert sich nie zwischen den Versionen) und message (Menschenlesbar, kann im Laufe der Zeit verbessert werden). Immer einschalten error in Ihrem Code. Anzeige message für Benutzer.
Fehlerformat
Alle Fehlermeldungen folgen der gleichen Struktur:
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
Einige Fehler enthalten zusätzliche Felder: ref (eine Referenz-ID für den Delegierungsversuch) und refund (Details zur automatischen Rückerstattung).
Validierungsfehler
| Fehlercode | HTTP | Ursache | Auflösung |
|---|---|---|---|
invalid_tx_hash | 400 | tx_hash ist keine 64-stellige Hexadezimalzeichenkette. | Überprüfen Sie das Hash-Format. Es muss genau 64 Hexadezimalzeichen lang sein, ohne Präfix. |
invalid_address | 400 | delegate_to ist keine gültige Tron Adresse | Überprüfen Sie die Adresse vor dem Aufruf mit TronWeb (). |
missing_signature | 400 | Der Anfrage lag keine Unterschrift bei. | Unterschreiben Sie die Nachricht {tx_hash}:{delegate_to} mit tronWeb.trx.signMessageV2() aus der Wallet, die die TRX gesendet hat. |
invalid_signature | 401 | Die Signatur konnte nicht verifiziert werden. | Stellen Sie sicher, dass Sie genau unterschrieben haben. {tx_hash}:{delegate_to} (Hexadezimal-Hash in Kleinbuchstaben, Doppelpunkt, exakte Tron Adresse). |
signature_mismatch | 403 | Die Adresse des Unterzeichners stimmt nicht mit der Adresse des Zahlungsabsenders überein. | Die Signatur muss von derselben Wallet stammen, von der die TRX Zahlung gesendet wurde. Andere Wallet = Ablehnung. |
Zahlungsfehler
| Fehlercode | HTTP | Ursache | Auflösung |
|---|---|---|---|
payment_verification_failed | 404 / 400 | Die On-Chain-Zahlung konnte nicht verifiziert werden. message Das Feld beschreibt die spezifische Ursache. | Häufige Ursachen: Transaktion noch nicht bestätigt (3-5 Sekunden warten und einmal wiederholen), falsche Empfängeradresse, Transaktion ist keine TRX Überweisung, unter dem Mindestbetrag von 4 TRX . |
hash_already_used | 409 | Dieser Transaktions-Hash wurde bereits beansprucht. | Jeder Zahlungs-Hash kann nur einmal verwendet werden. Senden Sie eine neue Zahlung für eine neue Delegation. |
Servicefehler
| Fehlercode | HTTP | Ursache | Auflösung |
|---|---|---|---|
delegation_failed | 400 / 500 | Der Anbieter konnte die Energielieferung nicht durchführen. | Wenn der Fehler nach der Zahlungsbestätigung aufgetreten ist, wird eine automatische Rückerstattung veranlasst. Überprüfen Sie die refund Andernfalls versuchen Sie es erneut oder wenden Sie sich mit dem Objekt an den Support. ref AUSWEIS. |
rate_limited | 429 | Zu viele Anfragen von dieser IP-Adresse | Langsamer vorgehen und erneut versuchen. Limit: 20 Anfragen pro Sekunde. |
server_error | 500 | Unerwarteter interner Fehler | Versuchen Sie es nach einigen Sekunden erneut. Sollte das Problem weiterhin bestehen, wenden Sie sich bitte an den Support. ref falls verfügbar. |
Fehlerbehandlung im Code
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);