-
Notifications
You must be signed in to change notification settings - Fork 74
/
lane.go
39 lines (33 loc) · 1.39 KB
/
lane.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package app
import (
"cosmossdk.io/math"
signer_extraction_adapter "github.com/skip-mev/block-sdk/v2/adapters/signer_extraction_adapter"
blocksdkbase "github.com/skip-mev/block-sdk/v2/block/base"
base_lane "github.com/skip-mev/block-sdk/v2/lanes/base"
)
const (
MaxTxsForDefaultLane = 3000 // maximal number of txs that can be stored in this lane at any point in time
)
var MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("1") // maximal fraction of blockMaxBytes / gas that can be used by this lane at any point in time (100%)
// CreateLanes creates a LaneMempool containing MEV, default lanes (in that order)
func (app *App) CreateLanes() *blocksdkbase.BaseLane {
// initialize the default lane
basecfg := blocksdkbase.LaneConfig{
Logger: app.Logger(),
TxDecoder: app.GetTxConfig().TxDecoder(),
TxEncoder: app.GetTxConfig().TxEncoder(),
SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(),
MaxBlockSpace: MaxBlockspaceForDefaultLane,
MaxTxs: MaxTxsForDefaultLane,
}
// BaseLane (DefaultLane) is intended to hold all txs that are not matched by any lanes ordered before this
// lane.
baseLane := base_lane.NewDefaultLane(basecfg, blocksdkbase.DefaultMatchHandler())
baseLane.LaneMempool = blocksdkbase.NewMempool(
blocksdkbase.NewDefaultTxPriority(),
basecfg.TxEncoder,
basecfg.SignerExtractor,
basecfg.MaxTxs,
)
return baseLane
}