የገንቢ ሰነዶች
ERROR CODES
TronEnergy API ስህተት ኮዶችን ዝርዝር ከገለጻዎች እና የመፍትሄ ደረጃዎች ጋር ያጠናቅቁ።
እያንዳንዱ የስህተት ምላሽ ሁለት መስኮች አሉት፦ error (በማሽን የሚነበብ፣ የተረጋጋ፣ በስሪቶቹ መካከል ፈጽሞ የማይለወጥ) እና message (በሰው ሊነበብ የሚችል፣ በጊዜ ሂደት ሊሻሻል ይችላል)። ሁልጊዜ አብራ error በኮድዎ ውስጥ። አሳይ message ለተጠቃሚዎች።
የስህተት ቅርጸት
ሁሉም የስህተት ምላሾች ተመሳሳይ መዋቅር ይከተላሉ፦
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
አንዳንድ ስህተቶች ተጨማሪ መስኮችን ያካትታሉ፦ ref (ለውክልና ሙከራ የማጣቀሻ መታወቂያ) እና refund (ስለ አውቶማቲክ ተመላሽ ገንዘብ ዝርዝሮች)።
የማረጋገጫ ስህተቶች
| የስህተት ኮድ | ኤችቲቲፒ | ምክንያት | ጥራት |
|---|---|---|---|
invalid_tx_hash | 400 | tx_hash የ64-ቁምፊ ሄክስ ሕብረቁምፊ አይደለም | የሃሽ ቅርጸቱን ያረጋግጡ። በትክክል 64 የሄክስ ቁምፊዎች መሆን አለበት፣ ቅድመ ቅጥያ የለውም። |
invalid_address | 400 | delegate_to ትክክለኛ የ Tron አድራሻ አይደለም | ከመደወልዎ በፊት አድራሻውን በ TronWeb .isAddress() ያረጋግጡ። |
missing_signature | 400 | በጥያቄው ውስጥ ምንም ፊርማ አልቀረበም | መልዕክቱን ይፈርሙ {tx_hash}:{delegate_to} ከ ጋር tronWeb.trx.signMessageV2() TRX ን ከላከው የኪስ ቦርሳ። |
invalid_signature | 401 | ፊርማ ሊረጋገጥ አልቻለም | በትክክል መፈረምዎን ያረጋግጡ {tx_hash}:{delegate_to} (ዝቅተኛ ፊደል ያለው ሄክስ ሃሽ፣ ኮሎን፣ ትክክለኛ Tron አድራሻ)። |
signature_mismatch | 403 | የፈራሚው አድራሻ ከክፍያ ላኪው ጋር አይዛመድም | ፊርማው የ TRX ክፍያውን ከላከው ተመሳሳይ የኪስ ቦርሳ መምጣት አለበት። የተለየ የኪስ ቦርሳ = ውድቅ ተደርጓል። |
የክፍያ ስህተቶች
| የስህተት ኮድ | ኤችቲቲፒ | ምክንያት | ጥራት |
|---|---|---|---|
payment_verification_failed | 404 / 400 | በሰንሰለት ላይ የተደረገው ክፍያ ሊረጋገጥ አልቻለም። message መስክ የተወሰነውን ምክንያት ይገልጻል። | የተለመዱ ምክንያቶች፡- tx እስካሁን አልተረጋገጠም (ከ3-5 ሰከንዶች ይጠብቁ እና አንድ ጊዜ እንደገና ይሞክሩ)፣ የተሳሳተ የተቀባዩ አድራሻ፣ ግብይቱ የ TRX ዝውውር አይደለም፣ ከ4 TRX ዝቅተኛው በታች። |
hash_already_used | 409 | ይህ የቴክሳስ ሃሽ አስቀድሞ ተጠርቷል | እያንዳንዱ የክፍያ ሃሽ አንድ ጊዜ ብቻ ነው ጥቅም ላይ ሊውል የሚችለው። ለአዲስ ውክልና አዲስ ክፍያ ይላኩ። |
የአገልግሎት ስህተቶች
| የስህተት ኮድ | ኤችቲቲፒ | ምክንያት | ጥራት |
|---|---|---|---|
delegation_failed | 400 / 500 | አቅራቢው የኃይል ልዑክ መላክ አልቻለም | ክፍያዎ ከተረጋገጠ በኋላ ውድቀቱ ከተከሰተ፣ አውቶማቲክ ተመላሽ ገንዘብ ወረፋ ይይዛል። ያረጋግጡ refund ነገር። አለበለዚያ እንደገና ይሞክሩ ወይም ከድጋፍ ሰጪው ጋር ይገናኙ ref መታወቂያ። |
rate_limited | 429 | ከዚህ አይፒ በጣም ብዙ ጥያቄዎች | ፍጥነትዎን ይቀንሱ እና እንደገና ይሞክሩ። ገደቡ በሰከንድ 20 ጥያቄዎች ነው። |
server_error | 500 | ያልተጠበቀ ውስጣዊ ስህተት | ከጥቂት ሰከንዶች በኋላ እንደገና ይሞክሩ። ከቀጠለ፣ ድጋፍ ሰጪውን ያነጋግሩ ref የሚገኝ ከሆነ። |
በኮድ ውስጥ ያሉ ስህተቶችን ማስተናገድ
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);