关键注意事项
主要介绍智能合约开发中的参数配置。
用户付费比率
用户支付比率定义为智能合约用户应支付的费用比率。 因此,例如,如果用户支付比率设置为 60,则用户支付合同成本的 60%。 此参数将接受 0 到 100 之间的任何整数,包括 0 和 100。 但是,强烈建议设置 1 和 99 之间的值。主要为了是保护自己,避免合同开发者遭受恶意无限循环超时攻击。
在合约部署时进行设置:
在 Vision-Box中
部署合约时,使用 visionbox.js 文件中,修改 consume_user_resource_percent:的参数,它指的是用户付费比率。
module.exports = {
networks: {
development: {
from: 'VR7P6zGiRDP4G1pkWGqe3Ys91CBchk82Nn',
privateKey: 'c87bc65d9b47c8b93809ea948fe92dd55fbdeedf59bc47ce0830f39ae7176cc7',
consume_user_resource_percent: 60, //user pay ratio
fee_limit: 100000000,
host: "https://vtest.infragrid.v.network/",
port: 8090,
fullNode: "https://vtest.infragrid.v.network/",
solidityNode: "https://vtest.infragrid.v.network/",
eventServer: "https://vtest.infragrid.v.network/",
network_id: "*" // Match any network id
}
}
};
在 VisionWeb 中
visionWeb.contract.new API 调用接受一个名为 userFeePercentage 的参数。 此参数是指用户支付比率。
let abi = 'abi for contract';
let code = 'bytecodes';
async function deploy_contract(){
let contract_instance = await visionWeb.contract().new({
abi:JSON.parse(abi),
bytecode:code,
feeLimit = 1_000_000_000,
callValue = 0,
userFeePercentage = 1, // user pay ratio
parameters:[para1,2,3,...]
})
console.log(contract_instance.address);
}
Updated almost 4 years ago