func (mem *PriorityMempool) EnableTxsAvailable() {
	mem.txsAvailable = make(chan struct{}, 1)
}
NOTE: not thread safe - should only be called once, on startup
package mempool
import (
	"bytes"
	"crypto/sha256"
	"fmt"
	"github.com/MinterTeam/minter-go-node/coreV2/transaction"
	tmpool "github.com/tendermint/tendermint/mempool"
	"sort"
	"sync"
	"sync/atomic"
	abci "github.com/tendermint/tendermint/abci/types"
	cfg "github.com/tendermint/tendermint/config"
	auto "github.com/tendermint/tendermint/libs/autofile"
	"github.com/tendermint/tendermint/libs/clist"
	"github.com/tendermint/tendermint/libs/log"
	tmmath "github.com/tendermint/tendermint/libs/math"
	tmos "github.com/tendermint/tendermint/libs/os"
	tmsync "github.com/tendermint/tendermint/libs/sync"
	"github.com/tendermint/tendermint/p2p"
	"github.com/tendermint/tendermint/proxy"
	"github.com/tendermint/tendermint/types"
)
const TxKeySize = sha256.Size
var newline = []byte("\n")
type PriorityMempool struct {
	height   int64  
	txsBytes int64  
	notifiedTxsAvailable bool
	txsAvailable         chan struct{}  
	config *cfg.MempoolConfig
	updateMtx tmsync.RWMutex
	preCheck  tmpool.PreCheckFunc
	postCheck tmpool.PostCheckFunc
	wal          *auto.AutoFile  
	txs          *clist.CList    
	proxyAppConn proxy.AppConnMempool
	recheckCursor *clist.CElement  
	recheckEnd    *clist.CElement  
	txsMap sync.Map
	cache txCache
	logger log.Logger
	metrics *tmpool.Metrics
	executor transaction.DecoderTx
	txsgpmu     sync.RWMutex
	txsByGas    map[uint32]map[[32]byte]*tmpool.MempoolTx
	minterTxMap sync.Map
	gasPrices   []uint32
}
type PriorityMempoolOption func(*PriorityMempool)
func NewPriorityMempool(
	config *cfg.MempoolConfig,
	proxyAppConn proxy.AppConnMempool,
	height int64,
	options ...PriorityMempoolOption,
) *PriorityMempool {
	mempool := &PriorityMempool{
		config:        config,
		proxyAppConn:  proxyAppConn,
		txs:           clist.New(),
		height:        height,
		recheckCursor: nil,
		recheckEnd:    nil,
		logger:        log.NewNopLogger(),
		metrics:       tmpool.NopMetrics(),
		executor:      transaction.NewExecutor(transaction.GetData),
		txsByGas:      make(map[uint32]map[[32]byte]*tmpool.MempoolTx),
	}
	if config.CacheSize > 0 {
		mempool.cache = newMapTxCache(config.CacheSize)
	} else {
		mempool.cache = nopTxCache{}
	}
	proxyAppConn.SetResponseCallback(mempool.globalCb)
	for _, option := range options {
		option(mempool)
	}
	return mempool
}