Changed to ChainEvent and fixed a nil pointer in transact

This commit is contained in:
obscuren
2015-02-17 22:20:47 +01:00
parent 11e12680eb
commit 7fc9b5b3f9
8 changed files with 47 additions and 14 deletions

View File

@ -38,6 +38,35 @@ type NewTxArgs struct {
Data string `json:"data"`
}
func (obj *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
// Data can be either specified as "data" or "code" :-/
var ext struct {
From string
To string
Value string
Gas string
GasPrice string
Data string
Code string
}
if err = json.Unmarshal(b, &ext); err == nil {
if len(ext.Data) == 0 {
ext.Data = ext.Code
}
obj.From = ext.From
obj.To = ext.To
obj.Value = ext.Value
obj.Gas = ext.Gas
obj.GasPrice = ext.GasPrice
obj.Data = ext.Data
return
}
return NewErrorResponse(ErrorDecodeArgs)
}
type PushTxArgs struct {
Tx string `json:"tx"`
}

View File

@ -127,6 +127,9 @@ func (self *EthereumApi) NewFilterString(args string, reply *interface{}) error
filter := core.NewFilter(self.xeth.Backend())
callback := func(block *types.Block) {
self.logMut.Lock()
defer self.logMut.Unlock()
self.logs[id] = append(self.logs[id], &state.StateLog{})
}
if args == "pending" {
@ -153,6 +156,9 @@ func (self *EthereumApi) FilterChanged(id int, reply *interface{}) error {
}
func (self *EthereumApi) Logs(id int, reply *interface{}) error {
self.logMut.Lock()
defer self.logMut.Unlock()
filter := self.filterManager.GetFilter(id)
*reply = toLogs(filter.Find())