Skip to content
This repository has been archived by the owner on Jan 31, 2025. It is now read-only.

Commit

Permalink
Merge branch 'terpay/greedy-process-proposal' into terpay/escrow-addr…
Browse files Browse the repository at this point in the history
…ess-string
  • Loading branch information
davidterpay authored Nov 27, 2023
2 parents 6266d60 + b337085 commit f6c723e
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 14 deletions.
75 changes: 67 additions & 8 deletions abci/abci_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/skip-mev/block-sdk/abci"
"github.com/skip-mev/block-sdk/block"
"github.com/skip-mev/block-sdk/block/mocks"
"github.com/skip-mev/block-sdk/lanes/free"
testutils "github.com/skip-mev/block-sdk/testutils"
blocksdkmoduletypes "github.com/skip-mev/block-sdk/x/blocksdk/types"
)
Expand Down Expand Up @@ -521,7 +522,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
}

mempool, err := block.NewLanedMempool(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
lanes,
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
return blocksdkmoduletypes.Lane{}, nil
Expand All @@ -534,7 +535,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
defaultLane.SetIgnoreList(nil)

proposalHandler := abci.NewProposalHandler(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
s.encodingConfig.TxConfig.TxDecoder(),
s.encodingConfig.TxConfig.TxEncoder(),
mempool,
Expand Down Expand Up @@ -587,7 +588,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
}

mempool, err := block.NewLanedMempool(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
lanes,
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
return blocksdkmoduletypes.Lane{}, nil
Expand All @@ -600,7 +601,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
defaultLane.SetIgnoreList(nil)

proposalHandler := abci.NewProposalHandler(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
s.encodingConfig.TxConfig.TxDecoder(),
s.encodingConfig.TxConfig.TxEncoder(),
mempool,
Expand Down Expand Up @@ -660,7 +661,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
}

mempool, err := block.NewLanedMempool(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
lanes,
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
return blocksdkmoduletypes.Lane{}, nil
Expand All @@ -675,7 +676,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
defaultLane.SetIgnoreList(nil)

proposalHandler := abci.NewProposalHandler(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
s.encodingConfig.TxConfig.TxDecoder(),
s.encodingConfig.TxConfig.TxEncoder(),
mempool,
Expand Down Expand Up @@ -735,7 +736,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
}

mempool, err := block.NewLanedMempool(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
lanes,
mocks.NewMockLaneFetcher(func() (blocksdkmoduletypes.Lane, error) {
return blocksdkmoduletypes.Lane{}, nil
Expand All @@ -750,7 +751,7 @@ func (s *ProposalsTestSuite) TestPrepareProposalEdgeCases() {
defaultLane.SetIgnoreList(nil)

proposalHandler := abci.NewProposalHandler(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
s.encodingConfig.TxConfig.TxDecoder(),
s.encodingConfig.TxConfig.TxEncoder(),
mempool,
Expand Down Expand Up @@ -1271,6 +1272,64 @@ func (s *ProposalsTestSuite) TestProcessProposal() {
s.Require().Error(err)
s.Require().Equal(&cometabci.ResponseProcessProposal{Status: cometabci.ResponseProcessProposal_REJECT}, resp)
})

s.Run("rejects a proposal where there are transactions remaining that have been unverified", func() {
bidTx, _, err := testutils.CreateAuctionTx(
s.encodingConfig.TxConfig,
s.accounts[0],
sdk.NewCoin(s.gasTokenDenom, math.NewInt(1000000)),
0,
1,
s.accounts[0:0],
1,
)
s.Require().NoError(err)

freeTx, err := testutils.CreateFreeTx(
s.encodingConfig.TxConfig,
s.accounts[2],
0,
1,
"test",
sdk.NewCoin(s.gasTokenDenom, math.NewInt(2000000)),
sdk.NewCoin(s.gasTokenDenom, math.NewInt(2000000)),
)
s.Require().NoError(err)

normalTx, err := testutils.CreateRandomTx(
s.encodingConfig.TxConfig,
s.accounts[1],
0,
1,
0,
1,
sdk.NewCoin(s.gasTokenDenom, math.NewInt(3000000)),
)
s.Require().NoError(err)

// Set up the top of block lane
mevLane := s.setUpTOBLane(math.LegacyMustNewDecFromStr("0.5"), map[sdk.Tx]bool{
bidTx: true,
})

// Set up the default lane
freeLane := s.setUpCustomMatchHandlerLane(
math.LegacyMustNewDecFromStr("0.0"),
map[sdk.Tx]bool{
freeTx: true,
},
free.DefaultMatchHandler(),
"default",
)

proposal := s.createProposal(bidTx, freeTx, normalTx)

proposalHandler := s.setUpProposalHandlers([]block.Lane{mevLane, freeLane}).ProcessProposalHandler()
resp, err := proposalHandler(s.ctx, &cometabci.RequestProcessProposal{Txs: proposal, Height: 2})
s.Require().NotNil(resp)
s.Require().Error(err)
s.Require().Equal(&cometabci.ResponseProcessProposal{Status: cometabci.ResponseProcessProposal_REJECT}, resp)
})
}

func (s *ProposalsTestSuite) TestPrepareProcessParity() {
Expand Down
35 changes: 29 additions & 6 deletions abci/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,32 @@ func (s *ProposalsTestSuite) setUpAnteHandler(expectedExecution map[sdk.Tx]bool)
return anteHandler
}

func (s *ProposalsTestSuite) setUpCustomMatchHandlerLane(maxBlockSpace math.LegacyDec, expectedExecution map[sdk.Tx]bool, mh base.MatchHandler, name string) block.Lane {
cfg := base.LaneConfig{
Logger: log.NewNopLogger(),
TxEncoder: s.encodingConfig.TxConfig.TxEncoder(),
TxDecoder: s.encodingConfig.TxConfig.TxDecoder(),
AnteHandler: s.setUpAnteHandler(expectedExecution),
MaxBlockSpace: maxBlockSpace,
SignerExtractor: signeradaptors.NewDefaultAdapter(),
}

lane := base.NewBaseLane(
cfg,
name,
base.NewMempool[string](base.DefaultTxPriority(), cfg.TxEncoder, cfg.SignerExtractor, 0),
mh,
)

lane.SetPrepareLaneHandler(lane.DefaultPrepareLaneHandler())
lane.SetProcessLaneHandler(lane.DefaultProcessLaneHandler())

return lane
}

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),
Expand All @@ -71,7 +94,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),
Expand All @@ -84,7 +107,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),
Expand All @@ -97,7 +120,7 @@ func (s *ProposalsTestSuite) setUpFreeLane(maxBlockSpace math.LegacyDec, expecte

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,
Expand Down Expand Up @@ -136,14 +159,14 @@ func (s *ProposalsTestSuite) setUpProposalHandlers(lanes []block.Lane) *abci.Pro
})

mempool, err := block.NewLanedMempool(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
lanes,
laneFetcher,
)
s.Require().NoError(err)

return abci.NewProposalHandler(
log.NewTestLogger(s.T()),
log.NewNopLogger(),
s.encodingConfig.TxConfig.TxDecoder(),
s.encodingConfig.TxConfig.TxEncoder(),
mempool,
Expand Down

0 comments on commit f6c723e

Please sign in to comment.