დეველოპერის დოკუმენტაცია
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 ველი აღწერს კონკრეტულ მიზეზს. | გავრცელებული მიზეზები: ტრანზაქცია ჯერ არ არის დადასტურებული (დაელოდეთ 3-5 წამი და სცადეთ ხელახლა), მიმღების არასწორი მისამართი, ტრანზაქცია არ არის TRX გადარიცხვა, 4 TRX მინიმუმზე ნაკლები. |
hash_already_used | 409 | ეს tx ჰეში უკვე მოთხოვნილია | თითოეული გადახდის ჰეშის გამოყენება მხოლოდ ერთხელ შეიძლება. გაგზავნეთ ახალი გადახდა ახალი დელეგირებისთვის. |
სერვისის შეცდომები
| შეცდომის კოდი | HTTP | მიზეზი | გარჩევადობა |
|---|---|---|---|
delegation_failed | 400 / 500 | პროვაიდერს არ შეეძლო ენერგიის დელეგირების განხორციელება | თუ შეცდომა თქვენი გადახდის დადასტურების შემდეგ მოხდა, თანხის ავტომატური დაბრუნება რიგში იქნება. შეამოწმეთ refund წინააღმდეგობა. წინააღმდეგ შემთხვევაში, სცადეთ ხელახლა ან დაუკავშირდით მხარდაჭერის სამსახურს ref პირადობის მოწმობა. |
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);