fix: [ENG-754] Refactor of Mempool Dep to Interfaces (#81)

This commit is contained in:
David Terpay 2023-04-24 12:26:29 -04:00 committed by GitHub
parent 5231cafbd4
commit e5be99baa1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 18 deletions

View File

@ -2,6 +2,7 @@ package abci
import (
"bytes"
"context"
"crypto/sha256"
"encoding/hex"
"errors"
@ -11,19 +12,29 @@ import (
"github.com/cometbft/cometbft/libs/log"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkmempool "github.com/cosmos/cosmos-sdk/types/mempool"
"github.com/skip-mev/pob/mempool"
)
type ProposalHandler struct {
mempool *mempool.AuctionMempool
logger log.Logger
anteHandler sdk.AnteHandler
txEncoder sdk.TxEncoder
txDecoder sdk.TxDecoder
}
type (
Mempool interface {
sdkmempool.Mempool
AuctionBidSelect(ctx context.Context) sdkmempool.Iterator
GetBundledTransactions(tx sdk.Tx) ([][]byte, error)
WrapBundleTransaction(tx []byte) (sdk.Tx, error)
IsAuctionTx(tx sdk.Tx) (bool, error)
RemoveWithoutRefTx(tx sdk.Tx) error
}
ProposalHandler struct {
mempool Mempool
logger log.Logger
anteHandler sdk.AnteHandler
txEncoder sdk.TxEncoder
txDecoder sdk.TxDecoder
}
)
func NewProposalHandler(
mp *mempool.AuctionMempool,
mp Mempool,
logger log.Logger,
anteHandler sdk.AnteHandler,
txEncoder sdk.TxEncoder,

View File

@ -2,6 +2,7 @@ package ante
import (
"bytes"
"context"
"fmt"
"cosmossdk.io/errors"
@ -12,14 +13,25 @@ import (
var _ sdk.AnteDecorator = BuilderDecorator{}
type BuilderDecorator struct {
builderKeeper keeper.Keeper
txDecoder sdk.TxDecoder
txEncoder sdk.TxEncoder
mempool *mempool.AuctionMempool
}
type (
Mempool interface {
Contains(tx sdk.Tx) (bool, error)
IsAuctionTx(tx sdk.Tx) (bool, error)
GetAuctionBidInfo(tx sdk.Tx) (mempool.AuctionBidInfo, error)
GetBundleSigners(txs [][]byte) ([]map[string]struct{}, error)
GetTopAuctionTx(ctx context.Context) sdk.Tx
GetTimeout(tx sdk.Tx) (uint64, error)
}
func NewBuilderDecorator(ak keeper.Keeper, txDecoder sdk.TxDecoder, txEncoder sdk.TxEncoder, mempool *mempool.AuctionMempool) BuilderDecorator {
BuilderDecorator struct {
builderKeeper keeper.Keeper
txDecoder sdk.TxDecoder
txEncoder sdk.TxEncoder
mempool Mempool
}
)
func NewBuilderDecorator(ak keeper.Keeper, txDecoder sdk.TxDecoder, txEncoder sdk.TxEncoder, mempool Mempool) BuilderDecorator {
return BuilderDecorator{
builderKeeper: ak,
txDecoder: txDecoder,
@ -96,12 +108,12 @@ func (ad BuilderDecorator) GetTopAuctionBid(ctx sdk.Context) (sdk.Coin, error) {
return sdk.Coin{}, nil
}
bid, err := ad.mempool.GetBid(auctionTx)
auctionBidInfo, err := ad.mempool.GetAuctionBidInfo(auctionTx)
if err != nil {
return sdk.Coin{}, err
}
return bid, nil
return auctionBidInfo.Bid, nil
}
// IsTopBidTx returns true if the transaction inputted is the highest bidding auction transaction in the mempool.