mukan-consensus/mempool/nop_mempool.go
Mukan Erkin Törük ef24c0b67e
Some checks are pending
docker-build-cometbft / vars (push) Waiting to run
docker-build-cometbft / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-cometbft / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-cometbft / merge-images (push) Blocked by required conditions
docker-build-e2e-node / vars (push) Waiting to run
docker-build-e2e-node / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-e2e-node / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-e2e-node / merge-images (push) Blocked by required conditions
initial: sovereign Mukan Network fork
2026-05-11 03:18:27 +03:00

107 lines
2.8 KiB
Go

package mempool
import (
"errors"
abci "github.com/cometbft/cometbft/abci/types"
"github.com/cometbft/cometbft/libs/service"
"github.com/cometbft/cometbft/p2p"
"github.com/cometbft/cometbft/types"
)
// NopMempool is a mempool that does nothing.
//
// The ABCI app is responsible for storing, disseminating, and proposing transactions.
// See [ADR-111](../docs/architecture/adr-111-nop-mempool.md).
type NopMempool struct{}
// errNotAllowed indicates that the operation is not allowed with `nop` mempool.
var errNotAllowed = errors.New("not allowed with `nop` mempool")
var _ Mempool = &NopMempool{}
// CheckTx always returns an error.
func (*NopMempool) CheckTx(types.Tx, func(*abci.ResponseCheckTx), TxInfo) error {
return errNotAllowed
}
// RemoveTxByKey always returns an error.
func (*NopMempool) RemoveTxByKey(types.TxKey) error { return errNotAllowed }
// ReapMaxBytesMaxGas always returns nil.
func (*NopMempool) ReapMaxBytesMaxGas(int64, int64) types.Txs { return nil }
// ReapMaxTxs always returns nil.
func (*NopMempool) ReapMaxTxs(int) types.Txs { return nil }
// Lock does nothing.
func (*NopMempool) Lock() {}
// Unlock does nothing.
func (*NopMempool) Unlock() {}
// Update does nothing.
func (*NopMempool) Update(
int64,
types.Txs,
[]*abci.ExecTxResult,
PreCheckFunc,
PostCheckFunc,
) error {
return nil
}
// FlushAppConn does nothing.
func (*NopMempool) FlushAppConn() error { return nil }
// Flush does nothing.
func (*NopMempool) Flush() {}
// TxsAvailable always returns nil.
func (*NopMempool) TxsAvailable() <-chan struct{} {
return nil
}
// EnableTxsAvailable does nothing.
func (*NopMempool) EnableTxsAvailable() {}
// SetTxRemovedCallback does nothing.
func (*NopMempool) SetTxRemovedCallback(func(txKey types.TxKey)) {}
// Size always returns 0.
func (*NopMempool) Size() int { return 0 }
// SizeBytes always returns 0.
func (*NopMempool) SizeBytes() int64 { return 0 }
// NopMempoolReactor is a mempool reactor that does nothing.
type NopMempoolReactor struct {
service.BaseService
}
// NewNopMempoolReactor returns a new `nop` reactor.
//
// To be used only in RPC.
func NewNopMempoolReactor() *NopMempoolReactor {
return &NopMempoolReactor{*service.NewBaseService(nil, "NopMempoolReactor", nil)}
}
var _ p2p.Reactor = &NopMempoolReactor{}
// GetChannels always returns nil.
func (*NopMempoolReactor) GetChannels() []*p2p.ChannelDescriptor { return nil }
// AddPeer does nothing.
func (*NopMempoolReactor) AddPeer(p2p.Peer) {}
// InitPeer always returns nil.
func (*NopMempoolReactor) InitPeer(p2p.Peer) p2p.Peer { return nil }
// RemovePeer does nothing.
func (*NopMempoolReactor) RemovePeer(p2p.Peer, interface{}) {}
// Receive does nothing.
func (*NopMempoolReactor) Receive(p2p.Envelope) {}
// SetSwitch does nothing.
func (*NopMempoolReactor) SetSwitch(*p2p.Switch) {}