diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-13 23:36:27 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-13 23:36:27 +0800 |
commit | b663e8b29a7451a79b909c017f8a244d23c8fef4 (patch) | |
tree | 722ffd039ea9970170bbe054f8044625bc719373 /rpc/messages.go | |
parent | f1fcda4f2fe05e46e3d350cb89a52fd33df3767f (diff) | |
parent | e3b64d70c212d893c147b8af62abe5c03fb2f492 (diff) | |
download | dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.tar dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.tar.gz dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.tar.bz2 dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.tar.lz dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.tar.xz dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.tar.zst dexon-b663e8b29a7451a79b909c017f8a244d23c8fef4.zip |
Merge branch 'rpcfrontier' into develop
Diffstat (limited to 'rpc/messages.go')
-rw-r--r-- | rpc/messages.go | 99 |
1 files changed, 60 insertions, 39 deletions
diff --git a/rpc/messages.go b/rpc/messages.go index a3ebbf330..781394196 100644 --- a/rpc/messages.go +++ b/rpc/messages.go @@ -18,16 +18,69 @@ package rpc import ( "encoding/json" - "errors" "fmt" ) -var ( - errArguments = errors.New("Error: Insufficient arguments") - errNotImplemented = errors.New("Error: Method not implemented") - errUnknown = errors.New("Error: Unknown error") - errDecodeArgs = errors.New("Error: Could not decode arguments") -) +type InsufficientParamsError struct { + have int + want int +} + +func (e *InsufficientParamsError) Error() string { + return fmt.Sprintf("insufficient params, want %d have %d", e.want, e.have) +} + +func NewInsufficientParamsError(have int, want int) *InsufficientParamsError { + return &InsufficientParamsError{ + have: have, + want: want, + } +} + +type NotImplementedError struct { + Method string +} + +func (e *NotImplementedError) Error() string { + return fmt.Sprintf("%s method not implemented", e.Method) +} + +func NewNotImplementedError(method string) *NotImplementedError { + return &NotImplementedError{ + Method: method, + } +} + +type DecodeParamError struct { + err string +} + +func (e *DecodeParamError) Error() string { + return fmt.Sprintf("could not decode, %s", e.err) + +} + +func NewDecodeParamError(errstr string) error { + return &DecodeParamError{ + err: errstr, + } +} + +type ValidationError struct { + ParamName string + msg string +} + +func (e *ValidationError) Error() string { + return fmt.Sprintf("%s not valid, %s", e.ParamName, e.msg) +} + +func NewValidationError(param string, msg string) error { + return &ValidationError{ + ParamName: param, + msg: msg, + } +} type RpcRequest struct { ID interface{} `json:"id"` @@ -53,35 +106,3 @@ type RpcErrorObject struct { Message string `json:"message"` // Data interface{} `json:"data"` } - -func NewErrorWithMessage(err error, msg string) error { - return fmt.Errorf("%s: %s", err.Error(), msg) -} - -// func (req *RpcRequest) ToRegisterArgs() (string, error) { -// if len(req.Params) < 1 { -// return "", errArguments -// } - -// var args string -// err := json.Unmarshal(req.Params, &args) -// if err != nil { -// return "", err -// } - -// return args, nil -// } - -// func (req *RpcRequest) ToWatchTxArgs() (string, error) { -// if len(req.Params) < 1 { -// return "", errArguments -// } - -// var args string -// err := json.Unmarshal(req.Params, &args) -// if err != nil { -// return "", err -// } - -// return args, nil -// } |