Ethereum 以太坊调用从另一个契约发出事件的契约方法

Ethereum 以太坊调用从另一个契约发出事件的契约方法,ethereum,solidity,Ethereum,Solidity,我有一个契约,它调用另一个契约上的方法,这会导致它发出一个事件——我正在节点进程中侦听该事件 如果我执行直接(从控制台)触发事件的方法,它将正常触发。但是如果我执行这个方法,首先调用初始契约,然后调用触发事件的契约,那么事件不会触发 是否有一种方法可以调用我丢失的后续合同,或者这是我无法设计的?以下代码描述了该问题: contract EventEmitter{ event Emit(address addr, string message); //this works whe

我有一个契约,它调用另一个契约上的方法,这会导致它发出一个事件——我正在节点进程中侦听该事件

如果我执行直接(从控制台)触发事件的方法,它将正常触发。但是如果我执行这个方法,首先调用初始契约,然后调用触发事件的契约,那么事件不会触发

是否有一种方法可以调用我丢失的后续合同,或者这是我无法设计的?以下代码描述了该问题:

contract EventEmitter{
    event Emit(address addr, string message);

    //this works when I call it directly from the console,ie:
    //emitter.doEmit("blah", {from: "[primary acc]", value: web3.toWei(100, "ether")});
    function doEmit(string message) returns (bool){
        Emit(msg.sender, message);
        return true;
    }
}

contract EventEmitterCaller{
    event TestEvent(string message);

    function callDoEmit(string message) returns (bool){
        EventEmitter emitter = new EventEmitter();
        //always returns false
        //emitterCaller.callDoEmit("blah", {from: "[primary acc]", value: web3.toWei(100, "ether")});
        return emitter.doEmit(message);
    }

}

需要按地址引用EventEmitter:

而不是

EventEmitter emitter = new EventEmitter();


嗯。我需要修改EventEmitterCaller以通过其地址引用EventEmitter契约:EventEmitter=EventEmitter([EventEmitter的地址])供参考,
EventEmitter emitter = EventEmitter(0xef833fea60388efd541b62737c7aa3b59a6d80ef);