用户/开发者能源支付比率

用户付费比率

强烈建议在将合同部署到主网之前设置适当的用户能量支付比率。 用户能量支付比率为用户支付的智能合约执行的能量与开发者支付的能量的占比。 例如,如果用户能量支付比率设置为60,则用户支付60%的执行能量,而开发者(合同所有者)支付剩余的40%。 此参数只能为0到100之间(含0和100)的整数。 建议使用调高用户能量支付比例,以防用户攻击合同并耗尽合同所有者的帐户资产。

可以在Tron-Box和Tron-Web中设置此值:

Tron-Box

在Tron-Box上的智能合约部署,所有全局设置都在 tronbox.js中 文件。 在此文件中,有一个 consume_user_resource_percent 的参数,它指的是用户能量支付比率。

module.exports = {
  networks: {
    development: {
      from: 'TPL66VK2gCXNCD7EJg9pgJRfqcRazjhUZY',
      privateKey: 'da146374a75310b9666e834ee4ad0866d6f4035967bfc76217c5a495fff9f0d0',
      consume_user_resource_percent: 30,  // Set user energy pay ratio
      feeLimit: 1e9,
      originEnergyLimit: 1e7,
      fullHost: 'https://api.shasta.trongrid.io',
      network_id: "*" // Match any network id
    },
  }
};

Tron-Web

tronweb.contract.new API调用接受一个名为 userFeePercentage的参数。 此参数是指用户能量支付比率。

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,
    callValue: 0,
    userFeePercentage: 30,
    originEnergyLimit: 1e7,
    parameters: [param1, param2, param3, ...]
  })
  console.log(contract_instance.address);
}
deploy_contract();

更新用户能源支付比率

合同部署后,可以通过 updateSetting调整用户能源支付率端点。 请务必签署 & 广播此调用生效。