如何调用具有多个参数的合同功能?

时间:2019-09-27 07:03:45

标签: ethereum solidity web3

我正在尝试调用带有3个参数的Solidity合同的函数。 这是我的合同功能的样子。

function test(string memory a, string memory b, string memory c) public{
 // Does something here (alters the data in the contract)
}

我现在正在尝试使用Web3 1.2.1版向该函数发送事务,但是遇到错误。

instance = await new web3.eth.Contract(JSON.parse(abi), address);
instance.methods.test("hello_a","hello_b","hello_c").sendTransaction({from:account});

代码位于async()块中,并且传递的所有参数均正确。但是我收到一个错误消息,说sendTransaction不是测试的功能。

我在这里错过了什么?

1 个答案:

答案 0 :(得分:1)

您应该使用send而不是sendTransaction

instance.methods.test("hello_a","hello_b","hello_c").send({from:account});

您可以阅读有关可用方法there

的更多信息