aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/shared/errors.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-06-11 22:41:43 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-06-11 22:41:43 +0800
commite2c2d8e15ebef85c77f7486f92c6430ca6f30785 (patch)
tree1cd237e5aba5453c641a8d631cffd96c9eb08757 /rpc/shared/errors.go
parent6609d45ef48ce1c2d2b0e73fa8fe5190d36e3920 (diff)
parentb3c07f167f8b82d1079abe6e15cd1f480712b030 (diff)
downloadgo-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.tar
go-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.tar.gz
go-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.tar.bz2
go-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.tar.lz
go-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.tar.xz
go-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.tar.zst
go-tangerine-e2c2d8e15ebef85c77f7486f92c6430ca6f30785.zip
Merge pull request #1239 from bas-vk/rpc-apis
RPC refactoring
Diffstat (limited to 'rpc/shared/errors.go')
-rw-r--r--rpc/shared/errors.go96
1 files changed, 96 insertions, 0 deletions
diff --git a/rpc/shared/errors.go b/rpc/shared/errors.go
new file mode 100644
index 000000000..bd10b33a0
--- /dev/null
+++ b/rpc/shared/errors.go
@@ -0,0 +1,96 @@
+package shared
+
+import "fmt"
+
+type InvalidTypeError struct {
+ method string
+ msg string
+}
+
+func (e *InvalidTypeError) Error() string {
+ return fmt.Sprintf("invalid type on field %s: %s", e.method, e.msg)
+}
+
+func NewInvalidTypeError(method, msg string) *InvalidTypeError {
+ return &InvalidTypeError{
+ method: method,
+ msg: msg,
+ }
+}
+
+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 NotAvailableError struct {
+ Method string
+ Reason string
+}
+
+func (e *NotAvailableError) Error() string {
+ return fmt.Sprintf("%s method not available: %s", e.Method, e.Reason)
+}
+
+func NewNotAvailableError(method string, reason string) *NotAvailableError {
+ return &NotAvailableError{
+ Method: method,
+ Reason: reason,
+ }
+}