diff options
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/api/personal.go | 16 | ||||
-rw-r--r-- | rpc/api/personal_args.go | 30 | ||||
-rw-r--r-- | rpc/api/utils.go | 1 | ||||
-rw-r--r-- | rpc/jeth.go | 9 | ||||
-rw-r--r-- | rpc/shared/types.go | 6 |
5 files changed, 7 insertions, 55 deletions
diff --git a/rpc/api/personal.go b/rpc/api/personal.go index 6c73ac83d..1b0dea330 100644 --- a/rpc/api/personal.go +++ b/rpc/api/personal.go @@ -36,7 +36,6 @@ var ( personalMapping = map[string]personalhandler{ "personal_listAccounts": (*personalApi).ListAccounts, "personal_newAccount": (*personalApi).NewAccount, - "personal_deleteAccount": (*personalApi).DeleteAccount, "personal_unlockAccount": (*personalApi).UnlockAccount, } ) @@ -105,21 +104,6 @@ func (self *personalApi) NewAccount(req *shared.Request) (interface{}, error) { return acc.Address.Hex(), err } -func (self *personalApi) DeleteAccount(req *shared.Request) (interface{}, error) { - args := new(DeleteAccountArgs) - if err := self.codec.Decode(req.Params, &args); err != nil { - return nil, shared.NewDecodeParamError(err.Error()) - } - - addr := common.HexToAddress(args.Address) - am := self.ethereum.AccountManager() - if err := am.DeleteAccount(addr, args.Passphrase); err == nil { - return true, nil - } else { - return false, err - } -} - func (self *personalApi) UnlockAccount(req *shared.Request) (interface{}, error) { args := new(UnlockAccountArgs) if err := self.codec.Decode(req.Params, &args); err != nil { diff --git a/rpc/api/personal_args.go b/rpc/api/personal_args.go index 5a584fb0c..89419029b 100644 --- a/rpc/api/personal_args.go +++ b/rpc/api/personal_args.go @@ -44,36 +44,6 @@ func (args *NewAccountArgs) UnmarshalJSON(b []byte) (err error) { return shared.NewInvalidTypeError("passhrase", "not a string") } -type DeleteAccountArgs struct { - Address string - Passphrase string -} - -func (args *DeleteAccountArgs) UnmarshalJSON(b []byte) (err error) { - var obj []interface{} - if err := json.Unmarshal(b, &obj); err != nil { - return shared.NewDecodeParamError(err.Error()) - } - - if len(obj) < 2 { - return shared.NewInsufficientParamsError(len(obj), 2) - } - - if addr, ok := obj[0].(string); ok { - args.Address = addr - } else { - return shared.NewInvalidTypeError("address", "not a string") - } - - if passhrase, ok := obj[1].(string); ok { - args.Passphrase = passhrase - } else { - return shared.NewInvalidTypeError("passhrase", "not a string") - } - - return nil -} - type UnlockAccountArgs struct { Address string Passphrase string diff --git a/rpc/api/utils.go b/rpc/api/utils.go index 50c607d16..5072dc2cd 100644 --- a/rpc/api/utils.go +++ b/rpc/api/utils.go @@ -118,7 +118,6 @@ var ( "personal": []string{ "listAccounts", "newAccount", - "deleteAccount", "unlockAccount", }, "shh": []string{ diff --git a/rpc/jeth.go b/rpc/jeth.go index 757f6b7eb..ae2603ae4 100644 --- a/rpc/jeth.go +++ b/rpc/jeth.go @@ -44,11 +44,12 @@ func NewJeth(ethApi shared.EthereumApi, re *jsre.JSRE, client comms.EthereumClie } func (self *Jeth) err(call otto.FunctionCall, code int, msg string, id interface{}) (response otto.Value) { - errObj := fmt.Sprintf("{\"message\": \"%s\", \"code\": %d}", msg, code) - retResponse := fmt.Sprintf("ret_response = JSON.parse('{\"jsonrpc\": \"%s\", \"id\": %v, \"error\": %s}');", shared.JsonRpcVersion, id, errObj) + m := shared.NewRpcErrorResponse(id, shared.JsonRpcVersion, code, fmt.Errorf(msg)) + errObj, _ := json.Marshal(m.Error) + errRes, _ := json.Marshal(m) - call.Otto.Run("ret_error = " + errObj) - res, _ := call.Otto.Run(retResponse) + call.Otto.Run("ret_error = " + string(errObj)) + res, _ := call.Otto.Run("ret_response = " + string(errRes)) return res } diff --git a/rpc/shared/types.go b/rpc/shared/types.go index 659b74bf6..dd9a60aab 100644 --- a/rpc/shared/types.go +++ b/rpc/shared/types.go @@ -74,11 +74,9 @@ type ErrorObject struct { } // Create RPC error response, this allows for custom error codes -func NewRpcErrorResponse(id interface{}, jsonrpcver string, errCode int, err error) *interface{} { - var response interface{} - +func NewRpcErrorResponse(id interface{}, jsonrpcver string, errCode int, err error) *ErrorResponse { jsonerr := &ErrorObject{errCode, err.Error()} - response = ErrorResponse{Jsonrpc: jsonrpcver, Id: id, Error: jsonerr} + response := ErrorResponse{Jsonrpc: jsonrpcver, Id: id, Error: jsonerr} glog.V(logger.Detail).Infof("Generated error response: %s", response) return &response |