From fc44197f066c1475d74ef6b2241e9467bf222f56 Mon Sep 17 00:00:00 2001
From: "alex.sharov" <AskAlexSharov@gmail.com>
Date: Wed, 29 Sep 2021 14:48:19 +0700
Subject: [PATCH] fix merge conflict

---
 cmd/txpool/main.go         | 10 ++++++++++
 cmd/utils/flags.go         |  8 ++++++++
 core/tx_pool.go            |  2 ++
 eth/backend.go             |  3 +++
 turbo/cli/default_flags.go |  1 +
 5 files changed, 24 insertions(+)

diff --git a/cmd/txpool/main.go b/cmd/txpool/main.go
index 3dc5fb8adf..a50a3c9cda 100644
--- a/cmd/txpool/main.go
+++ b/cmd/txpool/main.go
@@ -34,6 +34,10 @@ var (
 	TLSCertfile string
 	TLSCACert   string
 	TLSKeyFile  string
+
+	pendingPoolLimit int
+	baseFeePoolLimit int
+	queuedPoolLimit  int
 )
 
 func init() {
@@ -49,6 +53,9 @@ func init() {
 	rootCmd.PersistentFlags().StringVar(&TLSKeyFile, "tls.key", "", "key file for client side TLS handshake")
 	rootCmd.PersistentFlags().StringVar(&TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake")
 
+	rootCmd.PersistentFlags().IntVar(&pendingPoolLimit, "txpool.globalslots", txpool.DefaultConfig.PendingSubPoolLimit, "Maximum number of executable transaction slots for all accounts")
+	rootCmd.PersistentFlags().IntVar(&baseFeePoolLimit, "txpool.basefeeeslots", txpool.DefaultConfig.BaseFeeSubPoolLimit, "Maximum number of non-executable transactions where only not enough baseFee")
+	rootCmd.PersistentFlags().IntVar(&queuedPoolLimit, "txpool.globalqueue", txpool.DefaultConfig.QueuedSubPoolLimit, "Maximum number of non-executable transaction slots for all accounts")
 }
 
 var rootCmd = &cobra.Command{
@@ -97,6 +104,9 @@ var rootCmd = &cobra.Command{
 		cfg.DBDir = path.Join(datadir, "txpool")
 		cfg.LogEvery = 30 * time.Second
 		cfg.CommitEvery = 30 * time.Second
+		cfg.PendingSubPoolLimit = pendingPoolLimit
+		cfg.BaseFeeSubPoolLimit = baseFeePoolLimit
+		cfg.QueuedSubPoolLimit = queuedPoolLimit
 
 		cacheConfig := kvcache.DefaultCoherentConfig
 		cacheConfig.MetricsLabel = "txpool"
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index f48bb34bef..3f160ca412 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -197,6 +197,11 @@ var (
 		Usage: "Maximum number of executable transaction slots for all accounts",
 		Value: ethconfig.Defaults.TxPool.GlobalSlots,
 	}
+	TxPoolGlobalBaseFeeSlotsFlag = cli.Uint64Flag{
+		Name:  "txpool.basefeeeslots",
+		Usage: "Maximum number of non-executable transactions where only not enough baseFee",
+		Value: ethconfig.Defaults.TxPool.GlobalQueue,
+	}
 	TxPoolAccountQueueFlag = cli.Uint64Flag{
 		Name:  "txpool.accountqueue",
 		Usage: "Maximum number of non-executable transaction slots permitted per account",
@@ -985,6 +990,9 @@ func setTxPool(ctx *cli.Context, cfg *core.TxPoolConfig) {
 	if ctx.GlobalIsSet(TxPoolGlobalQueueFlag.Name) {
 		cfg.GlobalQueue = ctx.GlobalUint64(TxPoolGlobalQueueFlag.Name)
 	}
+	if ctx.GlobalIsSet(TxPoolGlobalBaseFeeSlotsFlag.Name) {
+		cfg.GlobalBaseFeeQueue = ctx.GlobalUint64(TxPoolGlobalBaseFeeSlotsFlag.Name)
+	}
 	if ctx.GlobalIsSet(TxPoolLifetimeFlag.Name) {
 		cfg.Lifetime = ctx.GlobalDuration(TxPoolLifetimeFlag.Name)
 	}
diff --git a/core/tx_pool.go b/core/tx_pool.go
index ae750fff11..af2515dca0 100644
--- a/core/tx_pool.go
+++ b/core/tx_pool.go
@@ -150,6 +150,8 @@ type TxPoolConfig struct {
 	AccountQueue uint64 // Maximum number of non-executable transaction slots permitted per account
 	GlobalQueue  uint64 // Maximum number of non-executable transaction slots for all accounts
 
+	GlobalBaseFeeQueue uint64 // Maximum number of non-executable transaction slots for all accounts
+
 	Lifetime    time.Duration // Maximum amount of time non-executable transaction are queued
 	StartOnInit bool
 }
diff --git a/eth/backend.go b/eth/backend.go
index 3d8fb1ae41..bfb5011bec 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -366,6 +366,9 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere
 	if config.TxPool.V2 {
 		cfg := txpool2.DefaultConfig
 		cfg.DBDir = path.Join(stack.Config().DataDir, "txpool")
+		cfg.PendingSubPoolLimit = int(config.TxPool.GlobalSlots)
+		cfg.BaseFeeSubPoolLimit = int(config.TxPool.GlobalBaseFeeQueue)
+		cfg.QueuedSubPoolLimit = int(config.TxPool.GlobalQueue)
 		cfg.LogEvery = 1 * time.Minute    //5 * time.Minute
 		cfg.CommitEvery = 1 * time.Minute //5 * time.Minute
 
diff --git a/turbo/cli/default_flags.go b/turbo/cli/default_flags.go
index 160e770ee7..d6a4985758 100644
--- a/turbo/cli/default_flags.go
+++ b/turbo/cli/default_flags.go
@@ -21,6 +21,7 @@ var DefaultFlags = []cli.Flag{
 	utils.TxPoolPriceBumpFlag,
 	utils.TxPoolAccountSlotsFlag,
 	utils.TxPoolGlobalSlotsFlag,
+	utils.TxPoolGlobalBaseFeeSlotsFlag,
 	utils.TxPoolAccountQueueFlag,
 	utils.TxPoolGlobalQueueFlag,
 	utils.TxPoolLifetimeFlag,
-- 
GitLab