我有一个合同实例:
var contract = web3.eth.contract(JSON.parse(abi)).at(address);我可以这样调用函数:
contract.myFunction.call();这个很好用。现在我想用函数调用发送一些ETH。我该怎么做?
发布于 2017-10-30 00:48:40
调用是函数的局部调用,它不改变Blockchain状态。这通常用于constant函数、检索变量值或在实际调用更改状态的Blockchain上的实际函数之前对该函数进行检查。
由于发送ETH更改状态,您需要实际将事务发送到Blockchain。
您可以通过不使用“call”:contract.myFunction(params, { from: _senderAddress, value: _amountToSendInWei, gas: _gasLimit })调用事务来做到这一点。
params是可选的,如果您的函数接受任何。
您需要确保_sender是授权的(即帐户未锁定)。
有关call vs sendTransaction的更多解释,您可以查看以下内容:呼叫对事务
https://ethereum.stackexchange.com/questions/29529
复制相似问题