aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/log.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/vm/log.go')
-rw-r--r--core/vm/log.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/vm/log.go b/core/vm/log.go
index 191e3a253..e4cc6021b 100644
--- a/core/vm/log.go
+++ b/core/vm/log.go
@@ -17,6 +17,7 @@
package vm
import (
+ "encoding/json"
"fmt"
"io"
@@ -63,6 +64,21 @@ func (l *Log) String() string {
return fmt.Sprintf(`log: %x %x %x %x %d %x %d`, l.Address, l.Topics, l.Data, l.TxHash, l.TxIndex, l.BlockHash, l.Index)
}
+func (r *Log) MarshalJSON() ([]byte, error) {
+ fields := map[string]interface{}{
+ "address": r.Address,
+ "data": fmt.Sprintf("%#x", r.Data),
+ "blockNumber": fmt.Sprintf("%#x", r.BlockNumber),
+ "logIndex": fmt.Sprintf("%#x", r.Index),
+ "blockHash": r.BlockHash,
+ "transactionHash": r.TxHash,
+ "transactionIndex": fmt.Sprintf("%#x", r.TxIndex),
+ "topics": r.Topics,
+ }
+
+ return json.Marshal(fields)
+}
+
type Logs []*Log
// LogForStorage is a wrapper around a Log that flattens and parses the entire