Итак, я делаю умный контракт в Суперблоках, в моем умном договоре есть функция, которая получает значение, добавляет 1 к этому значению и возвращает результат, который отображается на веб-странице. Поскольку sendTransaction не возвращает результат, я решил создать событие (результат добавления одного) в моем смарт-контракте и прослушать это событие в моем js. файл. После возврата txHash из смарт-контракта, который я называю прослушиванием события, у меня нет ошибок, все компилируется нормально, но ничего не происходит, когда событие прослушивается. Код :
// мой умный код контракта
contract calculate {
uint testNum ;
function calculate() public {
// owner = msg.sender ;
}
event emitNum (
uint eventNum
);
function multiply (uint num) public {
testNum = num ;
emit emitNum (testNum);
}
// мой JS. код файла
function multiply (){
let val = parseInt($("#cal").val());
instance.multiply.sendTransaction(val,{ from: accounts[0], gas : 300000, value: null}, function(error, result){
if (error){
alert(error);
}
else {
alert("the txHash came back and listening for an event")
var event = instance.multiply.emitNum(function(error, result) {
if (!error)
$("#message").html(result);
alert("event watch")
});
}
});
};
$(document).ready(function () {
init(function () {
});
$("#submit").click(function (){
multiply();
})
});
})(Contracts['calculate']);
Теперь, может быть, я вызываю instance.multiply.emitNum (функция (ошибка, результат), неправильный путь, но ошибки не отображаются, все компилируется нормально, просто ничего не происходит? Есть идеи? Или я собираюсь сделать это в действительно неверный путь? Я новичок в умном программировании контрактов так: / ... THX