Я начал первые шаги в блокчейне ethereum с контролем четности в частной сети.Мне удалось настроить четность и выполнить развертывание интеллектуального контракта в цепочке режимов разработки в моей частной сети через интерфейс четности, который также может вызывать методы контракта.
Проблема, с которой я сталкиваюсь, связана свызов функции в смарт-контракте с использованием Web3.js.Мне удалось подключиться к цепочке с помощью библиотеки Web.js;
Web3 = require('web3')
web3 = new Web3('ws://localhost:8546')
mycontract = web3.eth.Contract([{"constant":false,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}],0xEb112542a487941805F7f3a04591F1D6b04D513c)
Когда я вызываю метод ниже;
mycontract.methods.greet().call()
Это дает мне следующий вывод вместо возвратаожидаемая строка «OK Computer» в объекте обещания, записанная в функции приветствия смарт-контракта.
{ [Function: anonymousFunction]
send: { [Function] request: [Function] },
estimateGas: [Function],
encodeABI: [Function] }
Код смарт-контракта:
pragma solidity ^0.4.22;
//Compiler Version: 0.4.22
contract Greeter {
address owner;
constructor() public {
owner = msg.sender;
}
function greet() public returns(string){
return "OK Computer";
}
}