Merge PR #5421: Refactor Error Handling
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
// BroadcastTx broadcasts a transactions either synchronously or asynchronously
|
||||
@@ -52,19 +53,19 @@ func CheckTendermintError(err error, txBytes []byte) *sdk.TxResponse {
|
||||
switch {
|
||||
case strings.Contains(errStr, strings.ToLower(mempool.ErrTxInCache.Error())):
|
||||
return &sdk.TxResponse{
|
||||
Code: uint32(sdk.CodeTxInMempoolCache),
|
||||
Code: sdkerrors.ErrTxInMempoolCache.ABCICode(),
|
||||
TxHash: txHash,
|
||||
}
|
||||
|
||||
case strings.Contains(errStr, "mempool is full"):
|
||||
return &sdk.TxResponse{
|
||||
Code: uint32(sdk.CodeMempoolIsFull),
|
||||
Code: sdkerrors.ErrMempoolIsFull.ABCICode(),
|
||||
TxHash: txHash,
|
||||
}
|
||||
|
||||
case strings.Contains(errStr, "tx too large"):
|
||||
return &sdk.TxResponse{
|
||||
Code: uint32(sdk.CodeTxTooLarge),
|
||||
Code: sdkerrors.ErrTxTooLarge.ABCICode(),
|
||||
TxHash: txHash,
|
||||
}
|
||||
|
||||
|
||||
@@ -4,16 +4,15 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/tendermint/tendermint/crypto/tmhash"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/tendermint/tendermint/crypto/tmhash"
|
||||
"github.com/tendermint/tendermint/mempool"
|
||||
"github.com/tendermint/tendermint/rpc/client/mock"
|
||||
ctypes "github.com/tendermint/tendermint/rpc/core/types"
|
||||
tmtypes "github.com/tendermint/tendermint/types"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||
"github.com/cosmos/cosmos-sdk/types"
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
)
|
||||
|
||||
type MockClient struct {
|
||||
@@ -43,9 +42,9 @@ func CreateContextWithErrorAndMode(err error, mode string) CLIContext {
|
||||
// Test the correct code is returned when
|
||||
func TestBroadcastError(t *testing.T) {
|
||||
errors := map[error]uint32{
|
||||
mempool.ErrTxInCache: uint32(types.CodeTxInMempoolCache),
|
||||
mempool.ErrTxTooLarge{}: uint32(types.CodeTxTooLarge),
|
||||
mempool.ErrMempoolIsFull{}: uint32(types.CodeMempoolIsFull),
|
||||
mempool.ErrTxInCache: sdkerrors.ErrTxInMempoolCache.ABCICode(),
|
||||
mempool.ErrTxTooLarge{}: sdkerrors.ErrTxTooLarge.ABCICode(),
|
||||
mempool.ErrMempoolIsFull{}: sdkerrors.ErrMempoolIsFull.ABCICode(),
|
||||
}
|
||||
|
||||
modes := []string{
|
||||
|
||||
Reference in New Issue
Block a user