mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-14 13:51:21 +00:00
implement error interface for ResponseDeliverTx/CheckTx/Commit
This commit is contained in:
@ -23,4 +23,27 @@ var (
|
|||||||
ErrBaseUnknownAddress = NewError(CodeType_BaseUnknownAddress, "Error (base) unknown address")
|
ErrBaseUnknownAddress = NewError(CodeType_BaseUnknownAddress, "Error (base) unknown address")
|
||||||
ErrBaseUnknownPlugin = NewError(CodeType_BaseUnknownPlugin, "Error (base) unknown plugin")
|
ErrBaseUnknownPlugin = NewError(CodeType_BaseUnknownPlugin, "Error (base) unknown plugin")
|
||||||
ErrBaseUnknownPubKey = NewError(CodeType_BaseUnknownPubKey, "Error (base) unknown pubkey")
|
ErrBaseUnknownPubKey = NewError(CodeType_BaseUnknownPubKey, "Error (base) unknown pubkey")
|
||||||
|
|
||||||
|
code2string = map[CodeType]string{
|
||||||
|
CodeType_InternalError: "Internal error",
|
||||||
|
CodeType_EncodingError: "Encoding error",
|
||||||
|
CodeType_BadNonce: "Error bad nonce",
|
||||||
|
CodeType_Unauthorized: "Unauthorized",
|
||||||
|
CodeType_InsufficientFunds: "Insufficient funds",
|
||||||
|
CodeType_UnknownRequest: "Unknown request",
|
||||||
|
|
||||||
|
CodeType_BaseDuplicateAddress: "Error (base) duplicate address",
|
||||||
|
CodeType_BaseEncodingError: "Error (base) encoding error",
|
||||||
|
CodeType_BaseInsufficientFees: "Error (base) insufficient fees",
|
||||||
|
CodeType_BaseInsufficientFunds: "Error (base) insufficient funds",
|
||||||
|
CodeType_BaseInsufficientGasPrice: "Error (base) insufficient gas price",
|
||||||
|
CodeType_BaseInvalidInput: "Error (base) invalid input",
|
||||||
|
CodeType_BaseInvalidOutput: "Error (base) invalid output",
|
||||||
|
CodeType_BaseInvalidPubKey: "Error (base) invalid pubkey",
|
||||||
|
CodeType_BaseInvalidSequence: "Error (base) invalid sequence",
|
||||||
|
CodeType_BaseInvalidSignature: "Error (base) invalid signature",
|
||||||
|
CodeType_BaseUnknownAddress: "Error (base) unknown address",
|
||||||
|
CodeType_BaseUnknownPlugin: "Error (base) unknown plugin",
|
||||||
|
CodeType_BaseUnknownPubKey: "Error (base) unknown pubkey",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
@ -111,6 +111,11 @@ func (r ResponseCheckTx) IsErr() bool {
|
|||||||
return r.Code != CodeType_OK
|
return r.Code != CodeType_OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error implements error interface by formatting response as string.
|
||||||
|
func (r ResponseCheckTx) Error() string {
|
||||||
|
return fmtError(r.Code, r.Log)
|
||||||
|
}
|
||||||
|
|
||||||
// Convert ResponseDeliverTx to standard Result
|
// Convert ResponseDeliverTx to standard Result
|
||||||
func (r *ResponseDeliverTx) Result() Result {
|
func (r *ResponseDeliverTx) Result() Result {
|
||||||
return Result{
|
return Result{
|
||||||
@ -126,6 +131,11 @@ func (r ResponseDeliverTx) IsErr() bool {
|
|||||||
return r.Code != CodeType_OK
|
return r.Code != CodeType_OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error implements error interface by formatting response as string.
|
||||||
|
func (r ResponseDeliverTx) Error() string {
|
||||||
|
return fmtError(r.Code, r.Log)
|
||||||
|
}
|
||||||
|
|
||||||
type ResultQuery struct {
|
type ResultQuery struct {
|
||||||
Code CodeType `json:"code"`
|
Code CodeType `json:"code"`
|
||||||
Index int64 `json:"index"`
|
Index int64 `json:"index"`
|
||||||
@ -152,3 +162,17 @@ func (r *ResponseQuery) Result() *ResultQuery {
|
|||||||
func (r ResponseCommit) IsErr() bool {
|
func (r ResponseCommit) IsErr() bool {
|
||||||
return r.Code != CodeType_OK
|
return r.Code != CodeType_OK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error implements error interface by formatting response as string.
|
||||||
|
func (r ResponseCommit) Error() string {
|
||||||
|
return fmtError(r.Code, r.Log)
|
||||||
|
}
|
||||||
|
|
||||||
|
func fmtError(code CodeType, log string) string {
|
||||||
|
codeAsStr, ok := code2string[code]
|
||||||
|
if ok {
|
||||||
|
return fmt.Sprintf("%s (%v): %s", codeAsStr, code, log)
|
||||||
|
} else {
|
||||||
|
return fmt.Sprintf("Unknown error (%v): %s", code, log)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user