diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-23 23:35:49 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-23 23:35:49 +0800 |
commit | 253ecdc8bba1b522e80fdee69410854f19a5a972 (patch) | |
tree | 4cdad80599f03c741634d7e6f9a856b8fe070ee1 /rpc/api.go | |
parent | 9be7853e349f97917120fd925e2c5a462bd78846 (diff) | |
parent | 3f6e1b2fd3cbc6aeb1bbe658dd5b70945a57dffa (diff) | |
download | dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.tar dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.tar.gz dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.tar.bz2 dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.tar.lz dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.tar.xz dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.tar.zst dexon-253ecdc8bba1b522e80fdee69410854f19a5a972.zip |
Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into develop
Diffstat (limited to 'rpc/api.go')
-rw-r--r-- | rpc/api.go | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/rpc/api.go b/rpc/api.go index 427032995..4cd88aa71 100644 --- a/rpc/api.go +++ b/rpc/api.go @@ -21,7 +21,10 @@ type EthereumApi struct { func NewEthereumApi(xeth *xeth.XEth, dataDir string) *EthereumApi { // What about when dataDir is empty? - db, _ := ethdb.NewLDBDatabase(path.Join(dataDir, "dapps")) + db, err := ethdb.NewLDBDatabase(path.Join(dataDir, "dapps")) + if err != nil { + panic(err) + } api := &EthereumApi{ eth: xeth, db: db, @@ -361,7 +364,7 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err return err } - api.db.Put([]byte(args.Database+args.Key), []byte(args.Value)) + api.db.Put([]byte(args.Database+args.Key), args.Value) *reply = true case "db_getString": args := new(DbArgs) @@ -375,8 +378,30 @@ func (api *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) err res, _ := api.db.Get([]byte(args.Database + args.Key)) *reply = string(res) - case "db_putHex", "db_getHex": - return NewNotImplementedError(req.Method) + case "db_putHex": + args := new(DbHexArgs) + if err := json.Unmarshal(req.Params, &args); err != nil { + return err + } + + if err := args.requirements(); err != nil { + return err + } + + api.db.Put([]byte(args.Database+args.Key), args.Value) + *reply = true + case "db_getHex": + args := new(DbHexArgs) + if err := json.Unmarshal(req.Params, &args); err != nil { + return err + } + + if err := args.requirements(); err != nil { + return err + } + + res, _ := api.db.Get([]byte(args.Database + args.Key)) + *reply = common.ToHex(res) case "shh_post": args := new(WhisperMessageArgs) if err := json.Unmarshal(req.Params, &args); err != nil { |