I have one contract with method name as getValues().From Dapp I am invoking contract method as 'contractCAt.getValues.call(function(error,result){...})' this works fine and by using 'contractCAt.getValues(function(error,result){...})' this syntax also works fine.I didn't get any difference between those two ways to invoke contract method.So could anyone help me to give idea about those syntax.
See the web3j documentation:
contractCAt.getValues.call()
is run locally and will not alter the state of your contract on the blockchain. Does not consume any ether.contractCAt.getValues.sendTransaction()
does alter the state (assuming the transaction is successfully mined).contractCAt.getValues()
automatically delegates to one of the two above based on the method definition. Constant and pure functions will usecall()
while the rest will usesendTransaction()
.
来源:https://stackoverflow.com/questions/47920110/different-ways-to-invoke-contract-method