ڈویلپر دستاویزات
ERROR CODES
تفصیل اور حل کے مراحل کے ساتھ TronEnergy API ایرر کوڈز کی مکمل فہرست۔
ہر غلطی کے جواب میں دو فیلڈز ہوتے ہیں: error (مشین پڑھنے کے قابل، مستحکم، ورژن کے درمیان کبھی نہیں بدلتا) اور message (انسانی پڑھنے کے قابل، وقت کے ساتھ ساتھ بہتر کیا جا سکتا ہے)۔ ہمیشہ سوئچ آن کریں۔ error آپ کے کوڈ میں۔ ڈسپلے message صارفین کو.
غلطی کی شکل
تمام خرابی کے جوابات ایک ہی ساخت کی پیروی کرتے ہیں:
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
کچھ خرابیوں میں اضافی فیلڈز شامل ہیں: ref (وفد کی کوشش کے لیے ایک حوالہ ID) اور refund (خودکار رقم کی واپسی کے بارے میں تفصیلات)۔
توثیق کی خرابیاں
| ایرر کوڈ | HTTP | وجہ | قرارداد |
|---|---|---|---|
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 ادائیگی بھیجی تھی۔ مختلف پرس = مسترد۔ |
ادائیگی کی خرابیاں
| ایرر کوڈ | HTTP | وجہ | قرارداد |
|---|---|---|---|
payment_verification_failed | 404 / 400 | آن چین ادائیگی کی تصدیق نہیں ہو سکی۔ دی message فیلڈ مخصوص وجہ بیان کرتا ہے۔ | عام وجوہات: tx کی ابھی تک تصدیق نہیں ہوئی (3-5 سیکنڈ انتظار کریں اور ایک بار دوبارہ کوشش کریں)، غلط وصول کنندہ کا پتہ، ٹرانزیکشن TRX ٹرانسفر نہیں ہے، کم از کم 4 TRX سے کم۔ |
hash_already_used | 409 | اس tx ہیش کا پہلے ہی دعوی کیا جا چکا ہے۔ | ہر ادائیگی کی ہیش صرف ایک بار استعمال کی جا سکتی ہے۔ نئے وفد کے لیے نئی ادائیگی بھیجیں۔ |
سروس کی خرابیاں
| ایرر کوڈ | HTTP | وجہ | قرارداد |
|---|---|---|---|
delegation_failed | 400 / 500 | فراہم کنندہ توانائی کے وفد کو نہیں پہنچا سکا | اگر آپ کی ادائیگی کی تصدیق ہونے کے بعد ناکامی ہوئی ہے، تو خودکار رقم کی واپسی قطار میں لگ جاتی ہے۔ چیک کریں۔ refund اعتراض بصورت دیگر دوبارہ کوشش کریں، یا سپورٹ سے رابطہ کریں۔ ref ID |
rate_limited | 429 | اس IP سے بہت زیادہ درخواستیں ہیں۔ | آہستہ کریں اور دوبارہ کوشش کریں۔ حد 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);