Move Account register to xeth

This commit is contained in:
Taylor Gerring 2015-03-20 14:12:07 +01:00
parent 739c36ad4d
commit efcc93e7da
2 changed files with 48 additions and 46 deletions

View File

@ -16,12 +16,7 @@ import (
type EthereumApi struct { type EthereumApi struct {
eth *xeth.XEth eth *xeth.XEth
xethMu sync.RWMutex xethMu sync.RWMutex
db common.Database
// // Register keeps a list of accounts and transaction data
// regmut sync.Mutex
// register map[string][]*NewTxArgs
db common.Database
} }
func NewEthereumApi(eth *xeth.XEth, dataDir string) *EthereumApi { func NewEthereumApi(eth *xeth.XEth, dataDir string) *EthereumApi {
@ -42,39 +37,9 @@ func (self *EthereumApi) xeth() *xeth.XEth {
return self.eth return self.eth
} }
// func (self *EthereumApi) Register(args string, reply *interface{}) error {
// self.regmut.Lock()
// defer self.regmut.Unlock()
// if _, ok := self.register[args]; ok {
// self.register[args] = nil // register with empty
// }
// return nil
// }
// func (self *EthereumApi) Unregister(args string, reply *interface{}) error {
// self.regmut.Lock()
// defer self.regmut.Unlock()
// delete(self.register, args)
// return nil
// }
// func (self *EthereumApi) WatchTx(args string, reply *interface{}) error {
// self.regmut.Lock()
// defer self.regmut.Unlock()
// txs := self.register[args]
// self.register[args] = nil
// *reply = txs
// return nil
// }
func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error { func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error {
// Spec at https://github.com/ethereum/wiki/wiki/Generic-JSON-RPC // Spec at https://github.com/ethereum/wiki/wiki/Generic-JSON-RPC
rpclogger.Infof("%s %s", req.Method, req.Params) rpclogger.DebugDetailf("%s %s", req.Method, req.Params)
switch req.Method { switch req.Method {
case "web3_sha3": case "web3_sha3":
args := new(Sha3Args) args := new(Sha3Args)
@ -458,23 +423,24 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
} }
*reply = p.xeth().Whisper().Messages(args.Id) *reply = p.xeth().Whisper().Messages(args.Id)
// case "eth_register": // case "eth_register":
// args, err := req.ToRegisterArgs() // // Placeholder for actual type
// if err != nil { // args := new(HashIndexArgs)
// if err := json.Unmarshal(req.Params, &args); err != nil {
// return err // return err
// } // }
// return p.Register(args, reply) // *reply = p.xeth().Register(args.Hash)
// case "eth_unregister": // case "eth_unregister":
// args, err := req.ToRegisterArgs() // args := new(HashIndexArgs)
// if err != nil { // if err := json.Unmarshal(req.Params, &args); err != nil {
// return err // return err
// } // }
// return p.Unregister(args, reply) // *reply = p.xeth().Unregister(args.Hash)
// case "eth_watchTx": // case "eth_watchTx":
// args, err := req.ToWatchTxArgs() // args := new(HashIndexArgs)
// if err != nil { // if err := json.Unmarshal(req.Params, &args); err != nil {
// return err // return err
// } // }
// return p.WatchTx(args, reply) // *reply = p.xeth().PullWatchTx(args.Hash)
default: default:
return NewNotImplementedError(req.Method) return NewNotImplementedError(req.Method)
} }

View File

@ -95,6 +95,9 @@ type XEth struct {
messagesMut sync.RWMutex messagesMut sync.RWMutex
messages map[int]*whisperFilter messages map[int]*whisperFilter
// regmut sync.Mutex
// register map[string][]*interface{} // TODO improve return type
} }
// New creates an XEth that uses the given frontend. // New creates an XEth that uses the given frontend.
@ -434,6 +437,39 @@ func (self *XEth) MessagesChanged(id int) []WhisperMessage {
return nil return nil
} }
// func (self *XEth) Register(args string) bool {
// self.regmut.Lock()
// defer self.regmut.Unlock()
// if _, ok := self.register[args]; ok {
// self.register[args] = nil // register with empty
// }
// return true
// }
// func (self *XEth) Unregister(args string) bool {
// self.regmut.Lock()
// defer self.regmut.Unlock()
// if _, ok := self.register[args]; ok {
// delete(self.register, args)
// return true
// }
// return false
// }
// // TODO improve return type
// func (self *XEth) PullWatchTx(args string) []*interface{} {
// self.regmut.Lock()
// defer self.regmut.Unlock()
// txs := self.register[args]
// self.register[args] = nil
// return txs
// }
type KeyVal struct { type KeyVal struct {
Key string `json:"key"` Key string `json:"key"`
Value string `json:"value"` Value string `json:"value"`