0

我有一份方法名称为 getValues() 的合同。从 Dapp 我将合同方法调用为 'contractCAt.getValues.call(function(error,result){...})' 这工作正常,并且使用 'contractCAt.getValues (function(error,result){...})' 这种语法也可以正常工作。我没有得到这两种调用合同方法的方法之间的任何区别。所以任何人都可以帮助我了解这些语法。

4

1 回答 1

1

请参阅web3j 文档

  • contractCAt.getValues.call()在本地运行,不会改变你在区块链上的合约状态。不消耗任何乙醚。
  • contractCAt.getValues.sendTransaction()确实改变了状态(假设交易被成功挖掘)。
  • contractCAt.getValues()根据方法定义自动委托给上述两者之一。将使用常量和纯函数call(),而其余的将使用sendTransaction().
于 2017-12-21T18:19:35.260 回答