我正在寻找一种估计TRC20令牌带宽/气体传输的方法。就像我们在以太一样
myContract.methods.myMethod(123).estimateGas({from: 'ERC20 address'})
.then(function(gasAmount){
...
})
.catch(function(error){
...
});研究了TRON文档,但没有找到任何相关的方法。任何帮助都将不胜感激。提前谢谢。
发布于 2022-08-03 13:42:24
要调用契约方法,您需要获得所需的能量和带宽事务量。
我的帐户有多少能量和带宽? 链接
//energy
currentAccountEnergy = EnergyLimit - EnergyUsed
//bandwidth
totalBandwidth = freeNetLimit + NetLimit;
totalBandwidthUsed = NetUsed + freeNetUsed;
currentAccountBandwidth = totalBandwidth - totalBandwidthUsed 如何计算事务带宽/能量?
对于传输Trx传输和trc10,您只需要带宽,对于trc20或智能合同,您需要支付带宽和能源。
计算带宽
howManyBandwidthNeed = byte length of transaction protobuf + 64;有关如何使用Protobuf创建tron事务,请参阅此书。
如果使用API接口进行事务处理,则可以使用以下公式计算带宽,在某些情况下,该值与1-3带宽略有不同。
int howManyBandwidthNeed = transaction["raw_data_hex"].length;
for (String i in transaction["signatur"]) {
howManyBandwidthNeed += i.length;
}
howManyBandwidthNeed = (howManyBandwidthNeed / 2).round() + 68;计算能量
接收能量是特定于契约的,它与eth_estimateGas在Ethereum中是相同的,请参阅此链接。
为了带宽需要消耗多少?
如果所需带宽小于您帐户的当前带宽,它将从您的帐户带宽中扣除,并且是免费的,否则,所需的带宽将乘以1000。
需要多少trx才能燃烧能源?
所需能量从您帐户的能量中减去,其余部分乘以280。
发布于 2022-04-18 19:55:08
对于正在寻找解决方案的人,请在tronweb或trongrid中使用getChainParameters方法。
https://developers.tron.network/reference/getchainparameters
https://stackoverflow.com/questions/67172564
复制相似问题