Draft of new BaseApp

This commit is contained in:
Jae Kwon
2017-12-01 09:10:17 -08:00
parent 3474efc599
commit b96e4784ed
5 changed files with 315 additions and 298 deletions
+59
View File
@@ -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
View File
@@ -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 {