Blockchain 调用契约方法的不同方法

Blockchain 调用契约方法的不同方法,blockchain,ethereum,solidity,truffle,Blockchain,Ethereum,Solidity,Truffle,我有一个方法名为getValues()的协定。我从Dapp调用的协定方法是'contractCAt.getValues.call(function(error,result){…}',这可以很好地使用'contractCAt.getValues(function(error,result){…}'这种语法也很好。我没有发现调用合同方法的两种方法之间有任何区别。所以有人能帮我介绍一下这些语法。请参阅: contractCAt.getValues.call()在本地运行,不会改变区块链上合同的状态

我有一个方法名为getValues()的协定。我从Dapp调用的协定方法是'contractCAt.getValues.call(function(error,result){…}',这可以很好地使用'contractCAt.getValues(function(error,result){…}'这种语法也很好。我没有发现调用合同方法的两种方法之间有任何区别。所以有人能帮我介绍一下这些语法。

请参阅:

  • contractCAt.getValues.call()
    在本地运行,不会改变区块链上合同的状态。不消耗任何乙醚
  • contractCAt.getValues.sendTransaction()
    会改变状态(假设事务已成功挖掘)
  • contractCAt.getValues()
    根据方法定义自动委托给上述两种方法之一。常量和纯函数将使用
    call()
    ,而其余函数将使用
    sendTransaction()

如果我在同步完成后关闭geth console,如果我在同一节点上重新打开geth console,我将获得相同的帐户和钱包。