Draft of new BaseApp
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package errors
|
||||
|
||||
import (
|
||||
abci "github.com/tendermint/abci/types"
|
||||
)
|
||||
|
||||
type causer interface {
|
||||
Cause() error
|
||||
}
|
||||
|
||||
func getABCIError(err error) (ABCIError, bool) {
|
||||
if err, ok := err.(ABCIError); ok {
|
||||
return err, true
|
||||
}
|
||||
if causer, ok := err.(causer); ok {
|
||||
err := causer.Cause()
|
||||
if err, ok := err.(ABCIError); ok {
|
||||
return err, true
|
||||
}
|
||||
}
|
||||
return nil, false
|
||||
}
|
||||
|
||||
func ResponseDeliverTxFromErr(err error) *abci.ResponseDeliverTx {
|
||||
var code = CodeInternalError
|
||||
var log = codeToDefaultLog(code)
|
||||
|
||||
abciErr, ok := getABCIError(err)
|
||||
if ok {
|
||||
code = abciErr.ABCICode()
|
||||
log = abciErr.ABCILog()
|
||||
}
|
||||
|
||||
return &abci.ResponseDeliverTx{
|
||||
Code: code,
|
||||
Data: nil,
|
||||
Log: log,
|
||||
Tags: nil,
|
||||
}
|
||||
}
|
||||
|
||||
func ResponseCheckTxFromErr(err error) *abci.ResponseCheckTx {
|
||||
var code = CodeInternalError
|
||||
var log = codeToDefaultLog(code)
|
||||
|
||||
abciErr, ok := getABCIError(err)
|
||||
if ok {
|
||||
code = abciErr.ABCICode()
|
||||
log = abciErr.ABCILog()
|
||||
}
|
||||
|
||||
return &abci.ResponseCheckTx{
|
||||
Code: code,
|
||||
Data: nil,
|
||||
Log: log,
|
||||
Gas: 0, // TODO
|
||||
Fee: 0, // TODO
|
||||
}
|
||||
}
|
||||
+5
-5
@@ -5,7 +5,7 @@ import "fmt"
|
||||
const (
|
||||
// ABCI Response Codes
|
||||
CodeInternalError = 1
|
||||
CodeEncodingError = 2
|
||||
CodeTxParseError = 2
|
||||
CodeBadNonce = 3
|
||||
CodeUnauthorized = 4
|
||||
CodeInsufficientFunds = 5
|
||||
@@ -17,8 +17,8 @@ func codeToDefaultLog(code uint32) string {
|
||||
switch code {
|
||||
case CodeInternalError:
|
||||
return "Internal error"
|
||||
case CodeEncodingError:
|
||||
return "Encoding error"
|
||||
case CodeTxParseError:
|
||||
return "Tx parse error"
|
||||
case CodeBadNonce:
|
||||
return "Bad nonce"
|
||||
case CodeUnauthorized:
|
||||
@@ -40,8 +40,8 @@ func InternalError(log string) sdkError {
|
||||
return newSDKError(CodeInternalError, log)
|
||||
}
|
||||
|
||||
func EncodingError(log string) sdkError {
|
||||
return newSDKError(CodeEncodingError, log)
|
||||
func TxParseError(log string) sdkError {
|
||||
return newSDKError(CodeTxParseError, log)
|
||||
}
|
||||
|
||||
func BadNonce(log string) sdkError {
|
||||
|
||||
Reference in New Issue
Block a user