API TO'LOV MANZILI
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
TRX ushbu manzilga yuboring. Sizning tx xeshingiz energiya delegatsiyasini talab qilish uchun ishlatiladi.

TronWeb yordamida Node.js integratsiyasini yakunlang. Har bir qadam mustaqil kod bloki bo'lib, uni loyihangizga nusxalashingiz mumkin. To'liq boshdan oxirigacha misol quyida keltirilgan.

Talablar: Node.js 18+, tronweb o'rnatilgan (npm install tronweb), moliyalashtirilgan Tron hamyonidir.

Oqim

API kaliti yo'q. Ro'yxatdan o'tish yo'q. Kodingiz TRX TronEnergy to'lov manziliga zanjir orqali yuboradi, egalikni tasdiqlovchi xabarni imzolaydi va keyin delegatsiyani talab qiladi. Energy taxminan 3 soniyada yetib keladi. Keyin kodingiz delegatsiya qilingan energiya yordamida USDT yuboradi.

Narxlar chiziqli: har bir TRX uchun 16 250 Energy . Minimal buyurtma 4 TRX (65 000 Energy — bitta standart USDT o'tkazmasi), maksimal 1000 TRX (16.25M Energy ). Siz yuborgan miqdor qancha Energy qaytib kelishini aniq belgilaydi — darajalar yoki paketlar yo'q. Bitta standart o'tkazma uchun 4 ta yuboring. Yangi hamyon o'tkazmasi uchun 8 ta yuboring. Ommaviy ish uchun ko'proq yuboring. Quyidagi kod a dan foydalanadi trxAmount o'zgaruvchan, shuning uchun uni bir joyda o'zgartirishingiz mumkin.

Bosqichma-bosqich

1. Sozlash

sozlash; o'rnatish
const { TronWeb } = require('tronweb'); // destructured: the default import is broken in v6 const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io', privateKey: process.env.TRON_PRIVATE_KEY, }); const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; // API payment address const USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';

2. TRX yuboring

to'lovni yuborish
const TRX_AMOUNT = 4; // Linear: 16,250 energy per TRX. Min 4, max 1000. // 4 → 65k (standard) · 8 → 130k (new wallet) · 40 → 650k (10 transfers) const payment = await tronWeb.trx.sendTransaction(ADDR, TRX_AMOUNT * 1e6); console.log('Payment tx:', payment.txid);

3. Delegatsiyani talab qiling

da'vo delegatsiyasi
// Sign: proves you are the sender const msg = `${payment.txid}:${tronWeb.defaultAddress.base58}`; const sig = await tronWeb.trx.signMessageV2(msg); const delegation = await fetch(`${API}/delegate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: payment.txid, delegate_to: tronWeb.defaultAddress.base58, signature: sig, }), }).then(r => r.json()); if (delegation.error) { throw new Error(delegation.message); } console.log('Energy delegated:', delegation.energy); // TRX_AMOUNT × 16,250

4. USDT ni yuboring

AQSh dollarini yuborish
const contract = await tronWeb.contract().at(USDT); const tx = await contract.transfer( recipientAddress, Math.round(usdtAmount * 1e6) ).send({ feeLimit: 50_000_000 }); console.log('USDT sent:', tx);

Xatolarni boshqarish

xatolarni qayta ishlash
const result = await fetch(`${API}/delegate`, { ... }) .then(r => r.json()); if (result.error) { switch (result.error) { case 'payment_verification_failed': // Payment not yet indexed on-chain. Wait 3s and retry. break; case 'hash_already_used': // Already claimed. Don't retry. break; case 'signature_mismatch': // Sender of TRX != signer of the message. Sign with the same key. break; case 'delegation_failed': // Provider could not deliver. Retry or contact support with result.ref. break; } }

To'liq misol

Buni faylga nusxalang, muhit o'zgaruvchilarini o'rnating va ishga tushiring. Skript TRX yuboradi, xabarni imzolaydi, delegatsiyani qayta urinish bilan tasdiqlaydi va keyin USDT yuboradi.

delegate-energy.js
const { TronWeb } = require('tronweb'); // destructured: default import is broken in v6 const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io', privateKey: process.env.TRON_PRIVATE_KEY, }); const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; const USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'; async function claimWithRetry(txHash, delegateTo, signature, retries = 3) { for (let i = 0; i < retries; i++) { const res = await fetch(`${API}/delegate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: txHash, delegate_to: delegateTo, signature }), }).then(r => r.json()); if (!res.error) return res; if (res.error !== 'payment_verification_failed') throw new Error(res.message); await new Promise(r => setTimeout(r, 3000)); } throw new Error('Transaction not found after retries'); } async function main() { const recipient = 'TRecipientWallet'; const trxAmount = 4; // min 4, max 1000 — you get trxAmount × 16,250 energy // 1. Send TRX (linear pricing: 16,250 energy per TRX) const payment = await tronWeb.trx.sendTransaction(ADDR, trxAmount * 1e6); console.log('Payment:', payment.txid); // 2. Claim delegation // Sign: proves you are the sender const message = `${payment.txid}:${recipient}`; const signature = await tronWeb.trx.signMessageV2(message); const result = await claimWithRetry(payment.txid, recipient, signature); console.log('Delegated:', result.energy, 'energy'); console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan console.log('Ref:', result.ref); // 3. Send USDT const contract = await tronWeb.contract().at(USDT); const tx = await contract.transfer(recipient, 10 * 1e6).send(); console.log('USDT sent:', tx); } main().catch(console.error);
Har doim imzo qo&#39;ying. Bu sizning TRX yuborgan hamyon ekanligingizni isbotlaydi. Busiz, API so&#39;rovni quyidagi bilan rad etadi missing_signature.
Telegram WhatsApp