From 5d9e1f36cc6661d3c89d35c3303e54604952d4a5 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Mon, 8 Jan 2024 08:16:22 -0800 Subject: [PATCH 01/15] initial integration fix import fix golang.org/x/exp import update block-sdk version temp remove interchain tx params --- Dockerfile.builder | 2 +- Makefile | 16 ++- app/ante_handler.go | 22 +++++ app/app.go | 164 +++++++++++++++++++++++++++++-- app/upgrades/types.go | 2 + app/upgrades/v2.0.0/constants.go | 4 +- app/upgrades/v2.0.0/upgrades.go | 30 ++++++ go.mod | 44 +++++---- go.sum | 143 +++++++++++---------------- 9 files changed, 307 insertions(+), 120 deletions(-) diff --git a/Dockerfile.builder b/Dockerfile.builder index 762fa0ba7..c8167cb04 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -69,4 +69,4 @@ EXPOSE 26656 EXPOSE 26657 EXPOSE 1317 -ENTRYPOINT ["neutrond"] \ No newline at end of file +ENTRYPOINT ["neutrond", "start"] diff --git a/Makefile b/Makefile index f4f1564b4..7999e900c 100644 --- a/Makefile +++ b/Makefile @@ -83,10 +83,6 @@ BUILD_FLAGS_TEST_BINARY := -tags "$(build_tags_test_binary_comma_sep)" -ldflags include contrib/devtools/Makefile check_version: -ifneq ($(GO_SYSTEM_VERSION), $(REQUIRE_GO_VERSION)) - @echo "ERROR: Go version ${REQUIRE_GO_VERSION} is required for $(VERSION) of Neutron." - exit 1 -endif all: install lint test @@ -94,7 +90,7 @@ BUILD_TARGETS := build install build: BUILD_ARGS=-o $(BUILDDIR)/ -$(BUILD_TARGETS): check_version go.sum $(BUILDDIR)/ +$(BUILD_TARGETS): go.sum $(BUILDDIR)/ ifeq ($(OS),Windows_NT) exit 1 else @@ -104,6 +100,16 @@ endif $(BUILDDIR)/: mkdir -p $(BUILDDIR)/ +docker-build: + $(DOCKER) buildx build \ + --build-arg GIT_VERSION=$(VERSION) \ + --build-arg GIT_COMMIT=$(COMMIT) \ + --build-arg BUILD_TAGS=$(build_tags_comma_sep) \ + --platform linux/amd64 \ + -t neutron-amd64 \ + --load \ + -f Dockerfile.builder . + build-static-linux-amd64: go.sum $(BUILDDIR)/ $(DOCKER) buildx create --name neutronbuilder || true $(DOCKER) buildx use neutronbuilder diff --git a/app/ante_handler.go b/app/ante_handler.go index 7f193471d..7d67d7d9e 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -15,6 +15,9 @@ import ( ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" consumerante "github.com/cosmos/interchain-security/v3/app/consumer/ante" ibcconsumerkeeper "github.com/cosmos/interchain-security/v3/x/ccv/consumer/keeper" + auctionante "github.com/skip-mev/block-sdk/x/auction/ante" + auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" + blocksdk "github.com/skip-mev/block-sdk/block" ) // HandlerOptions extend the SDK's AnteHandler options by requiring the IBC @@ -27,6 +30,13 @@ type HandlerOptions struct { WasmConfig *wasmTypes.WasmConfig TXCounterStoreKey storetypes.StoreKey + // block-sdk deps + // Auction deps + AuctionKeeper auctionkeeper.Keeper + TxEncoder sdk.TxEncoder + MEVLane auctionante.MEVLane + Mempool blocksdk.Mempool + // globalFee GlobalFeeSubspace paramtypes.Subspace } @@ -51,6 +61,13 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, return nil, errors.Wrap(gaiaerrors.ErrNotFound, "globalfee param store is required for AnteHandler") } + if options.Mempool == nil { + return nil, errors.Wrap(gaiaerrors.ErrLogic, "mempool is required for AnteHandler") + } + if options.MEVLane == nil { + return nil, errors.Wrap(gaiaerrors.ErrLogic, "mev lane is required for AnteHandler") + } + sigGasConsumer := options.SigGasConsumer if sigGasConsumer == nil { sigGasConsumer = ante.DefaultSigVerificationGasConsumer @@ -80,6 +97,11 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), ante.NewIncrementSequenceDecorator(options.AccountKeeper), ibcante.NewRedundantRelayDecorator(options.IBCKeeper), + auctionante.NewAuctionDecorator( + options.AuctionKeeper, + options.TxEncoder, + options.MEVLane, + ), } // Don't delete it even if IDE tells you so. diff --git a/app/app.go b/app/app.go index 8ad43e599..674b8501f 100644 --- a/app/app.go +++ b/app/app.go @@ -7,7 +7,9 @@ import ( "net/http" "os" "path/filepath" + "reflect" + "cosmossdk.io/math" globalfeetypes "github.com/cosmos/gaia/v11/x/globalfee/types" "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward" "github.com/cosmos/interchain-security/v3/testutil/integration" @@ -161,6 +163,22 @@ import ( ibcswaptypes "github.com/neutron-org/neutron/v2/x/ibcswap/types" gmpmiddleware "github.com/neutron-org/neutron/v2/x/gmp" + + // Block-sdk imports + blocksdkabci "github.com/skip-mev/block-sdk/abci" + signer_extraction_adapter "github.com/skip-mev/block-sdk/adapters/signer_extraction_adapter" + blocksdk "github.com/skip-mev/block-sdk/block" + blocksdkbase "github.com/skip-mev/block-sdk/block/base" + base_lane "github.com/skip-mev/block-sdk/lanes/base" + mev_lane "github.com/skip-mev/block-sdk/lanes/mev" + "github.com/skip-mev/block-sdk/x/auction" + auctionante "github.com/skip-mev/block-sdk/x/auction/ante" + auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" + rewardsaddressprovider "github.com/skip-mev/block-sdk/x/auction/rewards" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + + "github.com/skip-mev/block-sdk/abci/checktx" + "github.com/skip-mev/block-sdk/block/base" ) const ( @@ -215,6 +233,7 @@ var ( ), ibchooks.AppModuleBasic{}, packetforward.AppModuleBasic{}, + auction.AppModuleBasic{}, globalfee.AppModule{}, dex.AppModuleBasic{}, ibcswap.AppModuleBasic{}, @@ -223,6 +242,7 @@ var ( // module account permissions maccPerms = map[string][]string{ authtypes.FeeCollectorName: nil, + auctiontypes.ModuleName: nil, ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, icatypes.ModuleName: nil, wasmtypes.ModuleName: {}, @@ -275,10 +295,12 @@ type App struct { memKeys map[string]*storetypes.MemoryStoreKey // keepers - AccountKeeper authkeeper.AccountKeeper - AdminmoduleKeeper adminmodulekeeper.Keeper - AuthzKeeper authzkeeper.Keeper - BankKeeper bankkeeper.BaseKeeper + AccountKeeper authkeeper.AccountKeeper + AdminmoduleKeeper adminmodulekeeper.Keeper + AuthzKeeper authzkeeper.Keeper + BankKeeper bankkeeper.BaseKeeper + // AuctionKeeper is the keeper that handles processing auction transactions + AuctionKeeper auctionkeeper.Keeper CapabilityKeeper *capabilitykeeper.Keeper SlashingKeeper slashingkeeper.Keeper CrisisKeeper crisiskeeper.Keeper @@ -324,6 +346,13 @@ type App struct { // sm is the simulation manager sm *module.SimulationManager + + // Custom checkTx handler + checkTxHandler checktx.CheckTx + + // Lanes + Mempool blocksdk.Mempool + MEVLane auctionante.MEVLane } func (app *App) GetTestBankKeeper() integration.TestBankKeeper { @@ -374,7 +403,7 @@ func New( icahosttypes.StoreKey, capabilitytypes.StoreKey, interchainqueriesmoduletypes.StoreKey, contractmanagermoduletypes.StoreKey, interchaintxstypes.StoreKey, wasmtypes.StoreKey, feetypes.StoreKey, feeburnertypes.StoreKey, adminmoduletypes.StoreKey, ccvconsumertypes.StoreKey, tokenfactorytypes.StoreKey, pfmtypes.StoreKey, - crontypes.StoreKey, ibchookstypes.StoreKey, consensusparamtypes.StoreKey, crisistypes.StoreKey, dextypes.StoreKey, + crontypes.StoreKey, ibchookstypes.StoreKey, consensusparamtypes.StoreKey, crisistypes.StoreKey, dextypes.StoreKey, auctiontypes.StoreKey, ) tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey) memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey, feetypes.MemStoreKey) @@ -595,6 +624,16 @@ func New( authtypes.NewModuleAddress(adminmoduletypes.ModuleName).String(), ) + app.AuctionKeeper = auctionkeeper.NewKeeperWithRewardsAddressProvider( + appCodec, + keys[auctiontypes.StoreKey], + app.AccountKeeper, + &app.BankKeeper, + // 25% of rewards should be sent to the redistribute address + rewardsaddressprovider.NewFixedAddressRewardsAddressProvider(app.AccountKeeper.GetModuleAddress(ccvconsumertypes.ConsumerRedistributeName)), + authtypes.NewModuleAddress(adminmoduletypes.ModuleName).String(), + ) + dexModule := dex.NewAppModule(appCodec, app.DexKeeper, app.BankKeeper) app.SwapKeeper = ibcswapkeeper.NewKeeper( @@ -779,6 +818,7 @@ func New( globalfee.NewAppModule(app.GetSubspace(globalfee.ModuleName)), swapModule, dexModule, + auction.NewAppModule(appCodec, app.AuctionKeeper), crisis.NewAppModule(&app.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)), // always be last to make sure that it checks for all invariants and not only part of them ) @@ -787,6 +827,7 @@ func New( // CanWithdrawInvariant invariant. // NOTE: staking module is required if HistoricalEntries param > 0 app.mm.SetOrderBeginBlockers( + auctiontypes.ModuleName, upgradetypes.ModuleName, capabilitytypes.ModuleName, slashingtypes.ModuleName, @@ -819,6 +860,7 @@ func New( ) app.mm.SetOrderEndBlockers( + auctiontypes.ModuleName, crisistypes.ModuleName, capabilitytypes.ModuleName, authtypes.ModuleName, @@ -858,6 +900,7 @@ func New( // so that other modules that want to create or claim capabilities afterwards in InitChain // can do so safely. app.mm.SetOrderInitGenesis( + auctiontypes.ModuleName, capabilitytypes.ModuleName, authtypes.ModuleName, ibctransfertypes.ModuleName, @@ -928,6 +971,54 @@ func New( app.SetInitChainer(app.InitChainer) app.SetBeginBlocker(app.BeginBlocker) + app.SetEndBlocker(app.EndBlocker) + + // initialize lanes + maxTxs := 0 // no limit + basecfg := blocksdkbase.LaneConfig{ + Logger: app.Logger(), + TxDecoder: app.GetTxConfig().TxDecoder(), + TxEncoder: app.GetTxConfig().TxEncoder(), + SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), + MaxBlockSpace: sdk.ZeroDec(), + MaxTxs: maxTxs, + } + + baseLane := base_lane.NewDefaultLane(basecfg, base.DefaultMatchHandler()) + + factory := mev_lane.NewDefaultAuctionFactory(app.GetTxConfig().TxDecoder(), signer_extraction_adapter.NewDefaultAdapter()) + + mevcfg := blocksdkbase.LaneConfig{ + Logger: app.Logger(), + TxDecoder: app.GetTxConfig().TxDecoder(), + TxEncoder: app.GetTxConfig().TxEncoder(), + SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), + MaxBlockSpace: math.LegacyMustNewDecFromStr("0.2"), + MaxTxs: maxTxs, + } + mevLane := mev_lane.NewMEVLane( + mevcfg, + factory, + factory.MatchHandler(), + ) + app.MEVLane = mevLane + // initialize mempool + mempool, err := blocksdk.NewLanedMempool( + app.Logger(), + []blocksdk.Lane{ + mevLane, // mev-lane is first to prioritize bids being placed at the TOB + baseLane, // finally, all the rest of txs... + }, + ) + if err != nil { + panic(err) + } + + // set the mempool first + app.SetMempool(mempool) + app.Mempool = mempool + + // create the ante-handler anteHandler, err := NewAnteHandler( HandlerOptions{ HandlerOptions: ante.HandlerOptions{ @@ -942,6 +1033,10 @@ func New( TXCounterStoreKey: keys[wasmtypes.StoreKey], ConsumerKeeper: app.ConsumerKeeper, GlobalFeeSubspace: app.GetSubspace(globalfee.ModuleName), + AuctionKeeper: app.AuctionKeeper, + TxEncoder: app.GetTxConfig().TxEncoder(), + Mempool: app.Mempool, + MEVLane: app.MEVLane, }, app.Logger(), ) @@ -949,10 +1044,44 @@ func New( panic(err) } - app.SetAnteHandler(anteHandler) + // set ante-handlers + opts := []base.LaneOption{ + base.WithAnteHandler(anteHandler), + } + baseLane.WithOptions(opts...) + mevLane.WithOptions(opts...) app.SetEndBlocker(app.EndBlocker) + handler := blocksdkabci.NewProposalHandler( + app.Logger(), + app.GetTxConfig().TxDecoder(), + app.GetTxConfig().TxEncoder(), + mempool, + ) + app.SetPrepareProposal(handler.PrepareProposalHandler()) + app.SetProcessProposal(handler.ProcessProposalHandler()) + + // check-tx + mevCheckTxHandler := checktx.NewMEVCheckTxHandler( + app, + app.GetTxConfig().TxDecoder(), + mevLane, + anteHandler, + app.BaseApp.CheckTx, + app.ChainID(), + ) + + // wrap checkTxHandler with mempool parity handler + parityCheckTx := checktx.NewMempoolParityCheckTx( + app.Logger(), + mempool, + app.GetTxConfig().TxDecoder(), + mevCheckTxHandler.CheckTx(), + ) + + app.SetCheckTx(parityCheckTx.CheckTx()) + // must be before Loading version // requires the snapshot store to be created and registered as a BaseAppOption // see cmd/wasmd/root.go: 206 - 214 approx @@ -1021,6 +1150,7 @@ func (app *App) setupUpgradeHandlers() { SlashingKeeper: app.SlashingKeeper, ParamsKeeper: app.ParamsKeeper, CapabilityKeeper: app.CapabilityKeeper, + AuctionKeeper: app.AuctionKeeper, ContractManager: app.ContractManagerKeeper, AdminModule: app.AdminmoduleKeeper, ConsensusKeeper: &app.ConsensusParamsKeeper, @@ -1034,6 +1164,28 @@ func (app *App) setupUpgradeHandlers() { } } +// ChainID gets chainID from private fields of BaseApp +// Should be removed once SDK 0.50.x will be adopted +func (app *App) ChainID() string { + field := reflect.ValueOf(app.BaseApp).Elem().FieldByName("chainID") + return field.String() +} + +// CheckTx will check the transaction with the provided checkTxHandler. We override the default +// handler so that we can verify bid transactions before they are inserted into the mempool. +// With the POB CheckTx, we can verify the bid transaction and all of the bundled transactions +// before inserting the bid transaction into the mempool. +func (app *App) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx { + res := app.checkTxHandler(req) + app.Logger().Info("CheckTx", "response", res) + return res +} + +// SetCheckTx sets the checkTxHandler for the app. +func (app *App) SetCheckTx(handler checktx.CheckTx) { + app.checkTxHandler = handler +} + // Name returns the name of the App func (app *App) Name() string { return app.BaseApp.Name() } diff --git a/app/upgrades/types.go b/app/upgrades/types.go index 0c884aaca..fdc2bc60a 100644 --- a/app/upgrades/types.go +++ b/app/upgrades/types.go @@ -11,6 +11,7 @@ import ( paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" contractmanagerkeeper "github.com/neutron-org/neutron/v2/x/contractmanager/keeper" cronkeeper "github.com/neutron-org/neutron/v2/x/cron/keeper" @@ -46,6 +47,7 @@ type UpgradeKeepers struct { SlashingKeeper slashingkeeper.Keeper ParamsKeeper paramskeeper.Keeper CapabilityKeeper *capabilitykeeper.Keeper + AuctionKeeper auctionkeeper.Keeper ContractManager contractmanagerkeeper.Keeper AdminModule adminmodulekeeper.Keeper ConsensusKeeper *consensuskeeper.Keeper diff --git a/app/upgrades/v2.0.0/constants.go b/app/upgrades/v2.0.0/constants.go index f5cd8822b..fd454173f 100644 --- a/app/upgrades/v2.0.0/constants.go +++ b/app/upgrades/v2.0.0/constants.go @@ -5,8 +5,9 @@ import ( consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" - "github.com/neutron-org/neutron/v2/app/upgrades" dextypes "github.com/neutron-org/neutron/v2/x/dex/types" + "github.com/neutron-org/neutron/v2/app/upgrades" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" ) const ( @@ -24,6 +25,7 @@ var Upgrade = upgrades.Upgrade{ consensusparamtypes.ModuleName, crisistypes.ModuleName, dextypes.ModuleName, + auctiontypes.ModuleName, }, }, } diff --git a/app/upgrades/v2.0.0/upgrades.go b/app/upgrades/v2.0.0/upgrades.go index f2358adad..00dab4137 100644 --- a/app/upgrades/v2.0.0/upgrades.go +++ b/app/upgrades/v2.0.0/upgrades.go @@ -1,7 +1,10 @@ package v200 import ( + "cosmossdk.io/math" + "fmt" + feeburnerkeeper "github.com/neutron-org/neutron/v2/x/feeburner/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" "github.com/cosmos/cosmos-sdk/baseapp" @@ -20,6 +23,8 @@ import ( "github.com/cosmos/gaia/v11/x/globalfee/types" v6 "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/migrations/v6" ccvconsumertypes "github.com/cosmos/interchain-security/v3/x/ccv/consumer/types" + auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" "github.com/neutron-org/neutron/v2/app/upgrades" contractmanagerkeeper "github.com/neutron-org/neutron/v2/x/contractmanager/keeper" @@ -30,6 +35,7 @@ import ( icqtypes "github.com/neutron-org/neutron/v2/x/interchainqueries/types" interchaintxstypes "github.com/neutron-org/neutron/v2/x/interchaintxs/types" tokenfactorytypes "github.com/neutron-org/neutron/v2/x/tokenfactory/types" + "github.com/cosmos/cosmos-sdk/types/bech32" ) func CreateUpgradeHandler( @@ -82,6 +88,12 @@ func CreateUpgradeHandler( return nil, err } + ctx.Logger().Info("Setting pob params...") + err = setAuctionParams(ctx, keepers.FeeBurnerKeeper, keepers.AuctionKeeper) + if err != nil { + return nil, err + } + ctx.Logger().Info("Setting sudo callback limit...") err = setContractManagerParams(ctx, keepers.ContractManager) if err != nil { @@ -117,6 +129,24 @@ func CreateUpgradeHandler( } } +func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, auctionKeeper auctionkeeper.Keeper) error { + treasury := feeBurnerKeeper.GetParams(ctx).TreasuryAddress + _, data, err := bech32.DecodeAndConvert(treasury) + if err != nil { + return err + } + + auctionParams := auctiontypes.Params{ + MaxBundleSize: 2, + EscrowAccountAddress: data, + ReserveFee: sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)}, + MinBidIncrement: sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)}, + FrontRunningProtection: true, + ProposerFee: math.LegacyNewDecWithPrec(25, 2), + } + return auctionKeeper.SetParams(ctx, auctionParams) +} + func setContractManagerParams(ctx sdk.Context, keeper contractmanagerkeeper.Keeper) error { cmParams := contractmanagertypes.Params{ SudoCallGasLimit: contractmanagertypes.DefaultSudoCallGasLimit, diff --git a/go.mod b/go.mod index d996ce9d4..53aff85d3 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/neutron-org/neutron/v2 -go 1.21.1 +go 1.21.5 toolchain go1.21.6 @@ -33,12 +33,13 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 github.com/rs/zerolog v1.30.0 - github.com/spf13/cast v1.5.1 + github.com/skip-mev/block-sdk v1.3.0-alpha.1.0.20240108220317-cd1d774cbd2d + github.com/spf13/cast v1.6.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.16.0 + github.com/spf13/viper v1.18.2 github.com/stretchr/testify v1.8.4 - golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 google.golang.org/grpc v1.60.1 google.golang.org/protobuf v1.32.0 @@ -50,7 +51,7 @@ require ( cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.5 // indirect - cloud.google.com/go/storage v1.30.1 // indirect + cloud.google.com/go/storage v1.35.1 // indirect cosmossdk.io/api v0.3.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect @@ -58,13 +59,13 @@ require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect github.com/ChainSafe/go-schnorrkel v1.0.0 // indirect - github.com/aws/aws-sdk-go v1.44.203 // indirect + github.com/aws/aws-sdk-go v1.44.224 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.8.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect - github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect @@ -82,7 +83,7 @@ require ( github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect github.com/creachadair/taskgroup v0.4.2 // indirect github.com/danieljoos/wincred v1.2.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect @@ -90,9 +91,9 @@ require ( github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect + github.com/dvsekhvalnov/jose2go v1.5.1-0.20231206184617-48ba0b76bc88 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/getsentry/sentry-go v0.23.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-kit/kit v0.12.0 // indirect @@ -132,10 +133,10 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect - github.com/klauspost/compress v1.16.5 // indirect + github.com/klauspost/compress v1.17.0 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect - github.com/lib/pq v1.10.7 // indirect + github.com/lib/pq v1.10.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/linxGnu/grocksdb v1.8.6 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -151,9 +152,9 @@ require ( github.com/mtibben/percent v0.2.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/oxyno-zeta/gomock-extra-matcher v1.1.0 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/petermattis/goid v0.0.0-20230518223814-80aa455d8761 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.5.0 // indirect github.com/prometheus/common v0.45.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect @@ -161,10 +162,12 @@ require ( github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.3 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect - github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.6.0 // indirect @@ -176,14 +179,16 @@ require ( go.opentelemetry.io/otel v1.19.0 // indirect go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect + go.uber.org/multierr v1.10.0 // indirect golang.org/x/crypto v0.16.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sync v0.4.0 // indirect + golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect - google.golang.org/api v0.149.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/api v0.153.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect @@ -204,4 +209,5 @@ replace ( github.com/cosmos/ledger-cosmos-go => github.com/cosmos/ledger-cosmos-go v0.12.4 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 + golang.org/x/exp => golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb ) diff --git a/go.sum b/go.sum index 09ecde348..ec99eda7d 100644 --- a/go.sum +++ b/go.sum @@ -4,7 +4,6 @@ cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSR cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -18,7 +17,6 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -173,12 +171,11 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.35.1 h1:B59ahL//eDfx2IIKFBeT5Atm9wnNmj3+8xG/W4WB//w= +cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= @@ -205,7 +202,6 @@ cosmossdk.io/math v1.2.0 h1:8gudhTkkD3NxOP2YyyJIYYmt6dQ55ZfJkDOaxXpy7Ig= cosmossdk.io/math v1.2.0/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -219,7 +215,6 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/CosmWasm/wasmvm v1.5.2 h1:+pKB1Mz9GZVt1vadxB+EDdD1FOz3dMNjIKq/58/lrag= @@ -267,8 +262,8 @@ github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6l github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U= -github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ= +github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= @@ -326,8 +321,8 @@ github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= @@ -433,8 +428,9 @@ github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0S github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= @@ -475,8 +471,8 @@ github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:Htrtb github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/dvsekhvalnov/jose2go v1.5.1-0.20231206184617-48ba0b76bc88 h1:y87odSHhV8WSSnjuFYC+K2V6LpZtEVcjmVWxtUkXZiQ= +github.com/dvsekhvalnov/jose2go v1.5.1-0.20231206184617-48ba0b76bc88/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -505,12 +501,12 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= @@ -528,9 +524,6 @@ github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1T github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= @@ -675,7 +668,6 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -708,7 +700,6 @@ github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMd github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= @@ -853,14 +844,13 @@ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= -github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -878,8 +868,8 @@ github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgx github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= -github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= @@ -1022,8 +1012,8 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= @@ -1041,10 +1031,10 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= @@ -1106,6 +1096,10 @@ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= @@ -1120,35 +1114,37 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/skip-mev/block-sdk v1.3.0-alpha.1.0.20240108220317-cd1d774cbd2d h1:2vWCW9m8pRiRIjO3AaaDMgNWY6hNSJFYdGfur7Gi51I= +github.com/skip-mev/block-sdk v1.3.0-alpha.1.0.20240108220317-cd1d774cbd2d/go.mod h1:O+ncyaweK2Z+cHqJxBQ6B+Fkw63RyfJ7Kyg0+dt+SqU= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= -github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= -github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= @@ -1168,11 +1164,10 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= @@ -1257,6 +1252,8 @@ go.uber.org/mock v0.2.0/go.mod h1:J0y0rp9L3xiff1+ZBfKxlC1fz2+aO16tw0tsDOixfuM= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -1281,31 +1278,14 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1318,20 +1298,18 @@ golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1375,7 +1353,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -1385,7 +1362,6 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1441,8 +1417,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1455,7 +1431,6 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1467,7 +1442,6 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1504,7 +1478,6 @@ golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1513,7 +1486,6 @@ golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1547,7 +1519,6 @@ golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1578,6 +1549,8 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1585,7 +1558,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -1594,9 +1566,7 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1613,7 +1583,6 @@ golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1634,7 +1603,6 @@ golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -1642,8 +1610,9 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1708,8 +1677,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.149.0 h1:b2CqT6kG+zqJIVKRQ3ELJVLN1PwHZ6DJ3dW8yl82rgY= -google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.153.0 h1:N1AwGhielyKFaUqH07/ZSIQR3uNPcV7NVw0vj+j4iR4= +google.golang.org/api v0.153.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1761,10 +1730,8 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= From 64fe99f0bcbefe1f53d79945bbc66239f2f49e55 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Wed, 10 Jan 2024 08:17:16 -0800 Subject: [PATCH 02/15] ante-handler fix --- app/ante_handler.go | 2 +- app/app.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/ante_handler.go b/app/ante_handler.go index 7d67d7d9e..140257bfe 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -94,7 +94,7 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, ante.NewSetPubKeyDecorator(options.AccountKeeper), ante.NewValidateSigCountDecorator(options.AccountKeeper), ante.NewSigGasConsumeDecorator(options.AccountKeeper, sigGasConsumer), - ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), + // ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), ante.NewIncrementSequenceDecorator(options.AccountKeeper), ibcante.NewRedundantRelayDecorator(options.IBCKeeper), auctionante.NewAuctionDecorator( diff --git a/app/app.go b/app/app.go index 674b8501f..146d6b2ed 100644 --- a/app/app.go +++ b/app/app.go @@ -1043,6 +1043,7 @@ func New( if err != nil { panic(err) } + app.SetAnteHandler(anteHandler) // set ante-handlers opts := []base.LaneOption{ From 93810f8738a6d9da21e0e2e1afea61472ab54459 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Wed, 10 Jan 2024 11:33:18 -0800 Subject: [PATCH 03/15] update dockerfile --- Dockerfile.builder | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.builder b/Dockerfile.builder index c8167cb04..86ce2a5ac 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -42,7 +42,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/root/go/pkg/mod \ go build \ -mod=readonly \ - -tags "netgo,ledger,muslc" \ + -tags "netgo,ledger,muslc,skip_ccv_msg_filter" \ -ldflags "-X github.com/cosmos/cosmos-sdk/version.Name="neutron" \ -X github.com/cosmos/cosmos-sdk/version.AppName="neutrond" \ -X github.com/cosmos/cosmos-sdk/version.Version=${GIT_VERSION} \ diff --git a/go.mod b/go.mod index 53aff85d3..b6238d8ac 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 github.com/rs/zerolog v1.30.0 - github.com/skip-mev/block-sdk v1.3.0-alpha.1.0.20240108220317-cd1d774cbd2d + github.com/skip-mev/block-sdk v1.3.0 github.com/spf13/cast v1.6.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index ec99eda7d..e558359bb 100644 --- a/go.sum +++ b/go.sum @@ -1116,8 +1116,8 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skip-mev/block-sdk v1.3.0-alpha.1.0.20240108220317-cd1d774cbd2d h1:2vWCW9m8pRiRIjO3AaaDMgNWY6hNSJFYdGfur7Gi51I= -github.com/skip-mev/block-sdk v1.3.0-alpha.1.0.20240108220317-cd1d774cbd2d/go.mod h1:O+ncyaweK2Z+cHqJxBQ6B+Fkw63RyfJ7Kyg0+dt+SqU= +github.com/skip-mev/block-sdk v1.3.0 h1:/c6d0UeMbSrW39XJqBT23aKq3dn5TSyar+wleivenNA= +github.com/skip-mev/block-sdk v1.3.0/go.mod h1:O+ncyaweK2Z+cHqJxBQ6B+Fkw63RyfJ7Kyg0+dt+SqU= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= From 505974f367bbe89572ff0dbd17cb07981669a227 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Thu, 18 Jan 2024 13:41:55 -0800 Subject: [PATCH 04/15] nits --- app/ante_handler.go | 2 +- app/app.go | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/ante_handler.go b/app/ante_handler.go index 140257bfe..e390aa83e 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -78,7 +78,7 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, wasmkeeper.NewLimitSimulationGasDecorator(options.WasmConfig.SimulationGasLimit), // after setup context to enforce limits early wasmkeeper.NewCountTXDecorator(options.TXCounterStoreKey), ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), - consumerante.NewDisabledModulesDecorator("/cosmos.evidence", "/cosmos.slashing"), + // consumerante.NewDisabledModulesDecorator("/cosmos.evidence", "/cosmos.slashing"), ante.NewValidateBasicDecorator(), ante.NewTxTimeoutHeightDecorator(), ante.NewValidateMemoDecorator(options.AccountKeeper), diff --git a/app/app.go b/app/app.go index 146d6b2ed..256187af2 100644 --- a/app/app.go +++ b/app/app.go @@ -183,10 +183,14 @@ import ( const ( Name = "neutrond" + MaxTxsForDefaultLane = 3000 + MaxTxsForMEVLane = 500 ) var ( Upgrades = []upgrades.Upgrade{v030.Upgrade, v044.Upgrade, v200.Upgrade, v202.Upgrade} + MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") + MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") // DefaultNodeHome default home directories for the application daemon DefaultNodeHome string @@ -974,14 +978,13 @@ func New( app.SetEndBlocker(app.EndBlocker) // initialize lanes - maxTxs := 0 // no limit basecfg := blocksdkbase.LaneConfig{ Logger: app.Logger(), TxDecoder: app.GetTxConfig().TxDecoder(), TxEncoder: app.GetTxConfig().TxEncoder(), SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), - MaxBlockSpace: sdk.ZeroDec(), - MaxTxs: maxTxs, + MaxBlockSpace: MaxBlockspaceForDefaultLane, + MaxTxs: MaxTxsForDefaultLane, } baseLane := base_lane.NewDefaultLane(basecfg, base.DefaultMatchHandler()) @@ -993,8 +996,8 @@ func New( TxDecoder: app.GetTxConfig().TxDecoder(), TxEncoder: app.GetTxConfig().TxEncoder(), SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), - MaxBlockSpace: math.LegacyMustNewDecFromStr("0.2"), - MaxTxs: maxTxs, + MaxBlockSpace: MaxBlockspaceForMEVLane, + MaxTxs: MaxTxsForMEVLane, } mevLane := mev_lane.NewMEVLane( mevcfg, From a0446ce0516b29f0021ed8c04eea02ad8b466ea1 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Thu, 18 Jan 2024 16:17:38 -0800 Subject: [PATCH 05/15] factor lane logic into separate file --- Dockerfile.builder | 4 ++-- Makefile | 16 +++++--------- app/ante_handler.go | 6 ----- app/app.go | 48 ++-------------------------------------- app/lane.go | 54 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 65 deletions(-) create mode 100644 app/lane.go diff --git a/Dockerfile.builder b/Dockerfile.builder index 86ce2a5ac..762fa0ba7 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -42,7 +42,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/root/go/pkg/mod \ go build \ -mod=readonly \ - -tags "netgo,ledger,muslc,skip_ccv_msg_filter" \ + -tags "netgo,ledger,muslc" \ -ldflags "-X github.com/cosmos/cosmos-sdk/version.Name="neutron" \ -X github.com/cosmos/cosmos-sdk/version.AppName="neutrond" \ -X github.com/cosmos/cosmos-sdk/version.Version=${GIT_VERSION} \ @@ -69,4 +69,4 @@ EXPOSE 26656 EXPOSE 26657 EXPOSE 1317 -ENTRYPOINT ["neutrond", "start"] +ENTRYPOINT ["neutrond"] \ No newline at end of file diff --git a/Makefile b/Makefile index 7999e900c..f4f1564b4 100644 --- a/Makefile +++ b/Makefile @@ -83,6 +83,10 @@ BUILD_FLAGS_TEST_BINARY := -tags "$(build_tags_test_binary_comma_sep)" -ldflags include contrib/devtools/Makefile check_version: +ifneq ($(GO_SYSTEM_VERSION), $(REQUIRE_GO_VERSION)) + @echo "ERROR: Go version ${REQUIRE_GO_VERSION} is required for $(VERSION) of Neutron." + exit 1 +endif all: install lint test @@ -90,7 +94,7 @@ BUILD_TARGETS := build install build: BUILD_ARGS=-o $(BUILDDIR)/ -$(BUILD_TARGETS): go.sum $(BUILDDIR)/ +$(BUILD_TARGETS): check_version go.sum $(BUILDDIR)/ ifeq ($(OS),Windows_NT) exit 1 else @@ -100,16 +104,6 @@ endif $(BUILDDIR)/: mkdir -p $(BUILDDIR)/ -docker-build: - $(DOCKER) buildx build \ - --build-arg GIT_VERSION=$(VERSION) \ - --build-arg GIT_COMMIT=$(COMMIT) \ - --build-arg BUILD_TAGS=$(build_tags_comma_sep) \ - --platform linux/amd64 \ - -t neutron-amd64 \ - --load \ - -f Dockerfile.builder . - build-static-linux-amd64: go.sum $(BUILDDIR)/ $(DOCKER) buildx create --name neutronbuilder || true $(DOCKER) buildx use neutronbuilder diff --git a/app/ante_handler.go b/app/ante_handler.go index e390aa83e..66e35f9ed 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -17,7 +17,6 @@ import ( ibcconsumerkeeper "github.com/cosmos/interchain-security/v3/x/ccv/consumer/keeper" auctionante "github.com/skip-mev/block-sdk/x/auction/ante" auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" - blocksdk "github.com/skip-mev/block-sdk/block" ) // HandlerOptions extend the SDK's AnteHandler options by requiring the IBC @@ -35,7 +34,6 @@ type HandlerOptions struct { AuctionKeeper auctionkeeper.Keeper TxEncoder sdk.TxEncoder MEVLane auctionante.MEVLane - Mempool blocksdk.Mempool // globalFee GlobalFeeSubspace paramtypes.Subspace @@ -60,10 +58,6 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, if options.GlobalFeeSubspace.Name() == "" { return nil, errors.Wrap(gaiaerrors.ErrNotFound, "globalfee param store is required for AnteHandler") } - - if options.Mempool == nil { - return nil, errors.Wrap(gaiaerrors.ErrLogic, "mempool is required for AnteHandler") - } if options.MEVLane == nil { return nil, errors.Wrap(gaiaerrors.ErrLogic, "mev lane is required for AnteHandler") } diff --git a/app/app.go b/app/app.go index 256187af2..fae64746b 100644 --- a/app/app.go +++ b/app/app.go @@ -9,7 +9,6 @@ import ( "path/filepath" "reflect" - "cosmossdk.io/math" globalfeetypes "github.com/cosmos/gaia/v11/x/globalfee/types" "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward" "github.com/cosmos/interchain-security/v3/testutil/integration" @@ -166,11 +165,7 @@ import ( // Block-sdk imports blocksdkabci "github.com/skip-mev/block-sdk/abci" - signer_extraction_adapter "github.com/skip-mev/block-sdk/adapters/signer_extraction_adapter" blocksdk "github.com/skip-mev/block-sdk/block" - blocksdkbase "github.com/skip-mev/block-sdk/block/base" - base_lane "github.com/skip-mev/block-sdk/lanes/base" - mev_lane "github.com/skip-mev/block-sdk/lanes/mev" "github.com/skip-mev/block-sdk/x/auction" auctionante "github.com/skip-mev/block-sdk/x/auction/ante" auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" @@ -183,14 +178,10 @@ import ( const ( Name = "neutrond" - MaxTxsForDefaultLane = 3000 - MaxTxsForMEVLane = 500 ) var ( Upgrades = []upgrades.Upgrade{v030.Upgrade, v044.Upgrade, v200.Upgrade, v202.Upgrade} - MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") - MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") // DefaultNodeHome default home directories for the application daemon DefaultNodeHome string @@ -977,42 +968,8 @@ func New( app.SetEndBlocker(app.EndBlocker) - // initialize lanes - basecfg := blocksdkbase.LaneConfig{ - Logger: app.Logger(), - TxDecoder: app.GetTxConfig().TxDecoder(), - TxEncoder: app.GetTxConfig().TxEncoder(), - SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), - MaxBlockSpace: MaxBlockspaceForDefaultLane, - MaxTxs: MaxTxsForDefaultLane, - } - - baseLane := base_lane.NewDefaultLane(basecfg, base.DefaultMatchHandler()) - - factory := mev_lane.NewDefaultAuctionFactory(app.GetTxConfig().TxDecoder(), signer_extraction_adapter.NewDefaultAdapter()) - - mevcfg := blocksdkbase.LaneConfig{ - Logger: app.Logger(), - TxDecoder: app.GetTxConfig().TxDecoder(), - TxEncoder: app.GetTxConfig().TxEncoder(), - SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), - MaxBlockSpace: MaxBlockspaceForMEVLane, - MaxTxs: MaxTxsForMEVLane, - } - mevLane := mev_lane.NewMEVLane( - mevcfg, - factory, - factory.MatchHandler(), - ) - app.MEVLane = mevLane - // initialize mempool - mempool, err := blocksdk.NewLanedMempool( - app.Logger(), - []blocksdk.Lane{ - mevLane, // mev-lane is first to prioritize bids being placed at the TOB - baseLane, // finally, all the rest of txs... - }, - ) + mevLane, baseLane := app.CreateLanes() + mempool, err := blocksdk.NewLanedMempool(app.Logger(), []blocksdk.Lane{mevLane, baseLane}) if err != nil { panic(err) } @@ -1038,7 +995,6 @@ func New( GlobalFeeSubspace: app.GetSubspace(globalfee.ModuleName), AuctionKeeper: app.AuctionKeeper, TxEncoder: app.GetTxConfig().TxEncoder(), - Mempool: app.Mempool, MEVLane: app.MEVLane, }, app.Logger(), diff --git a/app/lane.go b/app/lane.go new file mode 100644 index 000000000..ac9bc7ba7 --- /dev/null +++ b/app/lane.go @@ -0,0 +1,54 @@ +package app + +import ( + "cosmossdk.io/math" + signer_extraction_adapter "github.com/skip-mev/block-sdk/adapters/signer_extraction_adapter" + blocksdkbase "github.com/skip-mev/block-sdk/block/base" + base_lane "github.com/skip-mev/block-sdk/lanes/base" + "github.com/skip-mev/block-sdk/lanes/mev" + mev_lane "github.com/skip-mev/block-sdk/lanes/mev" +) + +const ( + MaxTxsForDefaultLane = 3000 + MaxTxsForMEVLane = 500 +) + +var ( + MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") + MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") +) + +// CreateLanes creates a LaneMempool containing MEV, free lanes (in that order) +func (app *App) CreateLanes() (*mev.MEVLane, *blocksdkbase.BaseLane) { + // initialize lanes + basecfg := blocksdkbase.LaneConfig{ + Logger: app.Logger(), + TxDecoder: app.GetTxConfig().TxDecoder(), + TxEncoder: app.GetTxConfig().TxEncoder(), + SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), + MaxBlockSpace: MaxBlockspaceForDefaultLane, + MaxTxs: MaxTxsForDefaultLane, + } + + baseLane := base_lane.NewDefaultLane(basecfg, blocksdkbase.DefaultMatchHandler()) + + factory := mev_lane.NewDefaultAuctionFactory(app.GetTxConfig().TxDecoder(), signer_extraction_adapter.NewDefaultAdapter()) + + mevcfg := blocksdkbase.LaneConfig{ + Logger: app.Logger(), + TxDecoder: app.GetTxConfig().TxDecoder(), + TxEncoder: app.GetTxConfig().TxEncoder(), + SignerExtractor: signer_extraction_adapter.NewDefaultAdapter(), + MaxBlockSpace: MaxBlockspaceForMEVLane, + MaxTxs: MaxTxsForMEVLane, + } + mevLane := mev_lane.NewMEVLane( + mevcfg, + factory, + factory.MatchHandler(), + ) + app.MEVLane = mevLane + + return mevLane, baseLane +} From 3d20e9648f3c0b8ebcebaa9d841f7aea790b6c9a Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Thu, 18 Jan 2024 16:55:51 -0800 Subject: [PATCH 06/15] update upgrade handler --- app/upgrades/v2.0.0/upgrades.go | 30 ------------- app/upgrades/v2.0.2/constants.go | 19 +++++--- app/upgrades/v2.0.2/upgrades.go | 33 ++++++++++++-- app/upgrades/v2.0.2/upgrades_test.go | 66 ++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+), 38 deletions(-) create mode 100644 app/upgrades/v2.0.2/upgrades_test.go diff --git a/app/upgrades/v2.0.0/upgrades.go b/app/upgrades/v2.0.0/upgrades.go index 00dab4137..f2358adad 100644 --- a/app/upgrades/v2.0.0/upgrades.go +++ b/app/upgrades/v2.0.0/upgrades.go @@ -1,10 +1,7 @@ package v200 import ( - "cosmossdk.io/math" - "fmt" - feeburnerkeeper "github.com/neutron-org/neutron/v2/x/feeburner/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" "github.com/cosmos/cosmos-sdk/baseapp" @@ -23,8 +20,6 @@ import ( "github.com/cosmos/gaia/v11/x/globalfee/types" v6 "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/migrations/v6" ccvconsumertypes "github.com/cosmos/interchain-security/v3/x/ccv/consumer/types" - auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" - auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" "github.com/neutron-org/neutron/v2/app/upgrades" contractmanagerkeeper "github.com/neutron-org/neutron/v2/x/contractmanager/keeper" @@ -35,7 +30,6 @@ import ( icqtypes "github.com/neutron-org/neutron/v2/x/interchainqueries/types" interchaintxstypes "github.com/neutron-org/neutron/v2/x/interchaintxs/types" tokenfactorytypes "github.com/neutron-org/neutron/v2/x/tokenfactory/types" - "github.com/cosmos/cosmos-sdk/types/bech32" ) func CreateUpgradeHandler( @@ -88,12 +82,6 @@ func CreateUpgradeHandler( return nil, err } - ctx.Logger().Info("Setting pob params...") - err = setAuctionParams(ctx, keepers.FeeBurnerKeeper, keepers.AuctionKeeper) - if err != nil { - return nil, err - } - ctx.Logger().Info("Setting sudo callback limit...") err = setContractManagerParams(ctx, keepers.ContractManager) if err != nil { @@ -129,24 +117,6 @@ func CreateUpgradeHandler( } } -func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, auctionKeeper auctionkeeper.Keeper) error { - treasury := feeBurnerKeeper.GetParams(ctx).TreasuryAddress - _, data, err := bech32.DecodeAndConvert(treasury) - if err != nil { - return err - } - - auctionParams := auctiontypes.Params{ - MaxBundleSize: 2, - EscrowAccountAddress: data, - ReserveFee: sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)}, - MinBidIncrement: sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)}, - FrontRunningProtection: true, - ProposerFee: math.LegacyNewDecWithPrec(25, 2), - } - return auctionKeeper.SetParams(ctx, auctionParams) -} - func setContractManagerParams(ctx sdk.Context, keeper contractmanagerkeeper.Keeper) error { cmParams := contractmanagertypes.Params{ SudoCallGasLimit: contractmanagertypes.DefaultSudoCallGasLimit, diff --git a/app/upgrades/v2.0.2/constants.go b/app/upgrades/v2.0.2/constants.go index a01a24522..604f12a02 100644 --- a/app/upgrades/v2.0.2/constants.go +++ b/app/upgrades/v2.0.2/constants.go @@ -2,14 +2,23 @@ package v202 import ( "github.com/neutron-org/neutron/v2/app/upgrades" + sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) const ( // UpgradeName defines the on-chain upgrade name. UpgradeName = "v2.0.2" -) -var Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, -} + AuctionParamsMaxBundleSize = 2 + AuctionParamsFrontRunningProtection = true +) +var ( + Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, + } + AuctionParamsReserveFee = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} + AuctionParamsMinBidIncrement = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} + AuctionParamsProposerFee = math.LegacyNewDecWithPrec(25, 2) +) diff --git a/app/upgrades/v2.0.2/upgrades.go b/app/upgrades/v2.0.2/upgrades.go index 340a7c6dc..d29dcea7d 100644 --- a/app/upgrades/v2.0.2/upgrades.go +++ b/app/upgrades/v2.0.2/upgrades.go @@ -2,24 +2,51 @@ package v202 import ( "fmt" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" "github.com/neutron-org/neutron/v2/app/upgrades" + "github.com/cosmos/cosmos-sdk/types/bech32" + auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + feeburnerkeeper "github.com/neutron-org/neutron/v2/x/feeburner/keeper" ) func CreateUpgradeHandler( _ *module.Manager, _ module.Configurator, - _ *upgrades.UpgradeKeepers, + keepers *upgrades.UpgradeKeepers, _ upgrades.StoreKeys, _ codec.Codec, ) upgradetypes.UpgradeHandler { return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - ctx.Logger().Info(fmt.Sprintf("Empty migration {%s} applied", UpgradeName)) + ctx.Logger().Info("Setting block-sdk params...") + err := setAuctionParams(ctx, keepers.FeeBurnerKeeper, keepers.AuctionKeeper) + if err != nil { + return nil, err + } + return vm, nil } } + +func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, auctionKeeper auctionkeeper.Keeper) error { + treasury := feeBurnerKeeper.GetParams(ctx).TreasuryAddress + _, data, err := bech32.DecodeAndConvert(treasury) + if err != nil { + return err + } + fmt.Println("treasury addy", feeBurnerKeeper.GetParams(ctx).TreasuryAddress) + + auctionParams := auctiontypes.Params{ + MaxBundleSize: AuctionParamsMaxBundleSize, + EscrowAccountAddress: data, + ReserveFee: AuctionParamsReserveFee, + MinBidIncrement: AuctionParamsMinBidIncrement, + FrontRunningProtection: AuctionParamsFrontRunningProtection, + ProposerFee: AuctionParamsProposerFee, + } + return auctionKeeper.SetParams(ctx, auctionParams) +} diff --git a/app/upgrades/v2.0.2/upgrades_test.go b/app/upgrades/v2.0.2/upgrades_test.go new file mode 100644 index 000000000..221a4e2bd --- /dev/null +++ b/app/upgrades/v2.0.2/upgrades_test.go @@ -0,0 +1,66 @@ +package v202_test + +import ( + "testing" + + crontypes "github.com/neutron-org/neutron/v2/x/cron/types" + feeburnertypes "github.com/neutron-org/neutron/v2/x/feeburner/types" + + "github.com/stretchr/testify/suite" + + v202 "github.com/neutron-org/neutron/v2/app/upgrades/v2.0.2" + "github.com/neutron-org/neutron/v2/testutil" + sdk "github.com/cosmos/cosmos-sdk/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types") + +type UpgradeTestSuite struct { + testutil.IBCConnectionTestSuite +} + +const treasuryAddress = "neutron17dtl0mjt3t77kpuhg2edqzjpszulwhgzcdvagh" + +func TestKeeperTestSuite(t *testing.T) { + suite.Run(t, new(UpgradeTestSuite)) +} + +func (suite *UpgradeTestSuite) SetupTest() { + suite.IBCConnectionTestSuite.SetupTest() + app := suite.GetNeutronZoneApp(suite.ChainA) + ctx := suite.ChainA.GetContext() + subspace, _ := app.ParamsKeeper.GetSubspace(crontypes.StoreKey) + pcron := crontypes.DefaultParams() + subspace.SetParamSet(ctx, &pcron) +} + +func (suite *UpgradeTestSuite) TestAuctionUpgrade() { + var ( + app = suite.GetNeutronZoneApp(suite.ChainA) + ctx = suite.ChainA.GetContext() + ) + + feeParams := feeburnertypes.NewParams(feeburnertypes.DefaultNeutronDenom, treasuryAddress) + app.FeeBurnerKeeper.SetParams(ctx, feeParams) + + upgrade := upgradetypes.Plan{ + Name: v202.UpgradeName, + Info: "ads", + Height: 100, + } + app.UpgradeKeeper.ApplyUpgrade(ctx, upgrade) + + // get the auction module's params + params, err := app.AuctionKeeper.GetParams(ctx) + suite.Require().NoError(err) + + // check that the params are correct + params.MaxBundleSize = v202.AuctionParamsMaxBundleSize + params.ReserveFee = v202.AuctionParamsReserveFee + params.MinBidIncrement = v202.AuctionParamsMinBidIncrement + params.FrontRunningProtection = v202.AuctionParamsFrontRunningProtection + params.ProposerFee = v202.AuctionParamsProposerFee + + addr, err := sdk.AccAddressFromBech32(treasuryAddress) + suite.Require().NoError(err) + + suite.Require().Equal(addr.Bytes(), params.EscrowAccountAddress) +} From 4b19be53aa272e77abe3a33848b7d0996bcc99b1 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Thu, 18 Jan 2024 16:58:00 -0800 Subject: [PATCH 07/15] block-sdk version upgrade --- go.mod | 12 ++++++------ go.sum | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index b6238d8ac..1ce1be9f0 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 github.com/rs/zerolog v1.30.0 - github.com/skip-mev/block-sdk v1.3.0 + github.com/skip-mev/block-sdk v1.4.0 github.com/spf13/cast v1.6.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 @@ -180,12 +180,12 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/crypto v0.16.0 // indirect - golang.org/x/net v0.19.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.153.0 // indirect diff --git a/go.sum b/go.sum index e558359bb..5fe199397 100644 --- a/go.sum +++ b/go.sum @@ -1116,8 +1116,8 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skip-mev/block-sdk v1.3.0 h1:/c6d0UeMbSrW39XJqBT23aKq3dn5TSyar+wleivenNA= -github.com/skip-mev/block-sdk v1.3.0/go.mod h1:O+ncyaweK2Z+cHqJxBQ6B+Fkw63RyfJ7Kyg0+dt+SqU= +github.com/skip-mev/block-sdk v1.4.0 h1:j2wEooUDA74ed+FjCDI3I/aPArdYxKLG5asb6C+so2M= +github.com/skip-mev/block-sdk v1.4.0/go.mod h1:Yv+gQqRh41bCbWC0Bpau8DBE7UwxxPfGmNVbtVrgWAo= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -1281,8 +1281,8 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= @@ -1374,8 +1374,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1417,8 +1417,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1522,14 +1522,14 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1611,8 +1611,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= -golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 10a52402a15303cbe8fd9f5a686fce9f68486763 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Thu, 18 Jan 2024 17:07:24 -0800 Subject: [PATCH 08/15] docs + nits --- app/app.go | 12 +++++++----- app/lane.go | 19 +++++++++++-------- app/upgrades/v2.0.0/constants.go | 5 +++-- app/upgrades/v2.0.2/constants.go | 12 +++++++----- app/upgrades/v2.0.2/upgrades.go | 6 ++++-- app/upgrades/v2.0.2/upgrades_test.go | 16 +++++++++------- 6 files changed, 41 insertions(+), 29 deletions(-) diff --git a/app/app.go b/app/app.go index fae64746b..e3568d759 100644 --- a/app/app.go +++ b/app/app.go @@ -344,10 +344,10 @@ type App struct { // Custom checkTx handler checkTxHandler checktx.CheckTx - + // Lanes - Mempool blocksdk.Mempool - MEVLane auctionante.MEVLane + Mempool blocksdk.Mempool + MEVLane auctionante.MEVLane } func (app *App) GetTestBankKeeper() integration.TestBankKeeper { @@ -968,6 +968,7 @@ func New( app.SetEndBlocker(app.EndBlocker) + // create the lanes mevLane, baseLane := app.CreateLanes() mempool, err := blocksdk.NewLanedMempool(app.Logger(), []blocksdk.Lane{mevLane, baseLane}) if err != nil { @@ -978,7 +979,7 @@ func New( app.SetMempool(mempool) app.Mempool = mempool - // create the ante-handler + // then create the ante-handler anteHandler, err := NewAnteHandler( HandlerOptions{ HandlerOptions: ante.HandlerOptions{ @@ -1013,6 +1014,7 @@ func New( app.SetEndBlocker(app.EndBlocker) + // set the block-sdk prepare / process-proposal handlers handler := blocksdkabci.NewProposalHandler( app.Logger(), app.GetTxConfig().TxDecoder(), @@ -1022,7 +1024,7 @@ func New( app.SetPrepareProposal(handler.PrepareProposalHandler()) app.SetProcessProposal(handler.ProcessProposalHandler()) - // check-tx + // block-sdk CheckTx handler mevCheckTxHandler := checktx.NewMEVCheckTxHandler( app, app.GetTxConfig().TxDecoder(), diff --git a/app/lane.go b/app/lane.go index ac9bc7ba7..4d823bf32 100644 --- a/app/lane.go +++ b/app/lane.go @@ -5,23 +5,22 @@ import ( signer_extraction_adapter "github.com/skip-mev/block-sdk/adapters/signer_extraction_adapter" blocksdkbase "github.com/skip-mev/block-sdk/block/base" base_lane "github.com/skip-mev/block-sdk/lanes/base" - "github.com/skip-mev/block-sdk/lanes/mev" mev_lane "github.com/skip-mev/block-sdk/lanes/mev" ) const ( - MaxTxsForDefaultLane = 3000 - MaxTxsForMEVLane = 500 + MaxTxsForDefaultLane = 3000 // maximal number of txs that can be stored in this lane at any point in time + MaxTxsForMEVLane = 500 // ditto ) var ( - MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") - MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") + MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") // maximal fraction of blockMaxBytes / gas that can be used by this lane at any point in time + MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") // ditto ) -// CreateLanes creates a LaneMempool containing MEV, free lanes (in that order) -func (app *App) CreateLanes() (*mev.MEVLane, *blocksdkbase.BaseLane) { - // initialize lanes +// CreateLanes creates a LaneMempool containing MEV, default lanes (in that order) +func (app *App) CreateLanes() (*mev_lane.MEVLane, *blocksdkbase.BaseLane) { + // initialize the default lane basecfg := blocksdkbase.LaneConfig{ Logger: app.Logger(), TxDecoder: app.GetTxConfig().TxDecoder(), @@ -33,6 +32,8 @@ func (app *App) CreateLanes() (*mev.MEVLane, *blocksdkbase.BaseLane) { baseLane := base_lane.NewDefaultLane(basecfg, blocksdkbase.DefaultMatchHandler()) + // initialize the MEV lane + // factory is used to extract information from bid-tx factory := mev_lane.NewDefaultAuctionFactory(app.GetTxConfig().TxDecoder(), signer_extraction_adapter.NewDefaultAdapter()) mevcfg := blocksdkbase.LaneConfig{ @@ -48,6 +49,8 @@ func (app *App) CreateLanes() (*mev.MEVLane, *blocksdkbase.BaseLane) { factory, factory.MatchHandler(), ) + + // set the MEVLane used in the mev-ante-handler on the application app.MEVLane = mevLane return mevLane, baseLane diff --git a/app/upgrades/v2.0.0/constants.go b/app/upgrades/v2.0.0/constants.go index fd454173f..3799d7d86 100644 --- a/app/upgrades/v2.0.0/constants.go +++ b/app/upgrades/v2.0.0/constants.go @@ -5,9 +5,10 @@ import ( consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" - dextypes "github.com/neutron-org/neutron/v2/x/dex/types" - "github.com/neutron-org/neutron/v2/app/upgrades" auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + + "github.com/neutron-org/neutron/v2/app/upgrades" + dextypes "github.com/neutron-org/neutron/v2/x/dex/types" ) const ( diff --git a/app/upgrades/v2.0.2/constants.go b/app/upgrades/v2.0.2/constants.go index 604f12a02..0aecd31f8 100644 --- a/app/upgrades/v2.0.2/constants.go +++ b/app/upgrades/v2.0.2/constants.go @@ -1,24 +1,26 @@ package v202 import ( - "github.com/neutron-org/neutron/v2/app/upgrades" - sdk "github.com/cosmos/cosmos-sdk/types" "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/neutron-org/neutron/v2/app/upgrades" ) const ( // UpgradeName defines the on-chain upgrade name. UpgradeName = "v2.0.2" - AuctionParamsMaxBundleSize = 2 + AuctionParamsMaxBundleSize = 2 AuctionParamsFrontRunningProtection = true ) + var ( Upgrade = upgrades.Upgrade{ UpgradeName: UpgradeName, CreateUpgradeHandler: CreateUpgradeHandler, } - AuctionParamsReserveFee = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} + AuctionParamsReserveFee = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} AuctionParamsMinBidIncrement = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} - AuctionParamsProposerFee = math.LegacyNewDecWithPrec(25, 2) + AuctionParamsProposerFee = math.LegacyNewDecWithPrec(25, 2) ) diff --git a/app/upgrades/v2.0.2/upgrades.go b/app/upgrades/v2.0.2/upgrades.go index d29dcea7d..5a01071af 100644 --- a/app/upgrades/v2.0.2/upgrades.go +++ b/app/upgrades/v2.0.2/upgrades.go @@ -2,15 +2,17 @@ package v202 import ( "fmt" + "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/bech32" "github.com/cosmos/cosmos-sdk/types/module" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" "github.com/neutron-org/neutron/v2/app/upgrades" - "github.com/cosmos/cosmos-sdk/types/bech32" auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + feeburnerkeeper "github.com/neutron-org/neutron/v2/x/feeburner/keeper" ) @@ -43,7 +45,7 @@ func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, auctionParams := auctiontypes.Params{ MaxBundleSize: AuctionParamsMaxBundleSize, EscrowAccountAddress: data, - ReserveFee: AuctionParamsReserveFee, + ReserveFee: AuctionParamsReserveFee, MinBidIncrement: AuctionParamsMinBidIncrement, FrontRunningProtection: AuctionParamsFrontRunningProtection, ProposerFee: AuctionParamsProposerFee, diff --git a/app/upgrades/v2.0.2/upgrades_test.go b/app/upgrades/v2.0.2/upgrades_test.go index 221a4e2bd..8f2d005e1 100644 --- a/app/upgrades/v2.0.2/upgrades_test.go +++ b/app/upgrades/v2.0.2/upgrades_test.go @@ -8,10 +8,12 @@ import ( "github.com/stretchr/testify/suite" + sdk "github.com/cosmos/cosmos-sdk/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + v202 "github.com/neutron-org/neutron/v2/app/upgrades/v2.0.2" "github.com/neutron-org/neutron/v2/testutil" - sdk "github.com/cosmos/cosmos-sdk/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types") +) type UpgradeTestSuite struct { testutil.IBCConnectionTestSuite @@ -34,16 +36,16 @@ func (suite *UpgradeTestSuite) SetupTest() { func (suite *UpgradeTestSuite) TestAuctionUpgrade() { var ( - app = suite.GetNeutronZoneApp(suite.ChainA) - ctx = suite.ChainA.GetContext() + app = suite.GetNeutronZoneApp(suite.ChainA) + ctx = suite.ChainA.GetContext() ) feeParams := feeburnertypes.NewParams(feeburnertypes.DefaultNeutronDenom, treasuryAddress) - app.FeeBurnerKeeper.SetParams(ctx, feeParams) + suite.Require().NoError(app.FeeBurnerKeeper.SetParams(ctx, feeParams)) upgrade := upgradetypes.Plan{ - Name: v202.UpgradeName, - Info: "ads", + Name: v202.UpgradeName, + Info: "ads", Height: 100, } app.UpgradeKeeper.ApplyUpgrade(ctx, upgrade) From 9509a9c0fb8f8bbb48124748b932794c727e3d1c Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Thu, 18 Jan 2024 18:08:42 -0800 Subject: [PATCH 09/15] nits --- app/ante_handler.go | 7 +++---- app/app.go | 16 +++++++--------- app/lane.go | 9 +++++---- app/upgrades/v2.0.0/constants.go | 3 --- app/upgrades/v2.0.2/constants.go | 6 ++++++ app/upgrades/v2.0.2/upgrades.go | 3 --- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/app/ante_handler.go b/app/ante_handler.go index 66e35f9ed..0c12fd205 100644 --- a/app/ante_handler.go +++ b/app/ante_handler.go @@ -29,8 +29,7 @@ type HandlerOptions struct { WasmConfig *wasmTypes.WasmConfig TXCounterStoreKey storetypes.StoreKey - // block-sdk deps - // Auction deps + // dependencies for the x/auction ante-handler AuctionKeeper auctionkeeper.Keeper TxEncoder sdk.TxEncoder MEVLane auctionante.MEVLane @@ -72,7 +71,7 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, wasmkeeper.NewLimitSimulationGasDecorator(options.WasmConfig.SimulationGasLimit), // after setup context to enforce limits early wasmkeeper.NewCountTXDecorator(options.TXCounterStoreKey), ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), - // consumerante.NewDisabledModulesDecorator("/cosmos.evidence", "/cosmos.slashing"), + consumerante.NewDisabledModulesDecorator("/cosmos.evidence", "/cosmos.slashing"), ante.NewValidateBasicDecorator(), ante.NewTxTimeoutHeightDecorator(), ante.NewValidateMemoDecorator(options.AccountKeeper), @@ -88,7 +87,7 @@ func NewAnteHandler(options HandlerOptions, logger log.Logger) (sdk.AnteHandler, ante.NewSetPubKeyDecorator(options.AccountKeeper), ante.NewValidateSigCountDecorator(options.AccountKeeper), ante.NewSigGasConsumeDecorator(options.AccountKeeper, sigGasConsumer), - // ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), + ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), ante.NewIncrementSequenceDecorator(options.AccountKeeper), ibcante.NewRedundantRelayDecorator(options.IBCKeeper), auctionante.NewAuctionDecorator( diff --git a/app/app.go b/app/app.go index e3568d759..e18c988d8 100644 --- a/app/app.go +++ b/app/app.go @@ -294,7 +294,7 @@ type App struct { AdminmoduleKeeper adminmodulekeeper.Keeper AuthzKeeper authzkeeper.Keeper BankKeeper bankkeeper.BaseKeeper - // AuctionKeeper is the keeper that handles processing auction transactions + // AuctionKeeper handles the processing of bid-txs, the selection of winners per height, and the distribution of rewards. AuctionKeeper auctionkeeper.Keeper CapabilityKeeper *capabilitykeeper.Keeper SlashingKeeper slashingkeeper.Keeper @@ -342,11 +342,12 @@ type App struct { // sm is the simulation manager sm *module.SimulationManager - // Custom checkTx handler + // Custom checkTx handler -> this check-tx is used to simulate txs that are + // wrapped in a bid-tx checkTxHandler checktx.CheckTx - // Lanes - Mempool blocksdk.Mempool + // MEVLane is used as a dependency for the x/auction module's antehandler. This references th lane in the app's + // LaneMempool. MEVLane auctionante.MEVLane } @@ -977,7 +978,6 @@ func New( // set the mempool first app.SetMempool(mempool) - app.Mempool = mempool // then create the ante-handler anteHandler, err := NewAnteHandler( @@ -1135,12 +1135,10 @@ func (app *App) ChainID() string { // CheckTx will check the transaction with the provided checkTxHandler. We override the default // handler so that we can verify bid transactions before they are inserted into the mempool. -// With the POB CheckTx, we can verify the bid transaction and all of the bundled transactions +// With the Block-SDK CheckTx, we can verify the bid transaction and all of the bundled transactions // before inserting the bid transaction into the mempool. func (app *App) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx { - res := app.checkTxHandler(req) - app.Logger().Info("CheckTx", "response", res) - return res + return app.checkTxHandler(req) } // SetCheckTx sets the checkTxHandler for the app. diff --git a/app/lane.go b/app/lane.go index 4d823bf32..9533d9241 100644 --- a/app/lane.go +++ b/app/lane.go @@ -14,8 +14,8 @@ const ( ) var ( - MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") // maximal fraction of blockMaxBytes / gas that can be used by this lane at any point in time - MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") // ditto + MaxBlockspaceForDefaultLane = math.LegacyMustNewDecFromStr("0.9") // maximal fraction of blockMaxBytes / gas that can be used by this lane at any point in time (90%) + MaxBlockspaceForMEVLane = math.LegacyMustNewDecFromStr("0.1") // ditto (10%) ) // CreateLanes creates a LaneMempool containing MEV, default lanes (in that order) @@ -30,10 +30,11 @@ func (app *App) CreateLanes() (*mev_lane.MEVLane, *blocksdkbase.BaseLane) { 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()) - // initialize the MEV lane - // factory is used to extract information from bid-tx + // initialize the MEV lane, this lane is intended to hold all bid txs factory := mev_lane.NewDefaultAuctionFactory(app.GetTxConfig().TxDecoder(), signer_extraction_adapter.NewDefaultAdapter()) mevcfg := blocksdkbase.LaneConfig{ diff --git a/app/upgrades/v2.0.0/constants.go b/app/upgrades/v2.0.0/constants.go index 3799d7d86..f5cd8822b 100644 --- a/app/upgrades/v2.0.0/constants.go +++ b/app/upgrades/v2.0.0/constants.go @@ -5,8 +5,6 @@ import ( consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" - auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" - "github.com/neutron-org/neutron/v2/app/upgrades" dextypes "github.com/neutron-org/neutron/v2/x/dex/types" ) @@ -26,7 +24,6 @@ var Upgrade = upgrades.Upgrade{ consensusparamtypes.ModuleName, crisistypes.ModuleName, dextypes.ModuleName, - auctiontypes.ModuleName, }, }, } diff --git a/app/upgrades/v2.0.2/constants.go b/app/upgrades/v2.0.2/constants.go index 0aecd31f8..16d57b28e 100644 --- a/app/upgrades/v2.0.2/constants.go +++ b/app/upgrades/v2.0.2/constants.go @@ -4,6 +4,9 @@ import ( "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + "github.com/neutron-org/neutron/v2/app/upgrades" ) @@ -19,6 +22,9 @@ var ( Upgrade = upgrades.Upgrade{ UpgradeName: UpgradeName, CreateUpgradeHandler: CreateUpgradeHandler, + StoreUpgrades: storetypes.StoreUpgrades{ + Added: []string{auctiontypes.ModuleName}, + }, } AuctionParamsReserveFee = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} AuctionParamsMinBidIncrement = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} diff --git a/app/upgrades/v2.0.2/upgrades.go b/app/upgrades/v2.0.2/upgrades.go index 5a01071af..1210280d3 100644 --- a/app/upgrades/v2.0.2/upgrades.go +++ b/app/upgrades/v2.0.2/upgrades.go @@ -1,8 +1,6 @@ package v202 import ( - "fmt" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" @@ -40,7 +38,6 @@ func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, if err != nil { return err } - fmt.Println("treasury addy", feeBurnerKeeper.GetParams(ctx).TreasuryAddress) auctionParams := auctiontypes.Params{ MaxBundleSize: AuctionParamsMaxBundleSize, From cea68f7fb883bf38d88cc60ddfb0ce23943d1fc2 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Fri, 19 Jan 2024 13:17:34 -0800 Subject: [PATCH 10/15] update go mod version --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 1ce1be9f0..08d6767df 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/neutron-org/neutron/v2 -go 1.21.5 +go 1.20 toolchain go1.21.6 From fd612192d08c9e49c72201415b154aa6afd4d672 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Tue, 23 Jan 2024 09:33:53 -0800 Subject: [PATCH 11/15] move upgrade handlers to next-upgrade --- app/upgrades/nextupgrade/constants.go | 32 ++++++++++++ app/upgrades/nextupgrade/upgrades.go | 52 +++++++++++++++++++ .../{v2.0.2 => nextupgrade}/upgrades_test.go | 16 +++--- app/upgrades/v2.0.2/constants.go | 25 ++------- app/upgrades/v2.0.2/upgrades.go | 34 ++---------- 5 files changed, 100 insertions(+), 59 deletions(-) create mode 100644 app/upgrades/nextupgrade/constants.go create mode 100644 app/upgrades/nextupgrade/upgrades.go rename app/upgrades/{v2.0.2 => nextupgrade}/upgrades_test.go (77%) diff --git a/app/upgrades/nextupgrade/constants.go b/app/upgrades/nextupgrade/constants.go new file mode 100644 index 000000000..1efae3095 --- /dev/null +++ b/app/upgrades/nextupgrade/constants.go @@ -0,0 +1,32 @@ +package nextupgrade + +import ( + "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + + storetypes "github.com/cosmos/cosmos-sdk/store/types" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + + "github.com/neutron-org/neutron/v2/app/upgrades" +) + +const ( + // UpgradeName defines the on-chain upgrade name. + UpgradeName = "nextupgrade" + + AuctionParamsMaxBundleSize = 2 + AuctionParamsFrontRunningProtection = true +) + +var ( + Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, + StoreUpgrades: storetypes.StoreUpgrades{ + Added: []string{auctiontypes.ModuleName}, + }, + } + AuctionParamsReserveFee = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(500_000)} + AuctionParamsMinBidIncrement = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(100_000)} + AuctionParamsProposerFee = math.LegacyNewDecWithPrec(25, 2) +) diff --git a/app/upgrades/nextupgrade/upgrades.go b/app/upgrades/nextupgrade/upgrades.go new file mode 100644 index 000000000..9d55bbab0 --- /dev/null +++ b/app/upgrades/nextupgrade/upgrades.go @@ -0,0 +1,52 @@ +package nextupgrade + +import ( + "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/bech32" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + + auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" + auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" + + "github.com/neutron-org/neutron/v2/app/upgrades" + + feeburnerkeeper "github.com/neutron-org/neutron/v2/x/feeburner/keeper" +) + +func CreateUpgradeHandler( + _ *module.Manager, + _ module.Configurator, + keepers *upgrades.UpgradeKeepers, + _ upgrades.StoreKeys, + _ codec.Codec, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + ctx.Logger().Info("Setting block-sdk params...") + err := setAuctionParams(ctx, keepers.FeeBurnerKeeper, keepers.AuctionKeeper) + if err != nil { + return nil, err + } + + return vm, nil + } +} + +func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, auctionKeeper auctionkeeper.Keeper) error { + treasury := feeBurnerKeeper.GetParams(ctx).TreasuryAddress + _, data, err := bech32.DecodeAndConvert(treasury) + if err != nil { + return err + } + + auctionParams := auctiontypes.Params{ + MaxBundleSize: AuctionParamsMaxBundleSize, + EscrowAccountAddress: data, + ReserveFee: AuctionParamsReserveFee, + MinBidIncrement: AuctionParamsMinBidIncrement, + FrontRunningProtection: AuctionParamsFrontRunningProtection, + ProposerFee: AuctionParamsProposerFee, + } + return auctionKeeper.SetParams(ctx, auctionParams) +} diff --git a/app/upgrades/v2.0.2/upgrades_test.go b/app/upgrades/nextupgrade/upgrades_test.go similarity index 77% rename from app/upgrades/v2.0.2/upgrades_test.go rename to app/upgrades/nextupgrade/upgrades_test.go index 8f2d005e1..25b26198b 100644 --- a/app/upgrades/v2.0.2/upgrades_test.go +++ b/app/upgrades/nextupgrade/upgrades_test.go @@ -1,4 +1,4 @@ -package v202_test +package nextupgrade_test import ( "testing" @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - v202 "github.com/neutron-org/neutron/v2/app/upgrades/v2.0.2" + nextupgrade "github.com/neutron-org/neutron/v2/app/upgrades/nextupgrade" "github.com/neutron-org/neutron/v2/testutil" ) @@ -44,7 +44,7 @@ func (suite *UpgradeTestSuite) TestAuctionUpgrade() { suite.Require().NoError(app.FeeBurnerKeeper.SetParams(ctx, feeParams)) upgrade := upgradetypes.Plan{ - Name: v202.UpgradeName, + Name: nextupgrade.UpgradeName, Info: "ads", Height: 100, } @@ -55,11 +55,11 @@ func (suite *UpgradeTestSuite) TestAuctionUpgrade() { suite.Require().NoError(err) // check that the params are correct - params.MaxBundleSize = v202.AuctionParamsMaxBundleSize - params.ReserveFee = v202.AuctionParamsReserveFee - params.MinBidIncrement = v202.AuctionParamsMinBidIncrement - params.FrontRunningProtection = v202.AuctionParamsFrontRunningProtection - params.ProposerFee = v202.AuctionParamsProposerFee + params.MaxBundleSize = nextupgrade.AuctionParamsMaxBundleSize + params.ReserveFee = nextupgrade.AuctionParamsReserveFee + params.MinBidIncrement = nextupgrade.AuctionParamsMinBidIncrement + params.FrontRunningProtection = nextupgrade.AuctionParamsFrontRunningProtection + params.ProposerFee = nextupgrade.AuctionParamsProposerFee addr, err := sdk.AccAddressFromBech32(treasuryAddress) suite.Require().NoError(err) diff --git a/app/upgrades/v2.0.2/constants.go b/app/upgrades/v2.0.2/constants.go index 16d57b28e..a01a24522 100644 --- a/app/upgrades/v2.0.2/constants.go +++ b/app/upgrades/v2.0.2/constants.go @@ -1,32 +1,15 @@ package v202 import ( - "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" - - storetypes "github.com/cosmos/cosmos-sdk/store/types" - auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" - "github.com/neutron-org/neutron/v2/app/upgrades" ) const ( // UpgradeName defines the on-chain upgrade name. UpgradeName = "v2.0.2" - - AuctionParamsMaxBundleSize = 2 - AuctionParamsFrontRunningProtection = true ) -var ( - Upgrade = upgrades.Upgrade{ - UpgradeName: UpgradeName, - CreateUpgradeHandler: CreateUpgradeHandler, - StoreUpgrades: storetypes.StoreUpgrades{ - Added: []string{auctiontypes.ModuleName}, - }, - } - AuctionParamsReserveFee = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} - AuctionParamsMinBidIncrement = sdk.Coin{Denom: "untrn", Amount: sdk.NewInt(1_000_000)} - AuctionParamsProposerFee = math.LegacyNewDecWithPrec(25, 2) -) +var Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, +} diff --git a/app/upgrades/v2.0.2/upgrades.go b/app/upgrades/v2.0.2/upgrades.go index 1210280d3..340a7c6dc 100644 --- a/app/upgrades/v2.0.2/upgrades.go +++ b/app/upgrades/v2.0.2/upgrades.go @@ -1,51 +1,25 @@ package v202 import ( + "fmt" + "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/bech32" "github.com/cosmos/cosmos-sdk/types/module" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" "github.com/neutron-org/neutron/v2/app/upgrades" - auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" - auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" - - feeburnerkeeper "github.com/neutron-org/neutron/v2/x/feeburner/keeper" ) func CreateUpgradeHandler( _ *module.Manager, _ module.Configurator, - keepers *upgrades.UpgradeKeepers, + _ *upgrades.UpgradeKeepers, _ upgrades.StoreKeys, _ codec.Codec, ) upgradetypes.UpgradeHandler { return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { - ctx.Logger().Info("Setting block-sdk params...") - err := setAuctionParams(ctx, keepers.FeeBurnerKeeper, keepers.AuctionKeeper) - if err != nil { - return nil, err - } - + ctx.Logger().Info(fmt.Sprintf("Empty migration {%s} applied", UpgradeName)) return vm, nil } } - -func setAuctionParams(ctx sdk.Context, feeBurnerKeeper *feeburnerkeeper.Keeper, auctionKeeper auctionkeeper.Keeper) error { - treasury := feeBurnerKeeper.GetParams(ctx).TreasuryAddress - _, data, err := bech32.DecodeAndConvert(treasury) - if err != nil { - return err - } - - auctionParams := auctiontypes.Params{ - MaxBundleSize: AuctionParamsMaxBundleSize, - EscrowAccountAddress: data, - ReserveFee: AuctionParamsReserveFee, - MinBidIncrement: AuctionParamsMinBidIncrement, - FrontRunningProtection: AuctionParamsFrontRunningProtection, - ProposerFee: AuctionParamsProposerFee, - } - return auctionKeeper.SetParams(ctx, auctionParams) -} From 60c63a5385f9388dbb2d3d2a2e919fa22408fdc8 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Wed, 24 Jan 2024 08:07:21 -0800 Subject: [PATCH 12/15] fix nextupgrade test --- app/app.go | 3 ++- app/upgrades/nextupgrade/upgrades_test.go | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/app.go b/app/app.go index e18c988d8..e50c22173 100644 --- a/app/app.go +++ b/app/app.go @@ -22,6 +22,7 @@ import ( "github.com/neutron-org/neutron/v2/docs" "github.com/neutron-org/neutron/v2/app/upgrades" + "github.com/neutron-org/neutron/v2/app/upgrades/nextupgrade" v030 "github.com/neutron-org/neutron/v2/app/upgrades/v0.3.0" v044 "github.com/neutron-org/neutron/v2/app/upgrades/v0.4.4" v200 "github.com/neutron-org/neutron/v2/app/upgrades/v2.0.0" @@ -181,7 +182,7 @@ const ( ) var ( - Upgrades = []upgrades.Upgrade{v030.Upgrade, v044.Upgrade, v200.Upgrade, v202.Upgrade} + Upgrades = []upgrades.Upgrade{v030.Upgrade, v044.Upgrade, v200.Upgrade, v202.Upgrade, nextupgrade.Upgrade} // DefaultNodeHome default home directories for the application daemon DefaultNodeHome string diff --git a/app/upgrades/nextupgrade/upgrades_test.go b/app/upgrades/nextupgrade/upgrades_test.go index 25b26198b..a9a1b59e9 100644 --- a/app/upgrades/nextupgrade/upgrades_test.go +++ b/app/upgrades/nextupgrade/upgrades_test.go @@ -39,15 +39,15 @@ func (suite *UpgradeTestSuite) TestAuctionUpgrade() { app = suite.GetNeutronZoneApp(suite.ChainA) ctx = suite.ChainA.GetContext() ) - - feeParams := feeburnertypes.NewParams(feeburnertypes.DefaultNeutronDenom, treasuryAddress) - suite.Require().NoError(app.FeeBurnerKeeper.SetParams(ctx, feeParams)) - upgrade := upgradetypes.Plan{ Name: nextupgrade.UpgradeName, - Info: "ads", + Info: "nextupgrade", Height: 100, } + + feeParams := feeburnertypes.NewParams(feeburnertypes.DefaultNeutronDenom, treasuryAddress) + suite.Require().NoError(app.FeeBurnerKeeper.SetParams(ctx, feeParams)) + app.UpgradeKeeper.ApplyUpgrade(ctx, upgrade) // get the auction module's params From b79351bcfc9a192d70eb9b8f87813a9782d723c4 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Mon, 29 Jan 2024 07:03:34 -0800 Subject: [PATCH 13/15] pr nits --- app/app.go | 9 +-------- app/lane.go | 3 --- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/app/app.go b/app/app.go index e50c22173..bec39484c 100644 --- a/app/app.go +++ b/app/app.go @@ -168,7 +168,6 @@ import ( blocksdkabci "github.com/skip-mev/block-sdk/abci" blocksdk "github.com/skip-mev/block-sdk/block" "github.com/skip-mev/block-sdk/x/auction" - auctionante "github.com/skip-mev/block-sdk/x/auction/ante" auctionkeeper "github.com/skip-mev/block-sdk/x/auction/keeper" rewardsaddressprovider "github.com/skip-mev/block-sdk/x/auction/rewards" auctiontypes "github.com/skip-mev/block-sdk/x/auction/types" @@ -346,10 +345,6 @@ type App struct { // Custom checkTx handler -> this check-tx is used to simulate txs that are // wrapped in a bid-tx checkTxHandler checktx.CheckTx - - // MEVLane is used as a dependency for the x/auction module's antehandler. This references th lane in the app's - // LaneMempool. - MEVLane auctionante.MEVLane } func (app *App) GetTestBankKeeper() integration.TestBankKeeper { @@ -997,7 +992,7 @@ func New( GlobalFeeSubspace: app.GetSubspace(globalfee.ModuleName), AuctionKeeper: app.AuctionKeeper, TxEncoder: app.GetTxConfig().TxEncoder(), - MEVLane: app.MEVLane, + MEVLane: mevLane, }, app.Logger(), ) @@ -1013,8 +1008,6 @@ func New( baseLane.WithOptions(opts...) mevLane.WithOptions(opts...) - app.SetEndBlocker(app.EndBlocker) - // set the block-sdk prepare / process-proposal handlers handler := blocksdkabci.NewProposalHandler( app.Logger(), diff --git a/app/lane.go b/app/lane.go index 9533d9241..0cb30f79d 100644 --- a/app/lane.go +++ b/app/lane.go @@ -51,8 +51,5 @@ func (app *App) CreateLanes() (*mev_lane.MEVLane, *blocksdkbase.BaseLane) { factory.MatchHandler(), ) - // set the MEVLane used in the mev-ante-handler on the application - app.MEVLane = mevLane - return mevLane, baseLane } From 35c4201d460077a16439e1876974739b62e77662 Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Tue, 30 Jan 2024 10:50:05 -0800 Subject: [PATCH 14/15] nop process proposal handler --- app/app.go | 6 +++++- go.mod | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/app.go b/app/app.go index bec39484c..92ea15990 100644 --- a/app/app.go +++ b/app/app.go @@ -1016,7 +1016,11 @@ func New( mempool, ) app.SetPrepareProposal(handler.PrepareProposalHandler()) - app.SetProcessProposal(handler.ProcessProposalHandler()) + + // we use a no-op ProcessProposal, this way, we accept all proposals in avoidance + // of liveness failures due to Prepare / Process inconsistency. In other words, + // this ProcessProposal always returns ACCEPT. + app.SetProcessProposal(baseapp.NoOpProcessProposal()) // block-sdk CheckTx handler mevCheckTxHandler := checktx.NewMEVCheckTxHandler( diff --git a/go.mod b/go.mod index 08d6767df..82f7ff864 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/neutron-org/neutron/v2 -go 1.20 +go 1.21.1 toolchain go1.21.6 From 7ca5ba2efc4785f8657efd2fb036a110cf967b1e Mon Sep 17 00:00:00 2001 From: Nikhil Vasan Date: Tue, 30 Jan 2024 11:53:32 -0800 Subject: [PATCH 15/15] update go.mod patch version --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 82f7ff864..e312e5a61 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/neutron-org/neutron/v2 -go 1.21.1 +go 1.21.4 toolchain go1.21.6