github.com/zhiqiangxu/go-ethereum@v1.9.16-0.20210824055606-be91cfdebc48/rpc/errors.go (about) 1 // Copyright 2015 The go-ethereum Authors 2 // This file is part of the go-ethereum library. 3 // 4 // The go-ethereum library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The go-ethereum library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. 16 17 package rpc 18 19 import "fmt" 20 21 var ( 22 _ Error = new(methodNotFoundError) 23 _ Error = new(subscriptionNotFoundError) 24 _ Error = new(parseError) 25 _ Error = new(invalidRequestError) 26 _ Error = new(invalidMessageError) 27 _ Error = new(invalidParamsError) 28 ) 29 30 const defaultErrorCode = -32000 31 32 type methodNotFoundError struct{ method string } 33 34 func (e *methodNotFoundError) ErrorCode() int { return -32601 } 35 36 func (e *methodNotFoundError) Error() string { 37 return fmt.Sprintf("the method %s does not exist/is not available", e.method) 38 } 39 40 type subscriptionNotFoundError struct{ namespace, subscription string } 41 42 func (e *subscriptionNotFoundError) ErrorCode() int { return -32601 } 43 44 func (e *subscriptionNotFoundError) Error() string { 45 return fmt.Sprintf("no %q subscription in %s namespace", e.subscription, e.namespace) 46 } 47 48 // Invalid JSON was received by the server. 49 type parseError struct{ message string } 50 51 func (e *parseError) ErrorCode() int { return -32700 } 52 53 func (e *parseError) Error() string { return e.message } 54 55 // received message isn't a valid request 56 type invalidRequestError struct{ message string } 57 58 func (e *invalidRequestError) ErrorCode() int { return -32600 } 59 60 func (e *invalidRequestError) Error() string { return e.message } 61 62 // received message is invalid 63 type invalidMessageError struct{ message string } 64 65 func (e *invalidMessageError) ErrorCode() int { return -32700 } 66 67 func (e *invalidMessageError) Error() string { return e.message } 68 69 // unable to decode supplied params, or an invalid number of parameters 70 type invalidParamsError struct{ message string } 71 72 func (e *invalidParamsError) ErrorCode() int { return -32602 } 73 74 func (e *invalidParamsError) Error() string { return e.message }