在智能合约中发送/创建事件并在js中监听事件

时间:2019-03-30 16:06:15

标签: solidity web3js

因此,我在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

0 个答案:

没有答案