Я хочу отправить параметр в функцию в смарт-контракте, я пробовал разные способы, но он продолжает выдавать ошибку.
Мой файл солидности
pragma solidity ^0.4.18;
import "./ConvertLib.sol";
contract Check {
function multiply(uint a) public pure returns(uint){
return a*a;
}
}
Я успешно подключился к Web3 и создал экземпляр контракта как inst. Когда я пытаюсь выполнить функцию
console.log(inst.multiply.call()(function(err,result){console.log("r-->"+result);}));
это дает мне ошибку
Invalid number of arguments to Solidity function
и если я добавлю аргумент, как это
console.log(inst.multiply(2).call()(function(err,result){console.log("r-->"+result);}));
или как это
console.log(inst.multiply.call(2)(function(err,result){console.log("r-->"+result);}));
это дает мне эту ошибку
Error: The MetaMask Web3 object does not support synchronous methods like eth_call without a callback parameter.
Я использую Web3 версии 0.20.3