最佳实践
本指南向用户介绍智能合约开发中的一些最佳实践。
用户付费比率
用户支付比率定义为智能合约用户应支付的费用比率。 因此,例如,如果用户支付比率设置为 60,则用户支付合同成本的 60%。 此参数将接受 0 到 100 之间的任何整数,包括 0 和 100。 但是,强烈建议设置 1 和 99 之间的值。 原因是保护自己,即合同开发者免受恶意无限循环超时攻击。
有几个地方可以设置此值:
在 Tron-Box 中
在 DApp 开发期间,您必须使用 tronbox.js 文件。 在此文件中,有一个 consume_user_resource_percent:的参数,它指的是用户付费比率。
module.exports = {
networks: {
development: {
from: 'TPL66VK2gCXNCD7EJg9pgJRfqcRazjhUZY',
privateKey: 'da146374a75310b9666e834ee4ad0866d6f4035967bfc76217c5a495fff9f0d0',
consume_user_resource_percent: 30, //Set user pay ratio here
fee_limit: 100000000,
host: "https://api.trongrid.io",
port: 8090,
fullNode: "http://127.0.0.1:16667",
solidityNode: "http://127.0.0.1:16668",
// eventServer: "https://api.shasta.trongrid.io",
network_id: "*" // Match any network id
},
testnet: {
from: 'TPL66VK2gCXNCD7EJg9pgJRfqcRazjhUZY',
privateKey: 'da146374a75310b9666e834ee4ad0866d6f4035967bfc76217c5a495fff9f0d0',
consume_user_resource_percent: 30, //Set user pay ratio here
fee_limit: 100000000,
host: "https://api.trongrid.io",
port: 8090,
fullNode: "https://api.shasta.trongrid.io",
solidityNode: "https://api.shasta.trongrid.io",
eventServer: "https://api.shasta.trongrid.io",
network_id: "*" // Match any network id
},
production: {}
}
};在 Tron-Studio 中
可以在 Run 选项卡下的 Tron Studio IDE 中设置用户支付率。
在 Tron-Web 中
tronweb.contract.new API 调用接受一个名为 userFeePercentage 的参数。 此参数是指用户支付比率。
let abi = 'some abi for contract';
let code = 'bytecode';
async function deploy_contract(){
let contract_instance = await tronWeb.contract().new({
abi:JSON.parse(abi),
bytecode:code,
feeLimit = 1_000_000_000,
callValue = 0,
userFeePercentage = 1, //Set the user pay ratio here
parameters:[para1,2,3,...]
})
console.log(contract_instance.address);
}Updated 9 months ago