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.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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()
.