diff options
Diffstat (limited to 'console/bridge.go')
-rw-r--r-- | console/bridge.go | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/console/bridge.go b/console/bridge.go index 7f7e6feb1..f0c59804b 100644 --- a/console/bridge.go +++ b/console/bridge.go @@ -46,7 +46,7 @@ func newBridge(client *rpc.Client, prompter UserPrompter, printer io.Writer) *br } // NewAccount is a wrapper around the personal.newAccount RPC method that uses a -// non-echoing password prompt to aquire the passphrase and executes the original +// non-echoing password prompt to acquire the passphrase and executes the original // RPC method (saved in jeth.newAccount) with it to actually execute the RPC call. func (b *bridge) NewAccount(call otto.FunctionCall) (response otto.Value) { var ( @@ -75,7 +75,7 @@ func (b *bridge) NewAccount(call otto.FunctionCall) (response otto.Value) { default: throwJSException("expected 0 or 1 string argument") } - // Password aquired, execute the call and return + // Password acquired, execute the call and return ret, err := call.Otto.Call("jeth.newAccount", nil, password) if err != nil { throwJSException(err.Error()) @@ -84,7 +84,7 @@ func (b *bridge) NewAccount(call otto.FunctionCall) (response otto.Value) { } // UnlockAccount is a wrapper around the personal.unlockAccount RPC method that -// uses a non-echoing password prompt to aquire the passphrase and executes the +// uses a non-echoing password prompt to acquire the passphrase and executes the // original RPC method (saved in jeth.unlockAccount) with it to actually execute // the RPC call. func (b *bridge) UnlockAccount(call otto.FunctionCall) (response otto.Value) { @@ -127,7 +127,7 @@ func (b *bridge) UnlockAccount(call otto.FunctionCall) (response otto.Value) { } // Sign is a wrapper around the personal.sign RPC method that uses a non-echoing password -// prompt to aquire the passphrase and executes the original RPC method (saved in +// prompt to acquire the passphrase and executes the original RPC method (saved in // jeth.sign) with it to actually execute the RPC call. func (b *bridge) Sign(call otto.FunctionCall) (response otto.Value) { var ( @@ -270,18 +270,15 @@ func (b *bridge) Send(call otto.FunctionCall) (response otto.Value) { } else { resultVal, err := JSON.Call("parse", string(result)) if err != nil { - resp = newErrorResponse(call, -32603, err.Error(), &req.Id).Object() + setError(resp, -32603, err.Error()) } else { resp.Set("result", resultVal) } } case rpc.Error: - resp.Set("error", map[string]interface{}{ - "code": err.ErrorCode(), - "message": err.Error(), - }) + setError(resp, err.ErrorCode(), err.Error()) default: - resp = newErrorResponse(call, -32603, err.Error(), &req.Id).Object() + setError(resp, -32603, err.Error()) } resps.Call("push", resp) } @@ -300,12 +297,8 @@ func (b *bridge) Send(call otto.FunctionCall) (response otto.Value) { return response } -func newErrorResponse(call otto.FunctionCall, code int, msg string, id interface{}) otto.Value { - // Bundle the error into a JSON RPC call response - m := map[string]interface{}{"version": "2.0", "id": id, "error": map[string]interface{}{"code": code, msg: msg}} - res, _ := json.Marshal(m) - val, _ := call.Otto.Run("(" + string(res) + ")") - return val +func setError(resp *otto.Object, code int, msg string) { + resp.Set("error", map[string]interface{}{"code": code, "message": msg}) } // throwJSException panics on an otto.Value. The Otto VM will recover from the |