You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shasta测试网发送USDT持续提示“Out of Energy”问题求助

问题描述

在Shasta测试网的账户中持有5000 TRX和等量USDT,尝试发送USDT时始终失败,返回结果为Failed - Out of Energy。

相关实现代码:

async function transferTronTRC20Token(amount, privateKey, contractAddress) {
  let url = TRON_API_URL;
  const tronWeb = new TronWeb({
    fullHost: url,
    headers: {},
    privateKey: privateKey,
  });

  const options = {
    feeLimit: 10_000_000,
    callValue: 0
  };

  const tx = await tronWeb.transactionBuilder.triggerSmartContract(
    contractAddress,
    'transfer(address,uint256)',
    options,
    [{
      type: 'address',
      value: toWallet
    }, {
      type: 'uint256',
      value: amount * 1_000_000
    }]
  );

  if (!tx.result || !tx.result.result) {
    return console.error(`triggerSmartContract: ${tx}`);
  }

  const signedTx = await tronWeb.trx.sign(tx.transaction);
  if (!signedTx.signature) {
    return console.error(`trx.sign: ${signedTx}`);
  }

  return await tronWeb.trx.sendRawTransaction(signedTx);
}

失败交易哈希:64b190a7064926a62a19c28ecef0454d50b2c38af4711093a111e845e9488664
使用的USDT合约地址:TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs

解决方法
  • 开启TRX自动抵扣Energy:TRC20转账属于智能合约调用,需消耗Energy。若账户未冻结TRX获取Energy,必须开启TRX自动抵扣Energy功能。可通过Shasta测试网Tronscan页面手动开启,或在TronWeb实例配置中添加allowUnlimitedContractSize: true参数。
  • 校验feeLimit参数:当前设置的10_000_000对应10 TRX,额度足够覆盖USDT转账的Energy消耗,但需确认单位为sun(1 TRX = 1,000,000 sun),避免因单位错误导致额度不足。
  • 检查toWallet变量合法性:代码中使用了未定义的toWallet变量,需确保其为合规的Tron base58格式地址。地址格式错误可能触发异常,即便错误提示为Energy不足。
  • 手动冻结TRX获取Energy:在Shasta测试网Tronscan页面冻结少量TRX(如100 TRX),即可获得足够Energy用于合约调用,冻结的TRX后续可解冻取回。

内容的提问来源于stack exchange,提问作者Marco C. Stewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:09:53