別のコントラクトのメソッドを呼び出すコントラクトがあります。これにより、ノードプロセスでリッスンしているイベントが発生します。
イベントを直接 (コンソールから) 発生させるメソッドを実行すると、問題なく発生します。しかし、メソッドを実行すると、最初のコントラクトを呼び出して、イベントを発生させるコントラクトを順番に呼び出すと、イベントは発生しません。
不足している後続の契約を呼び出す方法はありますか、またはこれは設計上できないことですか? 次のコードは、問題を説明しています。
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);
}
}