MGA DOKUMENTO NG TAGAPAG-UNLAD
ERROR CODES
Kumpletong listahan ng mga error code ng TronEnergy API na may mga paglalarawan at hakbang sa paglutas.
Ang bawat tugon sa error ay may dalawang field: error (mababasa ng makina, matatag, hindi nagbabago sa pagitan ng mga bersyon) at message (mababasa ng tao, maaaring mapabuti sa paglipas ng panahon). Palaging i-on error sa iyong code. Ipakita message sa mga gumagamit.
Error Format
Ang lahat ng mga tugon sa error ay sumusunod sa parehong istraktura:
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
Kasama sa ilang error ang mga karagdagang field: ref (isang reference ID para sa pagtatangkang magtalaga) at refund (mga detalye tungkol sa awtomatikong refund).
Mga Error sa Pagpapatunay
| Kodigo ng Error | HTTP | Dahilan | Resolusyon |
|---|---|---|---|
invalid_tx_hash | 400 | Ang tx_hash ay hindi isang 64-karakter na hex string | Suriin ang format ng hash. Dapat ay eksaktong 64 na hex character, walang prefix. |
invalid_address | 400 | Ang delegate_to ay hindi isang wastong Tron address | Patunayan ang address gamit ang TronWeb .isAddress() bago tumawag. |
missing_signature | 400 | Walang lagdang ibinigay sa kahilingan | Lagdaan ang mensahe {tx_hash}:{delegate_to} kasama tronWeb.trx.signMessageV2() mula sa pitaka na nagpadala ng TRX . |
invalid_signature | 401 | Hindi ma-verify ang lagda | Siguraduhing eksaktong pumirma ka {tx_hash}:{delegate_to} (maliit na hex hash, tutuldok, eksaktong Tron address). |
signature_mismatch | 403 | Hindi tugma ang address ng pumirma sa nagpadala ng bayad | Ang lagda ay dapat manggaling sa parehong wallet na nagpadala ng bayad sa TRX . Ibang wallet = tinanggihan. |
Mga Error sa Pagbabayad
| Kodigo ng Error | HTTP | Dahilan | Resolusyon |
|---|---|---|---|
payment_verification_failed | 404 / 400 | Hindi ma-verify ang on-chain na bayad. Ang message Inilalarawan ng patlang ang tiyak na sanhi. | Mga karaniwang sanhi: hindi pa nakumpirma ang tx (maghintay ng 3-5 segundo at subukan muli nang isang beses), maling address ng tatanggap, ang transaksyon ay hindi isang TRX transfer, mas mababa sa 4 TRX minimum. |
hash_already_used | 409 | Na-claim na ang tx hash na ito | Ang bawat payment hash ay maaari lamang gamitin nang isang beses. Magpadala ng bagong bayad para sa isang bagong delegasyon. |
Mga Error sa Serbisyo
| Kodigo ng Error | HTTP | Dahilan | Resolusyon |
|---|---|---|---|
delegation_failed | 400 / 500 | Hindi maihatid ng provider ang paglalaan ng enerhiya | Kung nangyari ang pagkabigo pagkatapos ma-verify ang iyong bayad, awtomatikong nakapila ang isang refund. Suriin ang refund bagay. Kung hindi, subukan muli, o makipag-ugnayan sa suporta sa ref ID. |
rate_limited | 429 | Masyadong maraming kahilingan mula sa IP na ito | Dahan-dahanin at subukan muli. Ang limitasyon ay 20 kahilingan bawat segundo. |
server_error | 500 | Hindi inaasahang panloob na error | Subukang muli pagkatapos ng ilang segundo. Kung magpapatuloy, makipag-ugnayan sa suporta sa ref kung mayroon. |
Paghawak ng mga Error sa 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);