Commit 456d4949 authored by chriseth's avatar chriseth

Merge pull request #145 from axic/patch/vm-events

Support event logs in VM mode
parents 0cafaeef c047b994
...@@ -150,24 +150,33 @@ UniversalDApp.prototype.getInstanceInterface = function (contract, address, $tar ...@@ -150,24 +150,33 @@ UniversalDApp.prototype.getInstanceInterface = function (contract, address, $tar
}); });
$events = $('<div class="events"/>'); $events = $('<div class="events"/>');
var parseLogs = function(err,response) {
$event = $('<div class="event" />')
var $close = $('<div class="udapp-close" />')
$close.click( function(){ $event.remove(); } )
$event.append( $('<span class="name"/>').text(response.event) )
.append( $('<span class="args" />').text( JSON.stringify(response.args, null, 2) ) )
.append( $close );
$events.append( $event );
}
if (self.options.vm){ if (self.options.vm){
self.vm.on('afterTx', function(response){ self.vm.on('afterTx', function(response){
// TODO: parse/use reponse.vm.logs for (var i in response.vm.logs) {
// [address, topics, mem]
var log = response.vm.logs[i];
// FIXME: parse based on ABI (match event name + decode values)
parseLogs(null, { event: log[1][0].toString('hex'), args: '0x' + log[2].toString('hex') });
}
}); });
} else { } else {
var eventFilter = web3contract.at(address).allEvents(); var eventFilter = web3contract.at(address).allEvents();
eventFilter.watch(function(err,response){ eventFilter.watch(parseLogs);
$event = $('<div class="event" />')
var $close = $('<div class="udapp-close" />')
$close.click( function(){ $event.remove(); } )
$event.append( $('<span class="name"/>').text(response.event) )
.append( $('<span class="args" />').text( JSON.stringify(response.args, null, 2) ) )
.append( $close );
$events.append( $event );
})
} }
$instance.append( $title ); $instance.append( $title );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment