বিকাশকারী ডকুমেন্টেশন
TronEnergy API ত্রুটি কোড এবং সমস্যা সমাধান
TronEnergy API ত্রুটি কোডগুলির সম্পূর্ণ তালিকা বিবরণ, কারণ এবং সমাধান পদক্ষেপ সহ। পেমেন্ট যাচাইকরণ, স্বাক্ষর এবং ডেলিগেশন ত্রুটি কভার করে।
প্রতিটি ত্রুটি প্রতিক্রিয়ার দুটি ক্ষেত্র রয়েছে: error (মেশিন-পাঠযোগ্য, স্থিতিশীল, সংস্করণের মধ্যে কখনও পরিবর্তন হয় না) এবং message (মানব-পাঠযোগ্য, সময়ের সাথে উন্নত হতে পারে)। সর্বদা error এ সুইচ করুন আপনার কোডে। message ব্যবহারকারীদের কাছে প্রদর্শন করুন।
ত্রুটি ফরম্যাট
সমস্ত ত্রুটি প্রতিক্রিয়া একই কাঠামো অনুসরণ করে:
ত্রুটি প্রতিক্রিয়া
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
কিছু ত্রুটিতে অতিরিক্ত ফিল্ড রয়েছে: ref (এনার্জি ডেলিগেশন প্রচেষ্টার জন্য একটি রেফারেন্স আইডি) এবং 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 আইডি। |
rate_limited | 429 | এই আইপি থেকে খুব বেশি অনুরোধ | গতি কমান এবং পুনরায় চেষ্টা করুন। সীমা হল প্রতি সেকেন্ডে 20 অনুরোধ। |
server_error | 500 | অপ্রত্যাশিত অভ্যন্তরীণ ত্রুটি | কয়েক সেকেন্ড পরে পুনরায় চেষ্টা করুন। যদি সমস্যা বজায় থাকে, সাপোর্টের সাথে যোগাযোগ করুন 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);