【Conflux】关于转账时的gas
gas过大是报错
conflux.web3j.RpcException: RPC error: code = -32602, message = Invalid parameters: tx, data = "transaction gas 20000000000 exceeds the maximum value 100000000"
gas过小时报错
conflux.web3j.RpcException: RPC error: code = -32602, message = Invalid parameters: tx, data = "\"NotEnoughBaseGas { required: 21000, got: 20900 }\""
at conflux.web3j.Account.mustSend(Account.java:111)
at conflux.web3j.Account.mustSend(Account.java:119)
at com.acuilab.bc.cfx.CFXCoin.transfer(CFXCoin.java:76)



总结:
- 在转账或调用合约函数时,传递的gas是指燃料的数量(可能改为gasCount更贴切一些),gas与gasPrice的乘积表示实际话费的燃料。gasLimit表示燃料数量的下限,指定gas时不能小于这个值,目前在官方conflux java sdk中,默认的gasLimit是21000
- 转账的时候由于不带任何data,因此默认21000的gas
 如果是调用合约函数,因为要带data,所需gas与data大小有关,可以通过estimate
 GasAndCollateral请求来估算。
- 外可以指定比gas下限多30%的gas,没用完的部分会退回到账户里,但是超过30%,就会被扣掉了;矿工打包交易的时候会有限打包gas高的,因此通过多指定gas可以加快打包速度。
- 具体到某个特定的交易,目前是有个estimate的函数可以调用。至于全网的gas fee估算,后续的scan功能中可能会涉及到,之前有过一点讨论。