ہر خرابی کے جواب میں دو فیلڈز ہیں: error (مشین کے لیے قابلِ فہم، مستحکم، ورژن کے درمیان کبھی تبدیل نہیں ہوتا) اور message (انسان کے لیے قابلِ فہم، وقت کے ساتھ بہتر ہو سکتا ہے)۔ اپنے کوڈ میں ہمیشہ error پر سوئچ کریں۔ صارفین کو message دکھائیں۔

خرابی کی شکل

تمام خرابی کے جوابات ایک جیسی ساخت کی پیروی کرتے ہیں:

خرابی کا جواب
{ "error": "error_code_here", "message": "Human-readable explanation" }

کچھ غلطیوں میں اضافی فیلڈز شامل ہیں: ref (ڈیلیگیشن کوشش کے لیے حوالہ ID) اور refund (خودکار رقم واپسی کی تفصیلات)۔

توثیق کی غلطیاں

غلطی کوڈHTTPوجہحل
invalid_tx_hash400tx_hash 64 حروف والا hex string نہیں ہےہیش فارمیٹ چیک کریں۔ بالکل 64 hex حروف ہونے چاہیں، کوئی prefix نہیں۔
invalid_address400delegate_to درست Tron address نہیں ہےکال کرنے سے پہلے TronWeb.isAddress() سے address کی تصدیق کریں۔
missing_signature400درخواست میں کوئی دستخط فراہم نہیں کیا گیاپیغام پر دستخط کریں {tx_hash}:{delegate_to} کے ساتھ tronWeb.trx.signMessageV2() اس wallet سے جس نے TRX بھیجا۔
invalid_signature401دستخط کی تصدیق نہ ہو سکییقینی بنائیں کہ آپ نے بالکل دستخط کیا ہے {tx_hash}:{delegate_to} (lowercase hex hash، کولن، بالکل Tron address)۔
signature_mismatch403دستخط کنندہ address ادائیگی بھیجنے والے سے مماثل نہیں ہےدستخط اسی wallet سے ہونا چاہیے جس نے TRX ادائیگی بھیجی۔ مختلف wallet = مسترد۔

ادائیگی کی غلطیاں

غلطی کوڈHTTPوجہحل
payment_verification_failed404 / 400آن چین ادائیگی کی تصدیق نہ ہو سکی۔ message فیلڈ خاص وجہ بیان کرتا ہے۔عام وجوہات: tx ابھی تک تصدیق نہیں ہوئی (3-5 سیکنڈ انتظار کریں اور ایک بار دوبارہ کوشش کریں)، غلط وصول کنندہ address، ٹرانزیکشن TRX transfer نہیں ہے، 4 TRX کم سے کم سے کم ہے۔
hash_already_used409یہ tx hash پہلے سے دعویٰ کیا جا چکا ہےہر ادائیگی hash کو صرف ایک بار استعمال کیا جا سکتا ہے۔ نئی ڈیلیگیشن کے لیے نئی ادائیگی بھیجیں۔

سروس کی غلطیاں

غلطی کوڈHTTPوجہحل
delegation_failed400 / 500فراہم کنندہ توانائی ڈیلیگیشن فراہم نہ کر سکااگر ناکامی آپ کی ادائیگی کی تصدیق کے بعد ہوئی ہے تو ایک خودکار رقم واپسی قطار میں ہے۔ چیک کریں refund شے۔ ورنہ دوبارہ کوشش کریں، یا سپورٹ سے رابطہ کریں اور یہ ref ID فراہم کریں۔
rate_limited429اس IP سے بہت سی درخواستیںرفتار کم کریں اور دوبارہ کوشش کریں۔ حد 20 درخواستیں فی سیکنڈ ہے۔
server_error500غیر متوقع اندرونی خرابیکچھ سیکنڈ بعد دوبارہ کوشش کریں۔ اگر مسئلہ برقرار رہے تو سپورٹ سے رابطہ کریں اور یہ ref فراہم کریں (اگر دستیاب ہو)۔

کوڈ میں خرابیوں کو سنبھالنا

سفارش کردہ خرابی سنبھالنا
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