Как вызвать функцию контракта с несколькими аргументами? - PullRequest
1 голос
/ 27 сентября 2019

Я пытаюсь вызвать функцию моего контракта Solidity, которая принимает 3 аргумента.Вот как выглядит моя контрактная функция.

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 голосов
/ 27 сентября 2019

Вы должны использовать send вместо sendTransaction

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

Вы можете узнать больше о доступных методах там

...