关键注意事项

主要介绍智能合约开发中的参数配置。

用户付费比率

用户支付比率定义为智能合约用户应支付的费用比率。 因此,例如,如果用户支付比率设置为 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);
}