Browse Source

mempool: move errors to be public (#6613)

## Description

Move mempool errors to be public, this is used in handling abci error codes
pull/6629/head
Marko 3 years ago
committed by GitHub
parent
commit
f8dbbae55e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 11 deletions
  1. +5
    -4
      internal/mempool/v0/clist_mempool.go
  2. +4
    -3
      internal/mempool/v0/clist_mempool_test.go
  3. +5
    -4
      internal/mempool/v1/mempool.go
  4. +0
    -0
      pkg/mempool/errors.go

+ 5
- 4
internal/mempool/v0/clist_mempool.go View File

@ -14,6 +14,7 @@ import (
"github.com/tendermint/tendermint/internal/mempool" "github.com/tendermint/tendermint/internal/mempool"
"github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/log"
tmmath "github.com/tendermint/tendermint/libs/math" tmmath "github.com/tendermint/tendermint/libs/math"
pubmempool "github.com/tendermint/tendermint/pkg/mempool"
"github.com/tendermint/tendermint/proxy" "github.com/tendermint/tendermint/proxy"
"github.com/tendermint/tendermint/types" "github.com/tendermint/tendermint/types"
) )
@ -216,7 +217,7 @@ func (mem *CListMempool) CheckTx(
} }
if txSize > mem.config.MaxTxBytes { if txSize > mem.config.MaxTxBytes {
return mempool.ErrTxTooLarge{
return pubmempool.ErrTxTooLarge{
Max: mem.config.MaxTxBytes, Max: mem.config.MaxTxBytes,
Actual: txSize, Actual: txSize,
} }
@ -224,7 +225,7 @@ func (mem *CListMempool) CheckTx(
if mem.preCheck != nil { if mem.preCheck != nil {
if err := mem.preCheck(tx); err != nil { if err := mem.preCheck(tx); err != nil {
return mempool.ErrPreCheck{
return pubmempool.ErrPreCheck{
Reason: err, Reason: err,
} }
} }
@ -247,7 +248,7 @@ func (mem *CListMempool) CheckTx(
// its non-trivial since invalid txs can become valid, // its non-trivial since invalid txs can become valid,
// but they can spam the same tx with little cost to them atm. // but they can spam the same tx with little cost to them atm.
if loaded { if loaded {
return mempool.ErrTxInCache
return pubmempool.ErrTxInCache
} }
} }
@ -363,7 +364,7 @@ func (mem *CListMempool) isFull(txSize int) error {
) )
if memSize >= mem.config.Size || int64(txSize)+txsBytes > mem.config.MaxTxsBytes { if memSize >= mem.config.Size || int64(txSize)+txsBytes > mem.config.MaxTxsBytes {
return mempool.ErrMempoolIsFull{
return pubmempool.ErrMempoolIsFull{
NumTxs: memSize, NumTxs: memSize,
MaxTxs: mem.config.Size, MaxTxs: mem.config.Size,
TxsBytes: txsBytes, TxsBytes: txsBytes,


+ 4
- 3
internal/mempool/v0/clist_mempool_test.go View File

@ -24,6 +24,7 @@ import (
"github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/log"
tmrand "github.com/tendermint/tendermint/libs/rand" tmrand "github.com/tendermint/tendermint/libs/rand"
"github.com/tendermint/tendermint/libs/service" "github.com/tendermint/tendermint/libs/service"
pubmempool "github.com/tendermint/tendermint/pkg/mempool"
"github.com/tendermint/tendermint/proxy" "github.com/tendermint/tendermint/proxy"
"github.com/tendermint/tendermint/types" "github.com/tendermint/tendermint/types"
) )
@ -82,7 +83,7 @@ func checkTxs(t *testing.T, mp mempool.Mempool, count int, peerID uint16) types.
// Skip invalid txs. // Skip invalid txs.
// TestMempoolFilters will fail otherwise. It asserts a number of txs // TestMempoolFilters will fail otherwise. It asserts a number of txs
// returned. // returned.
if mempool.IsPreCheckError(err) {
if pubmempool.IsPreCheckError(err) {
continue continue
} }
t.Fatalf("CheckTx failed: %v while checking #%d tx", err, i) t.Fatalf("CheckTx failed: %v while checking #%d tx", err, i)
@ -455,7 +456,7 @@ func TestMempool_CheckTxChecksTxSize(t *testing.T) {
if !testCase.err { if !testCase.err {
require.NoError(t, err, caseString) require.NoError(t, err, caseString)
} else { } else {
require.Equal(t, err, mempool.ErrTxTooLarge{
require.Equal(t, err, pubmempool.ErrTxTooLarge{
Max: maxTxSize, Max: maxTxSize,
Actual: testCase.len, Actual: testCase.len,
}, caseString) }, caseString)
@ -503,7 +504,7 @@ func TestMempoolTxsBytes(t *testing.T) {
err = mp.CheckTx(context.Background(), []byte{0x05}, nil, mempool.TxInfo{}) err = mp.CheckTx(context.Background(), []byte{0x05}, nil, mempool.TxInfo{})
if assert.Error(t, err) { if assert.Error(t, err) {
assert.IsType(t, mempool.ErrMempoolIsFull{}, err)
assert.IsType(t, pubmempool.ErrMempoolIsFull{}, err)
} }
// 6. zero after tx is rechecked and removed due to not being valid anymore // 6. zero after tx is rechecked and removed due to not being valid anymore


+ 5
- 4
internal/mempool/v1/mempool.go View File

@ -14,6 +14,7 @@ import (
"github.com/tendermint/tendermint/internal/mempool" "github.com/tendermint/tendermint/internal/mempool"
"github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/libs/log"
tmmath "github.com/tendermint/tendermint/libs/math" tmmath "github.com/tendermint/tendermint/libs/math"
pubmempool "github.com/tendermint/tendermint/pkg/mempool"
"github.com/tendermint/tendermint/proxy" "github.com/tendermint/tendermint/proxy"
"github.com/tendermint/tendermint/types" "github.com/tendermint/tendermint/types"
) )
@ -224,7 +225,7 @@ func (txmp *TxMempool) CheckTx(
txSize := len(tx) txSize := len(tx)
if txSize > txmp.config.MaxTxBytes { if txSize > txmp.config.MaxTxBytes {
return mempool.ErrTxTooLarge{
return pubmempool.ErrTxTooLarge{
Max: txmp.config.MaxTxBytes, Max: txmp.config.MaxTxBytes,
Actual: txSize, Actual: txSize,
} }
@ -232,7 +233,7 @@ func (txmp *TxMempool) CheckTx(
if txmp.preCheck != nil { if txmp.preCheck != nil {
if err := txmp.preCheck(tx); err != nil { if err := txmp.preCheck(tx); err != nil {
return mempool.ErrPreCheck{
return pubmempool.ErrPreCheck{
Reason: err, Reason: err,
} }
} }
@ -252,7 +253,7 @@ func (txmp *TxMempool) CheckTx(
if wtx != nil && ok { if wtx != nil && ok {
// We already have the transaction stored and the we've already seen this // We already have the transaction stored and the we've already seen this
// transaction from txInfo.SenderID. // transaction from txInfo.SenderID.
return mempool.ErrTxInCache
return pubmempool.ErrTxInCache
} }
txmp.logger.Debug("tx exists already in cache", "tx_hash", tx.Hash()) txmp.logger.Debug("tx exists already in cache", "tx_hash", tx.Hash())
@ -707,7 +708,7 @@ func (txmp *TxMempool) canAddTx(wtx *WrappedTx) error {
) )
if numTxs >= txmp.config.Size || int64(wtx.Size())+sizeBytes > txmp.config.MaxTxsBytes { if numTxs >= txmp.config.Size || int64(wtx.Size())+sizeBytes > txmp.config.MaxTxsBytes {
return mempool.ErrMempoolIsFull{
return pubmempool.ErrMempoolIsFull{
NumTxs: numTxs, NumTxs: numTxs,
MaxTxs: txmp.config.Size, MaxTxs: txmp.config.Size,
TxsBytes: sizeBytes, TxsBytes: sizeBytes,


internal/mempool/errors.go → pkg/mempool/errors.go View File


Loading…
Cancel
Save