部署/执行的费用限制
费用限制
在主网上部署合约之前,最好能设置一个合理的费用限制。 费用限制是指 TRX 中智能合约部署/执行成本的上限。 有关能量成本模式,请参阅 能量。 此限制是以 SUN (1e-6 TRX) 来衡量的。 最大限制为1000 TRX 或 1e9 SUN。 如果将其设置为大于 1e9 的值,则会产生错误。
在部署大型合同或运行复杂功能时,此限制可能需要增加到 1000 TRX。 但是,检查超时、无限循环、非法操作和不存在的帐户转移部分,是为什么设置更高的限制有时候可能是不良做法的原因。
可以在 Tron-Box 和 Tron-Web 中设置此值:
Tron-Box
就 Tron-Box 智能合约部署而言,所有全局设置都在 tronbox.js 文件中。 在此文件中,有一个名为费用限制的参数 ,指的是费用限额。
module.exports = {
networks: {
development: {
from: 'TPL66VK2gCXNCD7EJg9pgJRfqcRazjhUZY',
privateKey: 'da146374a75310b9666e834ee4ad0866d6f4035967bfc76217c5a495fff9f0d0',
consume_user_resource_percent: 30,
feeLimit: 1e9, // Set fee limit
originEnergyLimit: 1e7,
fullHost: 'https://api.shasta.trongrid.io',
network_id: "*" // Match any network id
},
}
};Tron-Web
tronweb.contract.new 的API调用传入一个名为费用限制的参数。 此参数是指费用限额。
let abi = 'abi';
let code = 'bytecode';
async function deploy_contract() {
let contract_instance = await tronWeb.contract().new({
abi: JSON.parse(abi),
bytecode: code,
feeLimit: 1e9, // Set fee limit
callValue: 0,
userFeePercentage: 30,
originEnergyLimit: 1e7,
parameters: [param1, param2, param3, ...]
})
console.log(contract_instance.address);
}
deploy_contract();Updated 9 months ago