62 lines
2.1 KiB
Go
62 lines
2.1 KiB
Go
package mempool
|
|
|
|
import (
|
|
"cosmossdk.io/log"
|
|
"cosmossdk.io/math"
|
|
|
|
signerextraction "github.com/skip-mev/block-sdk/v2/adapters/signer_extraction_adapter"
|
|
"github.com/skip-mev/block-sdk/v2/block"
|
|
"github.com/skip-mev/block-sdk/v2/block/base"
|
|
defaultlane "github.com/skip-mev/block-sdk/v2/lanes/base"
|
|
"github.com/skip-mev/block-sdk/v2/lanes/free"
|
|
"github.com/skip-mev/block-sdk/v2/lanes/mev"
|
|
"github.com/skip-mev/block-sdk/v2/testutils"
|
|
)
|
|
|
|
func CreateMempool() *block.LanedMempool {
|
|
encodingConfig := testutils.CreateTestEncodingConfig()
|
|
signerExtractor := signerextraction.NewDefaultAdapter()
|
|
|
|
mevConfig := base.LaneConfig{
|
|
SignerExtractor: signerExtractor,
|
|
Logger: log.NewNopLogger(),
|
|
TxEncoder: encodingConfig.TxConfig.TxEncoder(),
|
|
TxDecoder: encodingConfig.TxConfig.TxDecoder(),
|
|
AnteHandler: nil,
|
|
MaxBlockSpace: math.LegacyMustNewDecFromStr("0.3"),
|
|
MaxTxs: 0, // unlimited
|
|
}
|
|
factory := mev.NewDefaultAuctionFactory(encodingConfig.TxConfig.TxDecoder(), signerExtractor)
|
|
mevLane := mev.NewMEVLane(mevConfig, factory, factory.MatchHandler())
|
|
|
|
freeConfig := base.LaneConfig{
|
|
SignerExtractor: signerExtractor,
|
|
Logger: log.NewNopLogger(),
|
|
TxEncoder: encodingConfig.TxConfig.TxEncoder(),
|
|
TxDecoder: encodingConfig.TxConfig.TxDecoder(),
|
|
AnteHandler: nil,
|
|
MaxBlockSpace: math.LegacyMustNewDecFromStr("0.3"),
|
|
MaxTxs: 0, // unlimited
|
|
}
|
|
freeLane := free.NewFreeLane(freeConfig, base.DefaultTxPriority(), free.DefaultMatchHandler())
|
|
|
|
defaultConfig := base.LaneConfig{
|
|
SignerExtractor: signerExtractor,
|
|
Logger: log.NewNopLogger(),
|
|
TxEncoder: encodingConfig.TxConfig.TxEncoder(),
|
|
TxDecoder: encodingConfig.TxConfig.TxDecoder(),
|
|
AnteHandler: nil,
|
|
MaxBlockSpace: math.LegacyZeroDec(),
|
|
MaxTxs: 0, // unlimited
|
|
}
|
|
defaultLane := defaultlane.NewDefaultLane(defaultConfig, base.DefaultMatchHandler())
|
|
|
|
lanes := []block.Lane{mevLane, freeLane, defaultLane}
|
|
mempool, err := block.NewLanedMempool(log.NewNopLogger(), lanes)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return mempool
|
|
}
|