因此,我在Superblocks中制作智能合约,我的智能合约中有一个函数,该函数接收一个值,该值加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(function(error,result),方法错误,但未显示任何错误,一切都可以编译,什么也没发生?有什么想法吗?或者我打算在我真的不懂智能合约编程吗,所以:/ ... thx