TronWeb استعمال کرتے ہوئے مکمل Node.js انضمام۔ ہر مرحلہ ایک الگ کوڈ بلاک ہے جو آپ اپنے پروجیکٹ میں کاپی کر سکتے ہیں۔ مکمل سرے سے سرے تک کی مثال نیچے ہے۔
ضروری چیزیں: Node.js 18+، tronweb انسٹال ہے ((npm install tronweb)، ایک فنڈ شدہ Tron والٹ۔
بہاؤ
کوئی API کلید نہیں۔ کوئی سائن اپ نہیں۔ آپ کا کوڈ TronEnergy ادائیگی کے پتے پر TRX آن چین بھیجتا ہے، ملکیت ثابت کرنے والا ایک پیغام پر دستخط کرتا ہے، پھر ڈیلیگیشن کا دعویٰ کرتا ہے۔ Energy تقریباً 3 سیکنڈ میں پہنچتی ہے۔ پھر آپ کا کوڈ منسلک energy استعمال کرتے ہوئے USDT بھیجتا ہے۔
قیمت لکیری ہے: 16,250 Energy فی TRX۔ کم سے کم آرڈر 4 TRX (65,000 Energy — ایک معیاری USDT ٹرانسفر)، زیادہ سے زیادہ 1,000 TRX (16.25M Energy)۔ آپ جو رقم بھیجتے ہیں وہ بالکل طے کرتا ہے کہ کتنی Energy واپس آتی ہے — کوئی سطریں یا پیکیجز نہیں۔ ایک معیاری ٹرانسفر کے لیے 4 بھیجیں۔ ایک نیا والٹ ٹرانسفر کے لیے 8 بھیجیں۔ بیچ کی کام کے لیے مزید بھیجیں۔ نیچے دیا گیا کوڈ ایک trxAmount متغیر استعمال کرتا ہے تاکہ آپ اسے ایک جگہ تبدیل کر سکیں۔
مرحلہ وار
1. سیٹ اپ
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 بھیجیں
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. ڈیلیگیشن کا دعویٰ کریں
// 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 بھیجیں
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);
خرابی کی سنبھال
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;
}
}
مکمل مثال
اسے ایک فائل میں کاپی کریں، اپنی ماحول کی متغیریں سیٹ کریں، اور اسے چلائیں۔ اسکرپٹ TRX بھیجتی ہے، پیغام پر دستخط کرتی ہے، دوبارہ کوشش کے ساتھ ڈیلیگیشن کا دعویٰ کرتی ہے، پھر USDT بھیجتی ہے۔
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);
ہمیشہ دستخط شامل کریں۔ یہ ثابت کرتا ہے کہ آپ وہ والٹ ہیں جس نے TRX بھیجا ہے۔ اس کے بغیر، API درخواست کو مسترد کرتا ہے missing_signature کے ساتھ۔