fix: Make lanes mutually exclusive by default (#206)
* lanes always mutually exclusive * nit 1.0.0.0 * gg adding back interface --------- Co-authored-by: Alex Johnson <alex@skip.money>
This commit is contained in:
co-authored by
Alex Johnson
parent
f1beb215f7
commit
f607439637
+40
-27
@@ -672,7 +672,7 @@ func (s *ProposalsTestSuite) TestPrepareProposal() {
|
||||
|
||||
func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
s.Run("can build a proposal if a lane panics first", func() {
|
||||
panicLane := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane := s.setUpPanicLane("panik1", math.LegacyMustNewDecFromStr("0.25"))
|
||||
|
||||
tx, err := testutils.CreateRandomTx(
|
||||
s.encodingConfig.TxConfig,
|
||||
@@ -708,19 +708,21 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
},
|
||||
}
|
||||
|
||||
mempool := block.NewLanedMempool(
|
||||
log.NewTestLogger(s.T()),
|
||||
false,
|
||||
mempool, err := block.NewLanedMempool(
|
||||
log.NewNopLogger(),
|
||||
lanes,
|
||||
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
|
||||
return blocksdkmoduletypes.Lane{}, nil
|
||||
}, func() []blocksdkmoduletypes.Lane {
|
||||
return chainLanes
|
||||
}),
|
||||
lanes...,
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
|
||||
defaultLane.SetIgnoreList(nil)
|
||||
|
||||
proposalHandler := abci.NewProposalHandler(
|
||||
log.NewTestLogger(s.T()),
|
||||
log.NewNopLogger(),
|
||||
s.encodingConfig.TxConfig.TxDecoder(),
|
||||
s.encodingConfig.TxConfig.TxEncoder(),
|
||||
mempool,
|
||||
@@ -748,7 +750,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
})
|
||||
|
||||
s.Run("can build a proposal if second lane panics", func() {
|
||||
panicLane := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane := s.setUpPanicLane("panik1", math.LegacyMustNewDecFromStr("0.25"))
|
||||
|
||||
tx, err := testutils.CreateRandomTx(
|
||||
s.encodingConfig.TxConfig,
|
||||
@@ -784,19 +786,21 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
},
|
||||
}
|
||||
|
||||
mempool := block.NewLanedMempool(
|
||||
log.NewTestLogger(s.T()),
|
||||
false,
|
||||
mempool, err := block.NewLanedMempool(
|
||||
log.NewNopLogger(),
|
||||
lanes,
|
||||
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
|
||||
return blocksdkmoduletypes.Lane{}, nil
|
||||
}, func() []blocksdkmoduletypes.Lane {
|
||||
return chainLanes
|
||||
}),
|
||||
lanes...,
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
|
||||
defaultLane.SetIgnoreList(nil)
|
||||
|
||||
proposalHandler := abci.NewProposalHandler(
|
||||
log.NewTestLogger(s.T()),
|
||||
log.NewNopLogger(),
|
||||
s.encodingConfig.TxConfig.TxDecoder(),
|
||||
s.encodingConfig.TxConfig.TxEncoder(),
|
||||
mempool,
|
||||
@@ -824,8 +828,8 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
})
|
||||
|
||||
s.Run("can build a proposal if multiple consecutive lanes panic", func() {
|
||||
panicLane := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane2 := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane := s.setUpPanicLane("panik1", math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane2 := s.setUpPanicLane("panik2", math.LegacyMustNewDecFromStr("0.25"))
|
||||
|
||||
tx, err := testutils.CreateRandomTx(
|
||||
s.encodingConfig.TxConfig,
|
||||
@@ -867,18 +871,23 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
},
|
||||
}
|
||||
|
||||
mempool := block.NewLanedMempool(
|
||||
log.NewTestLogger(s.T()),
|
||||
false,
|
||||
mempool, err := block.NewLanedMempool(
|
||||
log.NewNopLogger(),
|
||||
lanes,
|
||||
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
|
||||
return blocksdkmoduletypes.Lane{}, nil
|
||||
}, func() []blocksdkmoduletypes.Lane {
|
||||
return chainLanes
|
||||
}),
|
||||
lanes...,
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
|
||||
panicLane.SetIgnoreList(nil)
|
||||
panicLane2.SetIgnoreList(nil)
|
||||
defaultLane.SetIgnoreList(nil)
|
||||
|
||||
proposalHandler := abci.NewProposalHandler(
|
||||
log.NewTestLogger(s.T()),
|
||||
log.NewNopLogger(),
|
||||
s.encodingConfig.TxConfig.TxDecoder(),
|
||||
s.encodingConfig.TxConfig.TxEncoder(),
|
||||
mempool,
|
||||
@@ -906,8 +915,8 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
})
|
||||
|
||||
s.Run("can build a proposal if the last few lanes panic", func() {
|
||||
panicLane := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane2 := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane := s.setUpPanicLane("panik1", math.LegacyMustNewDecFromStr("0.25"))
|
||||
panicLane2 := s.setUpPanicLane("panik2", math.LegacyMustNewDecFromStr("0.25"))
|
||||
|
||||
tx, err := testutils.CreateRandomTx(
|
||||
s.encodingConfig.TxConfig,
|
||||
@@ -949,19 +958,23 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
|
||||
},
|
||||
}
|
||||
|
||||
mempool := block.NewLanedMempool(
|
||||
log.NewTestLogger(s.T()),
|
||||
false,
|
||||
mempool, err := block.NewLanedMempool(
|
||||
log.NewNopLogger(),
|
||||
lanes,
|
||||
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
|
||||
return blocksdkmoduletypes.Lane{}, nil
|
||||
}, func() []blocksdkmoduletypes.Lane {
|
||||
return chainLanes
|
||||
}),
|
||||
lanes...,
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
|
||||
panicLane.SetIgnoreList(nil)
|
||||
panicLane2.SetIgnoreList(nil)
|
||||
defaultLane.SetIgnoreList(nil)
|
||||
|
||||
proposalHandler := abci.NewProposalHandler(
|
||||
log.NewTestLogger(s.T()),
|
||||
log.NewNopLogger(),
|
||||
s.encodingConfig.TxConfig.TxDecoder(),
|
||||
s.encodingConfig.TxConfig.TxEncoder(),
|
||||
mempool,
|
||||
@@ -1237,7 +1250,7 @@ func (s *ProposalsTestSuite) TestProcessProposal() {
|
||||
|
||||
s.Run("rejects a proposal when a lane panics", func() {
|
||||
mevLane := s.setUpTOBLane(math.LegacyMustNewDecFromStr("0.25"), map[sdk.Tx]bool{})
|
||||
panicLane := s.setUpPanicLane(math.LegacyMustNewDecFromStr("0.0"))
|
||||
panicLane := s.setUpPanicLane("default", math.LegacyMustNewDecFromStr("0.0"))
|
||||
|
||||
txbz, err := testutils.CreateRandomTxBz(
|
||||
s.encodingConfig.TxConfig,
|
||||
|
||||
+11
-11
@@ -60,7 +60,7 @@ func (s *ProposalsTestSuite) setUpAnteHandler(expectedExecution map[sdk.Tx]bool)
|
||||
|
||||
func (s *ProposalsTestSuite) setUpStandardLane(maxBlockSpace math.LegacyDec, expectedExecution map[sdk.Tx]bool) *defaultlane.DefaultLane {
|
||||
cfg := base.LaneConfig{
|
||||
Logger: log.NewTestLogger(s.T()),
|
||||
Logger: log.NewNopLogger(),
|
||||
TxEncoder: s.encodingConfig.TxConfig.TxEncoder(),
|
||||
TxDecoder: s.encodingConfig.TxConfig.TxDecoder(),
|
||||
AnteHandler: s.setUpAnteHandler(expectedExecution),
|
||||
@@ -74,7 +74,7 @@ func (s *ProposalsTestSuite) setUpStandardLane(maxBlockSpace math.LegacyDec, exp
|
||||
|
||||
func (s *ProposalsTestSuite) setUpTOBLane(maxBlockSpace math.LegacyDec, expectedExecution map[sdk.Tx]bool) *mev.MEVLane {
|
||||
cfg := base.LaneConfig{
|
||||
Logger: log.NewTestLogger(s.T()),
|
||||
Logger: log.NewNopLogger(),
|
||||
TxEncoder: s.encodingConfig.TxConfig.TxEncoder(),
|
||||
TxDecoder: s.encodingConfig.TxConfig.TxDecoder(),
|
||||
AnteHandler: s.setUpAnteHandler(expectedExecution),
|
||||
@@ -87,7 +87,7 @@ func (s *ProposalsTestSuite) setUpTOBLane(maxBlockSpace math.LegacyDec, expected
|
||||
|
||||
func (s *ProposalsTestSuite) setUpFreeLane(maxBlockSpace math.LegacyDec, expectedExecution map[sdk.Tx]bool) *free.FreeLane {
|
||||
cfg := base.LaneConfig{
|
||||
Logger: log.NewTestLogger(s.T()),
|
||||
Logger: log.NewNopLogger(),
|
||||
TxEncoder: s.encodingConfig.TxConfig.TxEncoder(),
|
||||
TxDecoder: s.encodingConfig.TxConfig.TxDecoder(),
|
||||
AnteHandler: s.setUpAnteHandler(expectedExecution),
|
||||
@@ -98,9 +98,9 @@ func (s *ProposalsTestSuite) setUpFreeLane(maxBlockSpace math.LegacyDec, expecte
|
||||
return free.NewFreeLane(cfg, base.DefaultTxPriority(), free.DefaultMatchHandler())
|
||||
}
|
||||
|
||||
func (s *ProposalsTestSuite) setUpPanicLane(maxBlockSpace math.LegacyDec) *base.BaseLane {
|
||||
func (s *ProposalsTestSuite) setUpPanicLane(name string, maxBlockSpace math.LegacyDec) *base.BaseLane {
|
||||
cfg := base.LaneConfig{
|
||||
Logger: log.NewTestLogger(s.T()),
|
||||
Logger: log.NewNopLogger(),
|
||||
TxEncoder: s.encodingConfig.TxConfig.TxEncoder(),
|
||||
TxDecoder: s.encodingConfig.TxConfig.TxDecoder(),
|
||||
MaxBlockSpace: maxBlockSpace,
|
||||
@@ -109,7 +109,7 @@ func (s *ProposalsTestSuite) setUpPanicLane(maxBlockSpace math.LegacyDec) *base.
|
||||
|
||||
lane := base.NewBaseLane(
|
||||
cfg,
|
||||
"panic",
|
||||
name,
|
||||
base.NewMempool[string](base.DefaultTxPriority(), cfg.TxEncoder, cfg.SignerExtractor, 0),
|
||||
base.DefaultMatchHandler(),
|
||||
)
|
||||
@@ -138,15 +138,15 @@ func (s *ProposalsTestSuite) setUpProposalHandlers(lanes []block.Lane) *abci.Pro
|
||||
return blocksdkLanes
|
||||
})
|
||||
|
||||
mempool := block.NewLanedMempool(log.NewTestLogger(
|
||||
s.T()),
|
||||
false,
|
||||
mempool, err := block.NewLanedMempool(
|
||||
log.NewNopLogger(),
|
||||
lanes,
|
||||
laneFetcher,
|
||||
lanes...,
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
|
||||
return abci.NewProposalHandler(
|
||||
log.NewTestLogger(s.T()),
|
||||
log.NewNopLogger(),
|
||||
s.encodingConfig.TxConfig.TxDecoder(),
|
||||
s.encodingConfig.TxConfig.TxEncoder(),
|
||||
mempool,
|
||||
|
||||
Reference in New Issue
Block a user