From beb7aa405ff2c11aa2c4ef1eb3e24a0d763dead2 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 12:49:07 -0400 Subject: [PATCH 01/15] push --- README.md | 2 +- abci/checktx/mev_check_tx.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7fcdbfef..73586fd0 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ > **Note**: The BlockSDK is open source software that Skip maintains. We strive to be responsive to questions and issues within 1-2 weeks - please ask in our [#block-sdk-support discord](https://discord.com/invite/hFeHVAE26P) channel, or open a GitHub issue! -**Please note the status of BlockSDK maintainenace:** +**Please note the status of BlockSDK maintenance:** 1. We are not currently providing hands-on support for new integrations. 2. We have not yet completed our entire testing process for the FreeLane. We recommend integrators who want to have the best experience utilize the MEV Lane and the Default Lane only at this time. diff --git a/abci/checktx/mev_check_tx.go b/abci/checktx/mev_check_tx.go index fa024968..f1f77ef9 100644 --- a/abci/checktx/mev_check_tx.go +++ b/abci/checktx/mev_check_tx.go @@ -17,7 +17,7 @@ import ( "github.com/skip-mev/block-sdk/v2/x/auction/types" ) -// MevCheckTxHandler is a wrapper around baseapp's CheckTx method that allows us to +// MEVCheckTxHandler is a wrapper around baseapp's CheckTx method that allows us to // verify bid transactions against the latest committed state. All other transactions // are executed normally using base app's CheckTx. This defines all of the // dependencies that are required to verify a bid transaction. @@ -69,7 +69,7 @@ type BaseApp interface { ChainID() string } -// NewCheckTxHandler constructs a new CheckTxHandler instance. This method fails if the given LanedMempool does not have a lane +// NewMEVCheckTxHandler constructs a new CheckTxHandler instance. This method fails if the given LanedMempool does not have a lane // adhering to the MevLaneI interface func NewMEVCheckTxHandler( baseApp BaseApp, @@ -87,7 +87,7 @@ func NewMEVCheckTxHandler( } } -// CheckTxHandler is a wrapper around baseapp's CheckTx method that allows us to +// CheckTx is a wrapper around baseapp's CheckTx method that allows us to // verify bid transactions against the latest committed state. All other transactions // are executed normally. We must verify each bid tx and all of its bundled transactions // before we can insert it into the mempool against the latest commit state because From fa30deb72169965acf1c51a05337aab620343cca Mon Sep 17 00:00:00 2001 From: David Terpay Date: Tue, 2 Jul 2024 12:58:36 -0400 Subject: [PATCH 02/15] init --- tests/e2e/block_sdk_suite.go | 7 +++++++ tests/e2e/chain_setup.go | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/tests/e2e/block_sdk_suite.go b/tests/e2e/block_sdk_suite.go index a1250313..0e838273 100644 --- a/tests/e2e/block_sdk_suite.go +++ b/tests/e2e/block_sdk_suite.go @@ -1277,6 +1277,13 @@ func (s *E2ETestSuite) TestLanes() { }) } +func (s *E2ETestSuite) TestRejectsTxExceedLaneLimit() { + user := s.fuzzusers[0] + tx := s.CreateLargeTx(user, 0, 10000000, 100000) + txs := []Tx{tx} + s.BroadcastTxs(context.Background(), s.chain.(*cosmos.CosmosChain), txs) +} + func (s *E2ETestSuite) TestNetwork() { amountToTest := time.NewTicker(time.Second * 30) defer amountToTest.Stop() diff --git a/tests/e2e/chain_setup.go b/tests/e2e/chain_setup.go index 77cabb00..290d112e 100644 --- a/tests/e2e/chain_setup.go +++ b/tests/e2e/chain_setup.go @@ -192,6 +192,32 @@ func (s *E2ETestSuite) CreateDummyFreeTx( } } +func (s *E2ETestSuite) CreateLargeTx( + user ibc.Wallet, + sequenceOffset uint64, + gasPrice int64, + numMessages int, +) Tx { + msgs := make([]sdk.Msg, numMessages) + for i := 0; i < numMessages; i++ { + msgs[i] = banktypes.NewMsgSend( + sdk.AccAddress(user.Address()), + sdk.AccAddress(user.Address()), + sdk.NewCoins(sdk.NewCoin("stake", math.NewInt(1))), + ) + } + + return Tx{ + User: user, + Msgs: msgs, + GasPrice: gasPrice, + SequenceIncrement: sequenceOffset, + SkipInclusionCheck: true, + IgnoreChecks: false, + ExpectFail: true, + } +} + // SimulateTx simulates the provided messages, and checks whether the provided failure condition is met func (s *E2ETestSuite) SimulateTx(ctx context.Context, chain *cosmos.CosmosChain, user cosmos.User, height uint64, expectFail bool, msgs ...sdk.Msg) { // create tx factory + Client Context From 69d83b3d4084982464f162fcc3bd4c40620fa54c Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 13:41:09 -0400 Subject: [PATCH 03/15] fix setup --- abci/checktx/mempool_parity_check_tx.go | 46 ++++++++++++++++++- block/ante.go | 2 +- block/base/lane.go | 13 ++++-- block/base/match.go | 10 ++-- block/base/proposals.go | 4 +- block/base/types.go | 2 +- block/lane.go | 5 +- block/mempool.go | 5 +- block/mocks/lane.go | 35 ++++++++++---- block/mocks/lane_mempool.go | 5 +- lanes/base/abci_test.go | 10 ++-- lanes/free/lane.go | 2 +- lanes/mev/abci.go | 8 ++-- lanes/mev/factory.go | 4 +- lanes/mev/testutils/testutil.go | 4 +- lanes/terminator/lane.go | 7 ++- x/auction/types/mocks/account_keeper.go | 6 ++- x/auction/types/mocks/bank_keeper.go | 14 +++++- x/auction/types/mocks/distribution_keeper.go | 6 ++- .../types/mocks/rewards_address_provider.go | 6 ++- x/auction/types/mocks/staking_keeper.go | 6 ++- 21 files changed, 151 insertions(+), 49 deletions(-) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 4d1e1de1..1f27865b 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -1,9 +1,8 @@ package checktx import ( - "fmt" - "cosmossdk.io/log" + "fmt" cmtabci "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -98,6 +97,49 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { } } + var lane block.Lane + // find corresponding lane for this tx + for _, l := range m.mempl.Registry() { + if l.Match(tx) { + lane = l + break + } + } + + if lane == nil { + m.logger.Debug( + "failed match tx to lane", + "tx", tx, + ) + + return sdkerrors.ResponseCheckTxWithEvents( + fmt.Errorf("failed match tx to lane"), + 0, + 0, + nil, + false, + ), nil + } + + txBytes, err := lane.GetTxEncoder()(tx) + if err != nil { + m.logger.Debug( + "failed to encode tx", + "tx", tx, + ) + + return sdkerrors.ResponseCheckTxWithEvents( + fmt.Errorf("failed to encode tx"), + 0, + 0, + nil, + false, + ), nil + } + + txSize := len(txBytes) + _ = txSize + return res, checkTxError } } diff --git a/block/ante.go b/block/ante.go index 009bc387..bfe5839b 100644 --- a/block/ante.go +++ b/block/ante.go @@ -28,7 +28,7 @@ func (sd IgnoreDecorator) AnteHandle( ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler, ) (sdk.Context, error) { for _, lane := range sd.lanes { - if lane.Match(ctx, tx) { + if lane.Match(tx) { return next(ctx, tx, simulate) } } diff --git a/block/base/lane.go b/block/base/lane.go index 475b9adb..0b24e6d3 100644 --- a/block/base/lane.go +++ b/block/base/lane.go @@ -30,12 +30,12 @@ type BaseLane struct { //nolint // that are waiting to be processed. block.LaneMempool - // matchHandler is the function that determines whether or not a transaction + // matchHandler is the function that determines whether a transaction // should be processed by this lane. matchHandler MatchHandler // prepareLaneHandler is the function that is called when a new proposal is being - // requested and the lane needs to submit transactions it wants included in the block. + // requested and the lane needs to submit transactions it wants to be included in the block. prepareLaneHandler PrepareLaneHandler // processLaneHandler is the function that is called when a new proposal is being @@ -114,8 +114,8 @@ func (l *BaseLane) ValidateBasic() error { // function first determines if the transaction matches the lane and then checks // if the transaction is on the ignore list. If the transaction is on the ignore // list, it returns false. -func (l *BaseLane) Match(ctx sdk.Context, tx sdk.Tx) bool { - return l.matchHandler(ctx, tx) +func (l *BaseLane) Match(tx sdk.Tx) bool { + return l.matchHandler(tx) } // Name returns the name of the lane. @@ -150,6 +150,11 @@ func (l *BaseLane) SetMaxBlockSpace(maxBlockSpace math.LegacyDec) { l.cfg.MaxBlockSpace = maxBlockSpace } +// GetTxEncoder returns the lanes cfg TxEncoder. +func (l *BaseLane) GetTxEncoder() sdk.TxEncoder { + return l.cfg.TxEncoder +} + // WithOptions returns a new lane with the given options. func (l *BaseLane) WithOptions(options ...LaneOption) *BaseLane { for _, option := range options { diff --git a/block/base/match.go b/block/base/match.go index 3559f32e..fd6dafdc 100644 --- a/block/base/match.go +++ b/block/base/match.go @@ -9,7 +9,7 @@ import ( // DefaultMatchHandler returns a default implementation of the MatchHandler. It matches all // transactions. func DefaultMatchHandler() MatchHandler { - return func(ctx sdk.Context, tx sdk.Tx) bool { + return func(tx sdk.Tx) bool { return true } } @@ -17,7 +17,7 @@ func DefaultMatchHandler() MatchHandler { // VerifyNoMatches returns an error if any of the transactions match the lane. func (l *BaseLane) VerifyNoMatches(ctx sdk.Context, txs []sdk.Tx) error { for _, tx := range txs { - if l.Match(ctx, tx) { + if l.Match(tx) { return fmt.Errorf("transaction belongs to lane when it should not") } } @@ -30,13 +30,13 @@ func (l *BaseLane) VerifyNoMatches(ctx sdk.Context, txs []sdk.Tx) error { // In the context of building an application, you would want to use this to // ignore the match handlers of other lanes in the application. func NewMatchHandler(mh MatchHandler, ignoreMHs ...MatchHandler) MatchHandler { - return func(ctx sdk.Context, tx sdk.Tx) bool { + return func(tx sdk.Tx) bool { for _, ignoreMH := range ignoreMHs { - if ignoreMH(ctx, tx) { + if ignoreMH(tx) { return false } } - return mh(ctx, tx) + return mh(tx) } } diff --git a/block/base/proposals.go b/block/base/proposals.go index b1f5edab..fca2c00d 100644 --- a/block/base/proposals.go +++ b/block/base/proposals.go @@ -74,7 +74,7 @@ func (h *DefaultProposalHandler) PrepareLaneHandler() PrepareLaneHandler { } // Double check that the transaction belongs to this lane. - if !h.lane.Match(ctx, tx) { + if !h.lane.Match(tx) { h.lane.Logger().Info( "failed to select tx for lane; tx does not belong to lane", "tx_hash", txInfo.Hash, @@ -160,7 +160,7 @@ func (h *DefaultProposalHandler) ProcessLaneHandler() ProcessLaneHandler { } for index, tx := range partialProposal { - if !h.lane.Match(ctx, tx) { + if !h.lane.Match(tx) { // If the transaction does not belong to this lane, we return the remaining transactions // iff there are no matches in the remaining transactions after this index. if index+1 < len(partialProposal) { diff --git a/block/base/types.go b/block/base/types.go index d8785812..2aea634e 100644 --- a/block/base/types.go +++ b/block/base/types.go @@ -9,7 +9,7 @@ import ( type ( // MatchHandler is utilized to determine if a transaction should be included in the lane. This // function can be a stateless or stateful check on the transaction. - MatchHandler func(ctx sdk.Context, tx sdk.Tx) bool + MatchHandler func(tx sdk.Tx) bool // PrepareLaneHandler is responsible for preparing transactions to be included in the block from a // given lane. Given a lane, this function should return the transactions to include in the block, diff --git a/block/lane.go b/block/lane.go index dd7f4bf3..ea5a564f 100644 --- a/block/lane.go +++ b/block/lane.go @@ -68,12 +68,15 @@ type Lane interface { Name() string // Match determines if a transaction belongs to this lane. - Match(ctx sdk.Context, tx sdk.Tx) bool + Match(tx sdk.Tx) bool // GetTxInfo returns various information about the transaction that // belongs to the lane including its priority, signer's, sequence number, // size and more. GetTxInfo(ctx sdk.Context, tx sdk.Tx) (utils.TxWithInfo, error) + + // GetTxEncoder returns the tx encoder for the given lane. + GetTxEncoder() sdk.TxEncoder } // FindLane finds a Lanes from in an array of Lanes and returns it and its index if found. diff --git a/block/mempool.go b/block/mempool.go index c186cae3..4a43abb8 100644 --- a/block/mempool.go +++ b/block/mempool.go @@ -90,9 +90,8 @@ func (m *LanedMempool) Insert(ctx context.Context, tx sdk.Tx) (err error) { } }() - unwrappedCtx := sdk.UnwrapSDKContext(ctx) for _, lane := range m.registry { - if lane.Match(unwrappedCtx, tx) { + if lane.Match(tx) { return lane.Insert(ctx, tx) } } @@ -100,7 +99,7 @@ func (m *LanedMempool) Insert(ctx context.Context, tx sdk.Tx) (err error) { return nil } -// Insert returns a nil iterator. +// Select returns a nil iterator. // // TODO: // - Determine if it even makes sense to return an iterator. What does that even diff --git a/block/mocks/lane.go b/block/mocks/lane.go index 8d1f187f..2067d8d2 100644 --- a/block/mocks/lane.go +++ b/block/mocks/lane.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -107,6 +107,26 @@ func (_m *Lane) GetMaxBlockSpace() math.LegacyDec { return r0 } +// GetTxEncoder provides a mock function with given fields: +func (_m *Lane) GetTxEncoder() types.TxEncoder { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for GetTxEncoder") + } + + var r0 types.TxEncoder + if rf, ok := ret.Get(0).(func() types.TxEncoder); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(types.TxEncoder) + } + } + + return r0 +} + // GetTxInfo provides a mock function with given fields: ctx, tx func (_m *Lane) GetTxInfo(ctx types.Context, tx types.Tx) (utils.TxWithInfo, error) { ret := _m.Called(ctx, tx) @@ -153,17 +173,17 @@ func (_m *Lane) Insert(_a0 context.Context, _a1 types.Tx) error { return r0 } -// Match provides a mock function with given fields: ctx, tx -func (_m *Lane) Match(ctx types.Context, tx types.Tx) bool { - ret := _m.Called(ctx, tx) +// Match provides a mock function with given fields: tx +func (_m *Lane) Match(tx types.Tx) bool { + ret := _m.Called(tx) if len(ret) == 0 { panic("no return value specified for Match") } var r0 bool - if rf, ok := ret.Get(0).(func(types.Context, types.Tx) bool); ok { - r0 = rf(ctx, tx) + if rf, ok := ret.Get(0).(func(types.Tx) bool); ok { + r0 = rf(tx) } else { r0 = ret.Get(0).(bool) } @@ -313,8 +333,7 @@ func (_m *Lane) SetMaxBlockSpace(_a0 math.LegacyDec) { func NewLane(t interface { mock.TestingT Cleanup(func()) -}, -) *Lane { +}) *Lane { mock := &Lane{} mock.Mock.Test(t) diff --git a/block/mocks/lane_mempool.go b/block/mocks/lane_mempool.go index 63797e37..872355d8 100644 --- a/block/mocks/lane_mempool.go +++ b/block/mocks/lane_mempool.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -161,8 +161,7 @@ func (_m *LaneMempool) Select(_a0 context.Context, _a1 [][]byte) mempool.Iterato func NewLaneMempool(t interface { mock.TestingT Cleanup(func()) -}, -) *LaneMempool { +}) *LaneMempool { mock := &LaneMempool{} mock.Mock.Test(t) diff --git a/lanes/base/abci_test.go b/lanes/base/abci_test.go index 2964ff23..d19ac3e2 100644 --- a/lanes/base/abci_test.go +++ b/lanes/base/abci_test.go @@ -535,7 +535,7 @@ func (s *BaseTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(tx sdk.Tx) bool { return true } @@ -1043,7 +1043,7 @@ func (s *BaseTestSuite) TestProcessLane() { s.Require().NoError(err) // First lane matches this lane the other does not. - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(tx sdk.Tx) bool { return tx == tx1 } @@ -1301,7 +1301,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(tx sdk.Tx) bool { if tx == tx1 || tx == tx2 { return false } @@ -1387,7 +1387,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(tx sdk.Tx) bool { return true } @@ -1462,7 +1462,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(tx sdk.Tx) bool { if tx == tx1 || tx == tx3 { return false } diff --git a/lanes/free/lane.go b/lanes/free/lane.go index 99e031d9..0b87d6bc 100644 --- a/lanes/free/lane.go +++ b/lanes/free/lane.go @@ -39,7 +39,7 @@ func NewFreeLane[C comparable]( // default implementation matches transactions that are staking related. In particular, // any transaction that is a MsgDelegate, MsgBeginRedelegate, or MsgCancelUnbondingDelegation. func DefaultMatchHandler() base.MatchHandler { - return func(ctx sdk.Context, tx sdk.Tx) bool { + return func(tx sdk.Tx) bool { for _, msg := range tx.GetMsgs() { switch msg.(type) { case *types.MsgDelegate: diff --git a/lanes/mev/abci.go b/lanes/mev/abci.go index b79ce6c4..3910bf3f 100644 --- a/lanes/mev/abci.go +++ b/lanes/mev/abci.go @@ -41,7 +41,7 @@ func (h *ProposalHandler) PrepareLaneHandler() base.PrepareLaneHandler { for iterator := h.lane.Select(ctx, nil); iterator != nil; iterator = iterator.Next() { bidTx := iterator.Tx() - if !h.lane.Match(ctx, bidTx) { + if !h.lane.Match(bidTx) { h.lane.Logger().Info("failed to select auction bid tx for lane; tx does not match lane") txsToRemove = append(txsToRemove, bidTx) @@ -104,7 +104,7 @@ func (h *ProposalHandler) ProcessLaneHandler() base.ProcessLaneHandler { } bidTx := partialProposal[0] - if !h.lane.Match(ctx, bidTx) { + if !h.lane.Match(bidTx) { // If the transaction does not belong to this lane, we return the remaining transactions // iff there are no matches in the remaining transactions after this index. if len(partialProposal) > 1 { @@ -260,9 +260,9 @@ func (h *ProposalHandler) VerifyBidTx(ctx sdk.Context, bidTx sdk.Tx, bundle []sd return fmt.Errorf("invalid bid tx; failed to execute ante handler: %w", err) } - // verify all of the bundled transactions + // verify all bundled transactions for _, bundledTx := range bundle { - if h.lane.Match(ctx, bundledTx) { + if h.lane.Match(bundledTx) { return fmt.Errorf("invalid bid tx; bundled tx is another bid transaction") } diff --git a/lanes/mev/factory.go b/lanes/mev/factory.go index 637d331e..2ca9829e 100644 --- a/lanes/mev/factory.go +++ b/lanes/mev/factory.go @@ -12,7 +12,7 @@ import ( type ( // Factory defines the interface for processing auction transactions. It is - // a wrapper around all of the functionality that each application chain must implement + // a wrapper around all the functionality that each application chain must implement // in order for auction processing to work. Factory interface { // WrapBundleTransaction defines a function that wraps a bundle transaction into a sdk.Tx. Since @@ -111,7 +111,7 @@ func (config *DefaultAuctionFactory) GetTimeoutHeight(tx sdk.Tx) (uint64, error) // MatchHandler defines a default function that checks if a transaction matches the mev lane. func (config *DefaultAuctionFactory) MatchHandler() base.MatchHandler { - return func(ctx sdk.Context, tx sdk.Tx) bool { + return func(tx sdk.Tx) bool { bidInfo, err := config.GetAuctionBidInfo(tx) return bidInfo != nil && err == nil } diff --git a/lanes/mev/testutils/testutil.go b/lanes/mev/testutils/testutil.go index ffa4eb0b..df539c29 100644 --- a/lanes/mev/testutils/testutil.go +++ b/lanes/mev/testutils/testutil.go @@ -58,7 +58,9 @@ func (s *MEVLaneTestSuiteBase) InitLane( ) factory := mev.NewDefaultAuctionFactory(s.EncCfg.TxConfig.TxDecoder(), signer_extraction.NewDefaultAdapter()) - return mev.NewMEVLane(config, factory, factory.MatchHandler()) + return mev.NewMEVLane(config, factory, func(tx sdk.Tx) bool { + return true + }) } func (s *MEVLaneTestSuiteBase) SetUpAnteHandler(expectedExecution map[sdk.Tx]bool) sdk.AnteHandler { diff --git a/lanes/terminator/lane.go b/lanes/terminator/lane.go index 50cdb799..55add7be 100644 --- a/lanes/terminator/lane.go +++ b/lanes/terminator/lane.go @@ -83,7 +83,7 @@ func (t Terminator) GetTxInfo(_ sdk.Context, _ sdk.Tx) (utils.TxWithInfo, error) func (t Terminator) SetAnteHandler(sdk.AnteHandler) {} // Match is a no-op -func (t Terminator) Match(sdk.Context, sdk.Tx) bool { +func (t Terminator) Match(sdk.Tx) bool { return false } @@ -121,3 +121,8 @@ func (t Terminator) Compare(sdk.Context, sdk.Tx, sdk.Tx) (int, error) { func (t Terminator) Priority(sdk.Context, sdk.Tx) any { return 0 } + +// GetTxEncoder is a no-op. +func (t Terminator) GetTxEncoder() sdk.TxEncoder { + return nil +} diff --git a/x/auction/types/mocks/account_keeper.go b/x/auction/types/mocks/account_keeper.go index a98ff41b..6ed5e3e3 100644 --- a/x/auction/types/mocks/account_keeper.go +++ b/x/auction/types/mocks/account_keeper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.30.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -16,6 +16,10 @@ type AccountKeeper struct { func (_m *AccountKeeper) GetModuleAddress(moduleName string) types.AccAddress { ret := _m.Called(moduleName) + if len(ret) == 0 { + panic("no return value specified for GetModuleAddress") + } + var r0 types.AccAddress if rf, ok := ret.Get(0).(func(string) types.AccAddress); ok { r0 = rf(moduleName) diff --git a/x/auction/types/mocks/bank_keeper.go b/x/auction/types/mocks/bank_keeper.go index d5019b58..e05defbf 100644 --- a/x/auction/types/mocks/bank_keeper.go +++ b/x/auction/types/mocks/bank_keeper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.30.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -18,6 +18,10 @@ type BankKeeper struct { func (_m *BankKeeper) GetBalance(ctx context.Context, addr types.AccAddress, denom string) types.Coin { ret := _m.Called(ctx, addr, denom) + if len(ret) == 0 { + panic("no return value specified for GetBalance") + } + var r0 types.Coin if rf, ok := ret.Get(0).(func(context.Context, types.AccAddress, string) types.Coin); ok { r0 = rf(ctx, addr, denom) @@ -32,6 +36,10 @@ func (_m *BankKeeper) GetBalance(ctx context.Context, addr types.AccAddress, den func (_m *BankKeeper) SendCoins(ctx context.Context, fromAddr types.AccAddress, toAddr types.AccAddress, amt types.Coins) error { ret := _m.Called(ctx, fromAddr, toAddr, amt) + if len(ret) == 0 { + panic("no return value specified for SendCoins") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, types.AccAddress, types.AccAddress, types.Coins) error); ok { r0 = rf(ctx, fromAddr, toAddr, amt) @@ -46,6 +54,10 @@ func (_m *BankKeeper) SendCoins(ctx context.Context, fromAddr types.AccAddress, func (_m *BankKeeper) SendCoinsFromAccountToModule(ctx context.Context, senderAddr types.AccAddress, recipientModule string, amt types.Coins) error { ret := _m.Called(ctx, senderAddr, recipientModule, amt) + if len(ret) == 0 { + panic("no return value specified for SendCoinsFromAccountToModule") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, types.AccAddress, string, types.Coins) error); ok { r0 = rf(ctx, senderAddr, recipientModule, amt) diff --git a/x/auction/types/mocks/distribution_keeper.go b/x/auction/types/mocks/distribution_keeper.go index b64864ad..25c2fda3 100644 --- a/x/auction/types/mocks/distribution_keeper.go +++ b/x/auction/types/mocks/distribution_keeper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.30.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -18,6 +18,10 @@ type DistributionKeeper struct { func (_m *DistributionKeeper) GetPreviousProposerConsAddr(ctx context.Context) (types.ConsAddress, error) { ret := _m.Called(ctx) + if len(ret) == 0 { + panic("no return value specified for GetPreviousProposerConsAddr") + } + var r0 types.ConsAddress var r1 error if rf, ok := ret.Get(0).(func(context.Context) (types.ConsAddress, error)); ok { diff --git a/x/auction/types/mocks/rewards_address_provider.go b/x/auction/types/mocks/rewards_address_provider.go index 5c740bc1..fca8cb68 100644 --- a/x/auction/types/mocks/rewards_address_provider.go +++ b/x/auction/types/mocks/rewards_address_provider.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.30.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -16,6 +16,10 @@ type RewardsAddressProvider struct { func (_m *RewardsAddressProvider) GetRewardsAddress(context types.Context) (types.AccAddress, error) { ret := _m.Called(context) + if len(ret) == 0 { + panic("no return value specified for GetRewardsAddress") + } + var r0 types.AccAddress var r1 error if rf, ok := ret.Get(0).(func(types.Context) (types.AccAddress, error)); ok { diff --git a/x/auction/types/mocks/staking_keeper.go b/x/auction/types/mocks/staking_keeper.go index 81a2905a..2252ef83 100644 --- a/x/auction/types/mocks/staking_keeper.go +++ b/x/auction/types/mocks/staking_keeper.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.30.1. DO NOT EDIT. +// Code generated by mockery v2.43.2. DO NOT EDIT. package mocks @@ -20,6 +20,10 @@ type StakingKeeper struct { func (_m *StakingKeeper) GetValidatorByConsAddr(_a0 context.Context, _a1 types.ConsAddress) (stakingtypes.Validator, error) { ret := _m.Called(_a0, _a1) + if len(ret) == 0 { + panic("no return value specified for GetValidatorByConsAddr") + } + var r0 stakingtypes.Validator var r1 error if rf, ok := ret.Get(0).(func(context.Context, types.ConsAddress) (stakingtypes.Validator, error)); ok { From 1ccb70be1a451b054618e1bb3b950cf125675070 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 13:41:22 -0400 Subject: [PATCH 04/15] format --- abci/abci.go | 1 + abci/checktx/mempool_parity_check_tx.go | 3 ++- block/mocks/lane.go | 3 ++- block/mocks/lane_mempool.go | 3 ++- x/auction/types/mocks/account_keeper.go | 3 ++- x/auction/types/mocks/bank_keeper.go | 3 ++- x/auction/types/mocks/distribution_keeper.go | 3 ++- x/auction/types/mocks/rewards_address_provider.go | 3 ++- x/auction/types/mocks/staking_keeper.go | 3 ++- 9 files changed, 17 insertions(+), 8 deletions(-) diff --git a/abci/abci.go b/abci/abci.go index de4ba535..dbeafaa5 100644 --- a/abci/abci.go +++ b/abci/abci.go @@ -8,6 +8,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/skip-mev/block-sdk/v2/block" "github.com/skip-mev/block-sdk/v2/block/proposals" "github.com/skip-mev/block-sdk/v2/block/utils" diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 1f27865b..3f60e27b 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -1,9 +1,10 @@ package checktx import ( - "cosmossdk.io/log" "fmt" + "cosmossdk.io/log" + cmtabci "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" diff --git a/block/mocks/lane.go b/block/mocks/lane.go index 2067d8d2..e005b4b0 100644 --- a/block/mocks/lane.go +++ b/block/mocks/lane.go @@ -333,7 +333,8 @@ func (_m *Lane) SetMaxBlockSpace(_a0 math.LegacyDec) { func NewLane(t interface { mock.TestingT Cleanup(func()) -}) *Lane { +}, +) *Lane { mock := &Lane{} mock.Mock.Test(t) diff --git a/block/mocks/lane_mempool.go b/block/mocks/lane_mempool.go index 872355d8..c4100df6 100644 --- a/block/mocks/lane_mempool.go +++ b/block/mocks/lane_mempool.go @@ -161,7 +161,8 @@ func (_m *LaneMempool) Select(_a0 context.Context, _a1 [][]byte) mempool.Iterato func NewLaneMempool(t interface { mock.TestingT Cleanup(func()) -}) *LaneMempool { +}, +) *LaneMempool { mock := &LaneMempool{} mock.Mock.Test(t) diff --git a/x/auction/types/mocks/account_keeper.go b/x/auction/types/mocks/account_keeper.go index 6ed5e3e3..499f262e 100644 --- a/x/auction/types/mocks/account_keeper.go +++ b/x/auction/types/mocks/account_keeper.go @@ -37,7 +37,8 @@ func (_m *AccountKeeper) GetModuleAddress(moduleName string) types.AccAddress { func NewAccountKeeper(t interface { mock.TestingT Cleanup(func()) -}) *AccountKeeper { +}, +) *AccountKeeper { mock := &AccountKeeper{} mock.Mock.Test(t) diff --git a/x/auction/types/mocks/bank_keeper.go b/x/auction/types/mocks/bank_keeper.go index e05defbf..ad69700e 100644 --- a/x/auction/types/mocks/bank_keeper.go +++ b/x/auction/types/mocks/bank_keeper.go @@ -73,7 +73,8 @@ func (_m *BankKeeper) SendCoinsFromAccountToModule(ctx context.Context, senderAd func NewBankKeeper(t interface { mock.TestingT Cleanup(func()) -}) *BankKeeper { +}, +) *BankKeeper { mock := &BankKeeper{} mock.Mock.Test(t) diff --git a/x/auction/types/mocks/distribution_keeper.go b/x/auction/types/mocks/distribution_keeper.go index 25c2fda3..4f585884 100644 --- a/x/auction/types/mocks/distribution_keeper.go +++ b/x/auction/types/mocks/distribution_keeper.go @@ -49,7 +49,8 @@ func (_m *DistributionKeeper) GetPreviousProposerConsAddr(ctx context.Context) ( func NewDistributionKeeper(t interface { mock.TestingT Cleanup(func()) -}) *DistributionKeeper { +}, +) *DistributionKeeper { mock := &DistributionKeeper{} mock.Mock.Test(t) diff --git a/x/auction/types/mocks/rewards_address_provider.go b/x/auction/types/mocks/rewards_address_provider.go index fca8cb68..0006dfcb 100644 --- a/x/auction/types/mocks/rewards_address_provider.go +++ b/x/auction/types/mocks/rewards_address_provider.go @@ -47,7 +47,8 @@ func (_m *RewardsAddressProvider) GetRewardsAddress(context types.Context) (type func NewRewardsAddressProvider(t interface { mock.TestingT Cleanup(func()) -}) *RewardsAddressProvider { +}, +) *RewardsAddressProvider { mock := &RewardsAddressProvider{} mock.Mock.Test(t) diff --git a/x/auction/types/mocks/staking_keeper.go b/x/auction/types/mocks/staking_keeper.go index 2252ef83..ae223950 100644 --- a/x/auction/types/mocks/staking_keeper.go +++ b/x/auction/types/mocks/staking_keeper.go @@ -49,7 +49,8 @@ func (_m *StakingKeeper) GetValidatorByConsAddr(_a0 context.Context, _a1 types.C func NewStakingKeeper(t interface { mock.TestingT Cleanup(func()) -}) *StakingKeeper { +}, +) *StakingKeeper { mock := &StakingKeeper{} mock.Mock.Test(t) From 517d71e44b1a351f7c0bc618b23e0c46f89ad0a0 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 13:51:47 -0400 Subject: [PATCH 05/15] fix test --- abci/checktx/check_tx_test.go | 8 ++--- abci/checktx/mempool_parity_check_tx.go | 44 ++++++++++++++--------- lanes/mev/abci_test.go | 48 ++++++++++++------------- lanes/mev/testutils/testutil.go | 12 +++++-- 4 files changed, 65 insertions(+), 47 deletions(-) diff --git a/abci/checktx/check_tx_test.go b/abci/checktx/check_tx_test.go index 044133f0..98f0a3a2 100644 --- a/abci/checktx/check_tx_test.go +++ b/abci/checktx/check_tx_test.go @@ -59,7 +59,7 @@ func (s *CheckTxTestSuite) TestCheckTxMempoolParity() { bidTx: true, } - mevLane := s.InitLane(math.LegacyOneDec(), txs) + mevLane := s.InitLane(math.LegacyOneDec(), txs, true) mempool, err := block.NewLanedMempool(s.Ctx.Logger(), []block.Lane{mevLane}) s.Require().NoError(err) @@ -128,7 +128,7 @@ func (s *CheckTxTestSuite) TestRemovalOnRecheckTx() { ) s.Require().NoError(err) - mevLane := s.InitLane(math.LegacyOneDec(), nil) + mevLane := s.InitLane(math.LegacyOneDec(), nil, true) mempool, err := block.NewLanedMempool(s.Ctx.Logger(), []block.Lane{mevLane}) s.Require().NoError(err) @@ -186,7 +186,7 @@ func (s *CheckTxTestSuite) TestMempoolParityCheckTx() { func (s *CheckTxTestSuite) TestMEVCheckTxHandler() { txs := map[sdk.Tx]bool{} - mevLane := s.InitLane(math.LegacyOneDec(), txs) + mevLane := s.InitLane(math.LegacyOneDec(), txs, true) mempool, err := block.NewLanedMempool(s.Ctx.Logger(), []block.Lane{mevLane}) s.Require().NoError(err) @@ -287,7 +287,7 @@ func (s *CheckTxTestSuite) TestValidateBidTx() { invalidBidTx: true, } - mevLane := s.InitLane(math.LegacyOneDec(), txs) + mevLane := s.InitLane(math.LegacyOneDec(), txs, true) cacheDecoder, err := utils.NewDefaultCacheTxDecoder(s.EncCfg.TxConfig.TxDecoder()) s.Require().NoError(err) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 3f60e27b..80748046 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -98,23 +98,11 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { } } - var lane block.Lane - // find corresponding lane for this tx - for _, l := range m.mempl.Registry() { - if l.Match(tx) { - lane = l - break - } - } - - if lane == nil { - m.logger.Debug( - "failed match tx to lane", - "tx", tx, - ) - + lane, err := m.matchLane(tx) + if err != nil { + m.logger.Debug("failed to match lane", "lane", lane, "err", err) return sdkerrors.ResponseCheckTxWithEvents( - fmt.Errorf("failed match tx to lane"), + err, 0, 0, nil, @@ -139,12 +127,36 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { } txSize := len(txBytes) + + // if size exceeds lane limit, error _ = txSize return res, checkTxError } } +func (m MempoolParityCheckTx) matchLane(tx sdk.Tx) (block.Lane, error) { + var lane block.Lane + // find corresponding lane for this tx + for _, l := range m.mempl.Registry() { + if l.Match(tx) { + lane = l + break + } + } + + if lane == nil { + m.logger.Debug( + "failed match tx to lane", + "tx", tx, + ) + + return nil, fmt.Errorf("failed match tx to lane") + } + + return lane, nil +} + func isInvalidCheckTxExecution(resp *cmtabci.ResponseCheckTx, checkTxErr error) bool { return resp == nil || resp.Code != 0 || checkTxErr != nil } diff --git a/lanes/mev/abci_test.go b/lanes/mev/abci_test.go index dfabb29a..a9b4a649 100644 --- a/lanes/mev/abci_test.go +++ b/lanes/mev/abci_test.go @@ -16,7 +16,7 @@ func (s *MEVTestSuite) TestPrepareLane() { s.Ctx = s.Ctx.WithExecMode(sdk.ExecModePrepareProposal) s.Run("can prepare a lane with no txs in mempool", func() { - lane := s.InitLane(math.LegacyOneDec(), nil) + lane := s.InitLane(math.LegacyOneDec(), nil, false) proposal := proposals.NewProposal(log.NewNopLogger(), 200, 100) proposal, err := lane.PrepareLane(s.Ctx, proposal, block.NoOpPrepareLanesHandler()) @@ -40,7 +40,7 @@ func (s *MEVTestSuite) TestPrepareLane() { s.Require().NoError(err) size := s.getTxSize(bidTx) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}, false) s.Require().NoError(lane.Insert(s.Ctx, bidTx)) proposal := proposals.NewProposal(log.NewNopLogger(), 200, 100) @@ -81,7 +81,7 @@ func (s *MEVTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx1: true, bidTx2: false}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx1: true, bidTx2: false}, false) s.Require().NoError(lane.Insert(s.Ctx, bidTx1)) s.Require().NoError(lane.Insert(s.Ctx, bidTx2)) @@ -123,7 +123,7 @@ func (s *MEVTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx1: false, bidTx2: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx1: false, bidTx2: true}, false) s.Require().NoError(lane.Insert(s.Ctx, bidTx1)) s.Require().NoError(lane.Insert(s.Ctx, bidTx2)) @@ -154,7 +154,7 @@ func (s *MEVTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) s.Require().NoError(lane.Insert(s.Ctx, bidTx)) proposal := proposals.NewProposal(log.NewNopLogger(), 20000, 100000) @@ -185,7 +185,7 @@ func (s *MEVTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) s.Require().NoError(lane.Insert(s.Ctx, bidTx)) proposal := proposals.NewProposal(log.NewNopLogger(), s.getTxSize(bidTx), 100000) @@ -211,7 +211,7 @@ func (s *MEVTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}, false) s.Require().NoError(lane.Insert(s.Ctx, bidTx)) proposal := proposals.NewProposal(log.NewNopLogger(), s.getTxSize(bidTx), 99) @@ -230,7 +230,7 @@ func (s *MEVTestSuite) TestProcessLane() { s.Ctx = s.Ctx.WithExecMode(sdk.ExecModeProcessProposal) s.Run("can process an empty proposal", func() { - lane := s.InitLane(math.LegacyOneDec(), nil) + lane := s.InitLane(math.LegacyOneDec(), nil, false) proposal := proposals.NewProposal(log.NewNopLogger(), 200, 100) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, nil) @@ -247,7 +247,7 @@ func (s *MEVTestSuite) TestProcessLane() { tx, err := testutils.CreateRandomTx(s.EncCfg.TxConfig, s.Accounts[0], 0, 1, 0, 100) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), nil) + lane := s.InitLane(math.LegacyOneDec(), nil, false) proposal := proposals.NewProposal(log.NewNopLogger(), 200, 100) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, []sdk.Tx{tx}) @@ -274,7 +274,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: false}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: false}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().Error(err) @@ -300,7 +300,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[0], bundle[1]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: false}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: false}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().Error(err) @@ -326,7 +326,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[1], bundle[0]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().Error(err) @@ -352,7 +352,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[0]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().Error(err) @@ -378,7 +378,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[0], bundle[1]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().NoError(err) @@ -404,7 +404,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().NoError(err) @@ -430,7 +430,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[0], bundle[1]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().NoError(err) @@ -456,7 +456,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[0], bundle[1]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().NoError(err) @@ -485,7 +485,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{bidTx, bundle[0], bundle[1], otherTx} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().NoError(err) @@ -520,7 +520,7 @@ func (s *MEVTestSuite) TestProcessLane() { partialProposal := []sdk.Tx{otherTx, bidTx, bundle[0], bundle[1]} - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true}, false) txsFromLane, remainingTxs, err := mev.NewProposalHandler(lane.BaseLane, lane.Factory).ProcessLaneHandler()(s.Ctx, partialProposal) s.Require().Error(err) @@ -534,7 +534,7 @@ func (s *MEVTestSuite) TestProcessLane() { } func (s *MEVTestSuite) TestVerifyBidBasic() { - lane := s.InitLane(math.LegacyOneDec(), nil) + lane := s.InitLane(math.LegacyOneDec(), nil, false) proposal := proposals.NewProposal(log.NewNopLogger(), 200, 100) limits := proposal.GetLaneLimits(lane.GetMaxBlockSpace()) @@ -647,7 +647,7 @@ func (s *MEVTestSuite) TestVerifyBidTx() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true}, false) handler := mev.NewProposalHandler(lane.BaseLane, lane.Factory) s.Require().NoError(handler.VerifyBidTx(s.Ctx, bidTx, bundle)) @@ -665,7 +665,7 @@ func (s *MEVTestSuite) TestVerifyBidTx() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: false}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: false}, false) handler := mev.NewProposalHandler(lane.BaseLane, lane.Factory) s.Require().Error(handler.VerifyBidTx(s.Ctx, bidTx, bundle)) @@ -683,7 +683,7 @@ func (s *MEVTestSuite) TestVerifyBidTx() { ) s.Require().NoError(err) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: false}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: false}, false) handler := mev.NewProposalHandler(lane.BaseLane, lane.Factory) s.Require().Error(handler.VerifyBidTx(s.Ctx, bidTx, bundle)) @@ -713,7 +713,7 @@ func (s *MEVTestSuite) TestVerifyBidTx() { s.Require().NoError(err) bundle = append(bundle, otherBidTx) - lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true, otherBidTx: true}) + lane := s.InitLane(math.LegacyOneDec(), map[sdk.Tx]bool{bidTx: true, bundle[0]: true, bundle[1]: true, otherBidTx: true}, false) handler := mev.NewProposalHandler(lane.BaseLane, lane.Factory) s.Require().Error(handler.VerifyBidTx(s.Ctx, bidTx, bundle)) diff --git a/lanes/mev/testutils/testutil.go b/lanes/mev/testutils/testutil.go index df539c29..73818cfd 100644 --- a/lanes/mev/testutils/testutil.go +++ b/lanes/mev/testutils/testutil.go @@ -47,6 +47,7 @@ func (s *MEVLaneTestSuiteBase) SetupTest() { func (s *MEVLaneTestSuiteBase) InitLane( maxBlockSpace math.LegacyDec, expectedExecution map[sdk.Tx]bool, + matchAll bool, ) *mev.MEVLane { config := base.NewLaneConfig( log.NewNopLogger(), @@ -58,9 +59,14 @@ func (s *MEVLaneTestSuiteBase) InitLane( ) factory := mev.NewDefaultAuctionFactory(s.EncCfg.TxConfig.TxDecoder(), signer_extraction.NewDefaultAdapter()) - return mev.NewMEVLane(config, factory, func(tx sdk.Tx) bool { - return true - }) + matchHandler := factory.MatchHandler() + if matchAll { + matchHandler = func(tx sdk.Tx) bool { + return true + } + } + + return mev.NewMEVLane(config, factory, matchHandler) } func (s *MEVLaneTestSuiteBase) SetUpAnteHandler(expectedExecution map[sdk.Tx]bool) sdk.AnteHandler { From 357bc8908cead00f21f02f5d9bc867ae06218e98 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 14:20:57 -0400 Subject: [PATCH 06/15] use lane --- abci/checktx/check_tx_test.go | 13 ++++++ abci/checktx/mempool_parity_check_tx.go | 60 +++++++++++++++++++++---- block/proposals/utils.go | 4 +- tests/app/app.go | 1 + 4 files changed, 67 insertions(+), 11 deletions(-) diff --git a/abci/checktx/check_tx_test.go b/abci/checktx/check_tx_test.go index 98f0a3a2..2d8da779 100644 --- a/abci/checktx/check_tx_test.go +++ b/abci/checktx/check_tx_test.go @@ -69,6 +69,7 @@ func (s *CheckTxTestSuite) TestCheckTxMempoolParity() { ba := &baseApp{ s.Ctx, } + mevLaneHandler := checktx.NewMEVCheckTxHandler( ba, cacheDecoder.TxDecoder(), @@ -82,6 +83,7 @@ func (s *CheckTxTestSuite) TestCheckTxMempoolParity() { mempool, cacheDecoder.TxDecoder(), mevLaneHandler, + ba, ).CheckTx() // test that a bid can be successfully inserted to mev-lane on CheckTx @@ -135,6 +137,10 @@ func (s *CheckTxTestSuite) TestRemovalOnRecheckTx() { cacheDecoder, err := utils.NewDefaultCacheTxDecoder(s.EncCfg.TxConfig.TxDecoder()) s.Require().NoError(err) + ba := &baseApp{ + s.Ctx, + } + handler := checktx.NewMempoolParityCheckTx( s.Ctx.Logger(), mempool, @@ -143,6 +149,7 @@ func (s *CheckTxTestSuite) TestRemovalOnRecheckTx() { // always fail return &cometabci.ResponseCheckTx{Code: 1}, nil }, + ba, ).CheckTx() s.Run("tx is removed on check-tx failure when re-check", func() { @@ -169,11 +176,16 @@ func (s *CheckTxTestSuite) TestMempoolParityCheckTx() { cacheDecoder, err := utils.NewDefaultCacheTxDecoder(s.EncCfg.TxConfig.TxDecoder()) s.Require().NoError(err) + ba := &baseApp{ + s.Ctx, + } + handler := checktx.NewMempoolParityCheckTx( s.Ctx.Logger(), nil, cacheDecoder.TxDecoder(), nil, + ba, ) res, err := handler.CheckTx()(&cometabci.RequestCheckTx{Tx: []byte("invalid-tx")}) @@ -222,6 +234,7 @@ func (s *CheckTxTestSuite) TestMEVCheckTxHandler() { mempool, cacheDecoder.TxDecoder(), mevLaneHandler, + ba, ).CheckTx() // test that a normal tx can be successfully inserted to the mempool diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 80748046..515007d3 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -2,6 +2,7 @@ package checktx import ( "fmt" + cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" "cosmossdk.io/log" @@ -26,6 +27,10 @@ type MempoolParityCheckTx struct { // checkTxHandler to wrap checkTxHandler CheckTx + + // baseApp is utilized to retrieve the latest committed state and to call + // baseapp's CheckTx method. + baseApp BaseApp } // NewMempoolParityCheckTx returns a new MempoolParityCheckTx handler. @@ -34,12 +39,14 @@ func NewMempoolParityCheckTx( mempl block.Mempool, txDecoder sdk.TxDecoder, checkTxHandler CheckTx, + baseApp BaseApp, ) MempoolParityCheckTx { return MempoolParityCheckTx{ logger: logger, mempl: mempl, txDecoder: txDecoder, checkTxHandler: checkTxHandler, + baseApp: baseApp, } } @@ -110,15 +117,22 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { ), nil } - txBytes, err := lane.GetTxEncoder()(tx) - if err != nil { + sdkCtx := m.GetContextForTx(req) + consensusParams := sdkCtx.ConsensusParams() + + laneSize := lane.GetMaxBlockSpace().MulInt64(consensusParams.GetBlock().GetMaxBytes()).TruncateInt64() + + txSize := int64(len(req.Tx)) + if txSize > laneSize { m.logger.Debug( - "failed to encode tx", + "tx size exceeds max block bytes", "tx", tx, + "tx size", txSize, + "max bytes", laneSize, ) return sdkerrors.ResponseCheckTxWithEvents( - fmt.Errorf("failed to encode tx"), + fmt.Errorf("tx size exceeds max block bytes"), 0, 0, nil, @@ -126,15 +140,11 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { ), nil } - txSize := len(txBytes) - - // if size exceeds lane limit, error - _ = txSize - return res, checkTxError } } +// matchLane returns a Lane if the given tx matches the Lane. func (m MempoolParityCheckTx) matchLane(tx sdk.Tx) (block.Lane, error) { var lane block.Lane // find corresponding lane for this tx @@ -160,3 +170,35 @@ func (m MempoolParityCheckTx) matchLane(tx sdk.Tx) (block.Lane, error) { func isInvalidCheckTxExecution(resp *cmtabci.ResponseCheckTx, checkTxErr error) bool { return resp == nil || resp.Code != 0 || checkTxErr != nil } + +// GetContextForTx is returns the latest committed state and sets the context given +// the checkTx request. +func (m MempoolParityCheckTx) GetContextForTx(req *cmtabci.RequestCheckTx) sdk.Context { + // Retrieve the commit multi-store which is used to retrieve the latest committed state. + ms := m.baseApp.CommitMultiStore().CacheMultiStore() + + // Create a new context based off of the latest committed state. + header := cmtproto.Header{ + Height: m.baseApp.LastBlockHeight(), + ChainID: m.baseApp.ChainID(), + } + ctx, _ := sdk.NewContext(ms, header, true, m.baseApp.Logger()).CacheContext() + + // Set the context to the correct checking mode. + switch req.Type { + case cmtabci.CheckTxType_New: + ctx = ctx.WithIsCheckTx(true) + case cmtabci.CheckTxType_Recheck: + ctx = ctx.WithIsReCheckTx(true) + default: + panic("unknown check tx type") + } + + // Set the remaining important context values. + ctx = ctx. + WithTxBytes(req.Tx). + WithEventManager(sdk.NewEventManager()). + WithConsensusParams(m.baseApp.GetConsensusParams(ctx)) + + return ctx +} diff --git a/block/proposals/utils.go b/block/proposals/utils.go index 13316455..e0028276 100644 --- a/block/proposals/utils.go +++ b/block/proposals/utils.go @@ -11,7 +11,7 @@ const ( type ( // LaneLimits defines the constraints for a partial proposal. Each lane must only propose - // transactions that satisfy these constraints. Otherwise the partial proposal update will + // transactions that satisfy these constraints. Otherwise, the partial proposal update will // be rejected. LaneLimits struct { // MaxTxBytes is the maximum number of bytes allowed in the partial proposal. @@ -26,7 +26,7 @@ func GetBlockLimits(ctx sdk.Context) (int64, uint64) { blockParams := ctx.ConsensusParams().Block // If the max gas is set to 0, then the max gas limit for the block can be infinite. - // Otherwise we use the max gas limit casted as a uint64 which is how gas limits are + // Otherwise, we use the max gas limit casted as a uint64 which is how gas limits are // extracted from sdk.Tx's. var maxGasLimit uint64 if maxGas := blockParams.MaxGas; maxGas > 0 { diff --git a/tests/app/app.go b/tests/app/app.go index 9c9b0bd3..ed87ccbc 100644 --- a/tests/app/app.go +++ b/tests/app/app.go @@ -299,6 +299,7 @@ func New( mempool, cacheDecoder.TxDecoder(), mevCheckTx.CheckTx(), + app.BaseApp, ) app.SetCheckTx(checkTxHandler.CheckTx()) From 57aaa3b7cad42fb2fd96c62545f4ab2988aa2a25 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 14:22:06 -0400 Subject: [PATCH 07/15] ok --- abci/checktx/mempool_parity_check_tx.go | 1 + block/base/lane.go | 5 ----- block/lane.go | 3 --- block/mocks/lane.go | 20 -------------------- lanes/terminator/lane.go | 5 ----- 5 files changed, 1 insertion(+), 33 deletions(-) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 515007d3..b7d6d417 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -2,6 +2,7 @@ package checktx import ( "fmt" + cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" "cosmossdk.io/log" diff --git a/block/base/lane.go b/block/base/lane.go index 0b24e6d3..8990dcdf 100644 --- a/block/base/lane.go +++ b/block/base/lane.go @@ -150,11 +150,6 @@ func (l *BaseLane) SetMaxBlockSpace(maxBlockSpace math.LegacyDec) { l.cfg.MaxBlockSpace = maxBlockSpace } -// GetTxEncoder returns the lanes cfg TxEncoder. -func (l *BaseLane) GetTxEncoder() sdk.TxEncoder { - return l.cfg.TxEncoder -} - // WithOptions returns a new lane with the given options. func (l *BaseLane) WithOptions(options ...LaneOption) *BaseLane { for _, option := range options { diff --git a/block/lane.go b/block/lane.go index ea5a564f..1ce19932 100644 --- a/block/lane.go +++ b/block/lane.go @@ -74,9 +74,6 @@ type Lane interface { // belongs to the lane including its priority, signer's, sequence number, // size and more. GetTxInfo(ctx sdk.Context, tx sdk.Tx) (utils.TxWithInfo, error) - - // GetTxEncoder returns the tx encoder for the given lane. - GetTxEncoder() sdk.TxEncoder } // FindLane finds a Lanes from in an array of Lanes and returns it and its index if found. diff --git a/block/mocks/lane.go b/block/mocks/lane.go index e005b4b0..523b27ef 100644 --- a/block/mocks/lane.go +++ b/block/mocks/lane.go @@ -107,26 +107,6 @@ func (_m *Lane) GetMaxBlockSpace() math.LegacyDec { return r0 } -// GetTxEncoder provides a mock function with given fields: -func (_m *Lane) GetTxEncoder() types.TxEncoder { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetTxEncoder") - } - - var r0 types.TxEncoder - if rf, ok := ret.Get(0).(func() types.TxEncoder); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(types.TxEncoder) - } - } - - return r0 -} - // GetTxInfo provides a mock function with given fields: ctx, tx func (_m *Lane) GetTxInfo(ctx types.Context, tx types.Tx) (utils.TxWithInfo, error) { ret := _m.Called(ctx, tx) diff --git a/lanes/terminator/lane.go b/lanes/terminator/lane.go index 55add7be..a6a5c0ac 100644 --- a/lanes/terminator/lane.go +++ b/lanes/terminator/lane.go @@ -121,8 +121,3 @@ func (t Terminator) Compare(sdk.Context, sdk.Tx, sdk.Tx) (int, error) { func (t Terminator) Priority(sdk.Context, sdk.Tx) any { return 0 } - -// GetTxEncoder is a no-op. -func (t Terminator) GetTxEncoder() sdk.TxEncoder { - return nil -} From 4bf0a4accbc4448ae04871f387899f75cf8ecaa6 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 14:57:15 -0400 Subject: [PATCH 08/15] finalize --- abci/checktx/check_tx_test.go | 56 +++++++++++++++++++++++++++++++++-- testutils/utils.go | 51 ++++++++++++++++++++++++++++++- 2 files changed, 104 insertions(+), 3 deletions(-) diff --git a/abci/checktx/check_tx_test.go b/abci/checktx/check_tx_test.go index 2d8da779..dd34b26c 100644 --- a/abci/checktx/check_tx_test.go +++ b/abci/checktx/check_tx_test.go @@ -43,6 +43,18 @@ func (s *CheckTxTestSuite) TestCheckTxMempoolParity() { ) s.Require().NoError(err) + hugeBidTx, _, err := testutils.CreateNAuctionTx( + s.EncCfg.TxConfig, + s.Accounts[0], + sdk.NewCoin(s.GasTokenDenom, math.NewInt(100)), + 0, + 0, + []testutils.Account{s.Accounts[0]}, + 100, + 100000, + ) + s.Require().NoError(err) + // create a tx that should not be inserted in the mev-lane bidTx2, _, err := testutils.CreateAuctionTx( s.EncCfg.TxConfig, @@ -56,7 +68,8 @@ func (s *CheckTxTestSuite) TestCheckTxMempoolParity() { s.Require().NoError(err) txs := map[sdk.Tx]bool{ - bidTx: true, + bidTx: true, + hugeBidTx: true, } mevLane := s.InitLane(math.LegacyOneDec(), txs, true) @@ -101,6 +114,36 @@ func (s *CheckTxTestSuite) TestCheckTxMempoolParity() { s.Require().True(mevLane.Contains(bidTx)) }) + // test that a bid will fail to be inserted as it is too large + s.Run("test bid insertion failure on CheckTx - too large", func() { + txBz, err := s.EncCfg.TxConfig.TxEncoder()(hugeBidTx) + s.Require().NoError(err) + + // check tx + res, err := handler(&cometabci.RequestCheckTx{Tx: txBz, Type: cometabci.CheckTxType_New}) + s.Require().NoError(err) + + s.Require().Equal(uint32(1), res.Code) + + // check that the mev-lane does not contain the bid + s.Require().False(mevLane.Contains(bidTx)) + }) + + // test that a bid can be successfully inserted to mev-lane on CheckTx + s.Run("test bid insertion on CheckTx", func() { + txBz, err := s.EncCfg.TxConfig.TxEncoder()(bidTx) + s.Require().NoError(err) + + // check tx + res, err := handler(&cometabci.RequestCheckTx{Tx: txBz, Type: cometabci.CheckTxType_New}) + s.Require().NoError(err) + + s.Require().Equal(uint32(0), res.Code) + + // check that the mev-lane contains the bid + s.Require().True(mevLane.Contains(bidTx)) + }) + // test that a bid-tx (not in mev-lane) can be removed from the mempool on ReCheck s.Run("test bid removal on ReCheckTx", func() { // assert that the mev-lane does not contain the bidTx2 @@ -376,7 +419,16 @@ func (ba *baseApp) LastBlockHeight() int64 { // GetConsensusParams is utilized to retrieve the consensus params. func (baseApp) GetConsensusParams(ctx sdk.Context) cmtproto.ConsensusParams { - return ctx.ConsensusParams() + return cmtproto.ConsensusParams{ + Block: &cmtproto.BlockParams{ + MaxBytes: 10000, + MaxGas: 10000, + }, + Evidence: nil, + Validator: nil, + Version: nil, + Abci: nil, + } } // ChainID is utilized to retrieve the chain ID. diff --git a/testutils/utils.go b/testutils/utils.go index 847794d6..d8715905 100644 --- a/testutils/utils.go +++ b/testutils/utils.go @@ -263,7 +263,7 @@ func CreateAuctionTx(txCfg client.TxConfig, bidder Account, bid sdk.Coin, nonce, Transactions: make([][]byte, len(signers)), } - txs := []sdk.Tx{} + var txs []sdk.Tx for i := 0; i < len(signers); i++ { randomMsg := CreateRandomMsgs(signers[i].Address, 1) @@ -305,6 +305,55 @@ func CreateAuctionTx(txCfg client.TxConfig, bidder Account, bid sdk.Coin, nonce, return txBuilder.GetTx(), txs, nil } +func CreateNAuctionTx(txCfg client.TxConfig, bidder Account, bid sdk.Coin, nonce, timeout uint64, signers []Account, gasLimit uint64, numTx int) (sdk.Tx, []sdk.Tx, error) { + bidMsg := &auctiontypes.MsgAuctionBid{ + Bidder: bidder.Address.String(), + Bid: bid, + Transactions: make([][]byte, len(signers)), + } + + var txs []sdk.Tx + + for i := 0; i < len(signers); i++ { + randomMsg := CreateRandomMsgs(signers[i].Address, numTx) + randomTx, err := CreateTx(txCfg, signers[i], 0, timeout, randomMsg) + if err != nil { + return nil, nil, err + } + + bz, err := txCfg.TxEncoder()(randomTx) + if err != nil { + return nil, nil, err + } + + bidMsg.Transactions[i] = bz + txs = append(txs, randomTx) + } + + txBuilder := txCfg.NewTxBuilder() + if err := txBuilder.SetMsgs(bidMsg); err != nil { + return nil, nil, err + } + + sigV2 := signing.SignatureV2{ + PubKey: bidder.PrivKey.PubKey(), + Data: &signing.SingleSignatureData{ + SignMode: signing.SignMode_SIGN_MODE_DIRECT, + Signature: nil, + }, + Sequence: nonce, + } + if err := txBuilder.SetSignatures(sigV2); err != nil { + return nil, nil, err + } + + txBuilder.SetTimeoutHeight(timeout) + + txBuilder.SetGasLimit(gasLimit) + + return txBuilder.GetTx(), txs, nil +} + func CreateAuctionTxWithSigners(txCfg client.TxConfig, bidder Account, bid sdk.Coin, nonce, timeout uint64, signers []Account) (authsigning.Tx, error) { bidMsg := &auctiontypes.MsgAuctionBid{ Bidder: bidder.Address.String(), From e78e34ede85874fe64f78ae60776bdf65143d109 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 15:20:26 -0400 Subject: [PATCH 09/15] fix everything --- abci/checktx/mempool_parity_check_tx.go | 9 ++++----- block/ante.go | 2 +- block/base/lane.go | 4 ++-- block/base/match.go | 10 +++++----- block/base/proposals.go | 4 ++-- block/base/types.go | 2 +- block/lane.go | 2 +- block/mempool.go | 3 ++- lanes/free/lane.go | 2 +- lanes/mev/abci.go | 6 +++--- lanes/mev/factory.go | 2 +- lanes/terminator/lane.go | 2 +- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index b7d6d417..10d84c8a 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -106,7 +106,8 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { } } - lane, err := m.matchLane(tx) + sdkCtx := m.GetContextForTx(req) + lane, err := m.matchLane(sdkCtx, tx) if err != nil { m.logger.Debug("failed to match lane", "lane", lane, "err", err) return sdkerrors.ResponseCheckTxWithEvents( @@ -118,9 +119,7 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { ), nil } - sdkCtx := m.GetContextForTx(req) consensusParams := sdkCtx.ConsensusParams() - laneSize := lane.GetMaxBlockSpace().MulInt64(consensusParams.GetBlock().GetMaxBytes()).TruncateInt64() txSize := int64(len(req.Tx)) @@ -146,11 +145,11 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { } // matchLane returns a Lane if the given tx matches the Lane. -func (m MempoolParityCheckTx) matchLane(tx sdk.Tx) (block.Lane, error) { +func (m MempoolParityCheckTx) matchLane(ctx sdk.Context, tx sdk.Tx) (block.Lane, error) { var lane block.Lane // find corresponding lane for this tx for _, l := range m.mempl.Registry() { - if l.Match(tx) { + if l.Match(ctx, tx) { lane = l break } diff --git a/block/ante.go b/block/ante.go index bfe5839b..009bc387 100644 --- a/block/ante.go +++ b/block/ante.go @@ -28,7 +28,7 @@ func (sd IgnoreDecorator) AnteHandle( ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler, ) (sdk.Context, error) { for _, lane := range sd.lanes { - if lane.Match(tx) { + if lane.Match(ctx, tx) { return next(ctx, tx, simulate) } } diff --git a/block/base/lane.go b/block/base/lane.go index 8990dcdf..78d69d0f 100644 --- a/block/base/lane.go +++ b/block/base/lane.go @@ -114,8 +114,8 @@ func (l *BaseLane) ValidateBasic() error { // function first determines if the transaction matches the lane and then checks // if the transaction is on the ignore list. If the transaction is on the ignore // list, it returns false. -func (l *BaseLane) Match(tx sdk.Tx) bool { - return l.matchHandler(tx) +func (l *BaseLane) Match(ctx sdk.Context, tx sdk.Tx) bool { + return l.matchHandler(ctx, tx) } // Name returns the name of the lane. diff --git a/block/base/match.go b/block/base/match.go index fd6dafdc..9e8d6ec4 100644 --- a/block/base/match.go +++ b/block/base/match.go @@ -9,7 +9,7 @@ import ( // DefaultMatchHandler returns a default implementation of the MatchHandler. It matches all // transactions. func DefaultMatchHandler() MatchHandler { - return func(tx sdk.Tx) bool { + return func(_ sdk.Context, _ sdk.Tx) bool { return true } } @@ -17,7 +17,7 @@ func DefaultMatchHandler() MatchHandler { // VerifyNoMatches returns an error if any of the transactions match the lane. func (l *BaseLane) VerifyNoMatches(ctx sdk.Context, txs []sdk.Tx) error { for _, tx := range txs { - if l.Match(tx) { + if l.Match(ctx, tx) { return fmt.Errorf("transaction belongs to lane when it should not") } } @@ -30,13 +30,13 @@ func (l *BaseLane) VerifyNoMatches(ctx sdk.Context, txs []sdk.Tx) error { // In the context of building an application, you would want to use this to // ignore the match handlers of other lanes in the application. func NewMatchHandler(mh MatchHandler, ignoreMHs ...MatchHandler) MatchHandler { - return func(tx sdk.Tx) bool { + return func(ctx sdk.Context, tx sdk.Tx) bool { for _, ignoreMH := range ignoreMHs { - if ignoreMH(tx) { + if ignoreMH(ctx, tx) { return false } } - return mh(tx) + return mh(ctx, tx) } } diff --git a/block/base/proposals.go b/block/base/proposals.go index fca2c00d..b1f5edab 100644 --- a/block/base/proposals.go +++ b/block/base/proposals.go @@ -74,7 +74,7 @@ func (h *DefaultProposalHandler) PrepareLaneHandler() PrepareLaneHandler { } // Double check that the transaction belongs to this lane. - if !h.lane.Match(tx) { + if !h.lane.Match(ctx, tx) { h.lane.Logger().Info( "failed to select tx for lane; tx does not belong to lane", "tx_hash", txInfo.Hash, @@ -160,7 +160,7 @@ func (h *DefaultProposalHandler) ProcessLaneHandler() ProcessLaneHandler { } for index, tx := range partialProposal { - if !h.lane.Match(tx) { + if !h.lane.Match(ctx, tx) { // If the transaction does not belong to this lane, we return the remaining transactions // iff there are no matches in the remaining transactions after this index. if index+1 < len(partialProposal) { diff --git a/block/base/types.go b/block/base/types.go index 2aea634e..d8785812 100644 --- a/block/base/types.go +++ b/block/base/types.go @@ -9,7 +9,7 @@ import ( type ( // MatchHandler is utilized to determine if a transaction should be included in the lane. This // function can be a stateless or stateful check on the transaction. - MatchHandler func(tx sdk.Tx) bool + MatchHandler func(ctx sdk.Context, tx sdk.Tx) bool // PrepareLaneHandler is responsible for preparing transactions to be included in the block from a // given lane. Given a lane, this function should return the transactions to include in the block, diff --git a/block/lane.go b/block/lane.go index 1ce19932..dd7f4bf3 100644 --- a/block/lane.go +++ b/block/lane.go @@ -68,7 +68,7 @@ type Lane interface { Name() string // Match determines if a transaction belongs to this lane. - Match(tx sdk.Tx) bool + Match(ctx sdk.Context, tx sdk.Tx) bool // GetTxInfo returns various information about the transaction that // belongs to the lane including its priority, signer's, sequence number, diff --git a/block/mempool.go b/block/mempool.go index 4a43abb8..21649ab8 100644 --- a/block/mempool.go +++ b/block/mempool.go @@ -90,8 +90,9 @@ func (m *LanedMempool) Insert(ctx context.Context, tx sdk.Tx) (err error) { } }() + sdkCtx := sdk.UnwrapSDKContext(ctx) for _, lane := range m.registry { - if lane.Match(tx) { + if lane.Match(sdkCtx, tx) { return lane.Insert(ctx, tx) } } diff --git a/lanes/free/lane.go b/lanes/free/lane.go index 0b87d6bc..99e031d9 100644 --- a/lanes/free/lane.go +++ b/lanes/free/lane.go @@ -39,7 +39,7 @@ func NewFreeLane[C comparable]( // default implementation matches transactions that are staking related. In particular, // any transaction that is a MsgDelegate, MsgBeginRedelegate, or MsgCancelUnbondingDelegation. func DefaultMatchHandler() base.MatchHandler { - return func(tx sdk.Tx) bool { + return func(ctx sdk.Context, tx sdk.Tx) bool { for _, msg := range tx.GetMsgs() { switch msg.(type) { case *types.MsgDelegate: diff --git a/lanes/mev/abci.go b/lanes/mev/abci.go index 3910bf3f..6f50725b 100644 --- a/lanes/mev/abci.go +++ b/lanes/mev/abci.go @@ -41,7 +41,7 @@ func (h *ProposalHandler) PrepareLaneHandler() base.PrepareLaneHandler { for iterator := h.lane.Select(ctx, nil); iterator != nil; iterator = iterator.Next() { bidTx := iterator.Tx() - if !h.lane.Match(bidTx) { + if !h.lane.Match(ctx, bidTx) { h.lane.Logger().Info("failed to select auction bid tx for lane; tx does not match lane") txsToRemove = append(txsToRemove, bidTx) @@ -104,7 +104,7 @@ func (h *ProposalHandler) ProcessLaneHandler() base.ProcessLaneHandler { } bidTx := partialProposal[0] - if !h.lane.Match(bidTx) { + if !h.lane.Match(ctx, bidTx) { // If the transaction does not belong to this lane, we return the remaining transactions // iff there are no matches in the remaining transactions after this index. if len(partialProposal) > 1 { @@ -262,7 +262,7 @@ func (h *ProposalHandler) VerifyBidTx(ctx sdk.Context, bidTx sdk.Tx, bundle []sd // verify all bundled transactions for _, bundledTx := range bundle { - if h.lane.Match(bundledTx) { + if h.lane.Match(ctx, bundledTx) { return fmt.Errorf("invalid bid tx; bundled tx is another bid transaction") } diff --git a/lanes/mev/factory.go b/lanes/mev/factory.go index 2ca9829e..bcd89413 100644 --- a/lanes/mev/factory.go +++ b/lanes/mev/factory.go @@ -111,7 +111,7 @@ func (config *DefaultAuctionFactory) GetTimeoutHeight(tx sdk.Tx) (uint64, error) // MatchHandler defines a default function that checks if a transaction matches the mev lane. func (config *DefaultAuctionFactory) MatchHandler() base.MatchHandler { - return func(tx sdk.Tx) bool { + return func(ctx sdk.Context, tx sdk.Tx) bool { bidInfo, err := config.GetAuctionBidInfo(tx) return bidInfo != nil && err == nil } diff --git a/lanes/terminator/lane.go b/lanes/terminator/lane.go index a6a5c0ac..8e0c377b 100644 --- a/lanes/terminator/lane.go +++ b/lanes/terminator/lane.go @@ -83,7 +83,7 @@ func (t Terminator) GetTxInfo(_ sdk.Context, _ sdk.Tx) (utils.TxWithInfo, error) func (t Terminator) SetAnteHandler(sdk.AnteHandler) {} // Match is a no-op -func (t Terminator) Match(sdk.Tx) bool { +func (t Terminator) Match(_ sdk.Context, _ sdk.Tx) bool { return false } From d1dec200c5db079afea96f52acee7463c96542c7 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 15:25:06 -0400 Subject: [PATCH 10/15] lint fix: --- abci/checktx/check_tx_test.go | 4 ++-- block/mocks/lane.go | 10 +++++----- lanes/base/abci_test.go | 10 +++++----- lanes/mev/testutils/testutil.go | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/abci/checktx/check_tx_test.go b/abci/checktx/check_tx_test.go index dd34b26c..d6751a10 100644 --- a/abci/checktx/check_tx_test.go +++ b/abci/checktx/check_tx_test.go @@ -403,7 +403,7 @@ func (ba *baseApp) CommitMultiStore() storetypes.CommitMultiStore { // CheckTx is baseapp's CheckTx method that checks the validity of a // transaction. -func (baseApp) CheckTx(_ *cometabci.RequestCheckTx) (*cometabci.ResponseCheckTx, error) { +func (ba *baseApp) CheckTx(_ *cometabci.RequestCheckTx) (*cometabci.ResponseCheckTx, error) { return nil, fmt.Errorf("not implemented") } @@ -418,7 +418,7 @@ func (ba *baseApp) LastBlockHeight() int64 { } // GetConsensusParams is utilized to retrieve the consensus params. -func (baseApp) GetConsensusParams(ctx sdk.Context) cmtproto.ConsensusParams { +func (ba *baseApp) GetConsensusParams(_ sdk.Context) cmtproto.ConsensusParams { return cmtproto.ConsensusParams{ Block: &cmtproto.BlockParams{ MaxBytes: 10000, diff --git a/block/mocks/lane.go b/block/mocks/lane.go index 523b27ef..6e8d64e2 100644 --- a/block/mocks/lane.go +++ b/block/mocks/lane.go @@ -153,17 +153,17 @@ func (_m *Lane) Insert(_a0 context.Context, _a1 types.Tx) error { return r0 } -// Match provides a mock function with given fields: tx -func (_m *Lane) Match(tx types.Tx) bool { - ret := _m.Called(tx) +// Match provides a mock function with given fields: ctx, tx +func (_m *Lane) Match(ctx types.Context, tx types.Tx) bool { + ret := _m.Called(ctx, tx) if len(ret) == 0 { panic("no return value specified for Match") } var r0 bool - if rf, ok := ret.Get(0).(func(types.Tx) bool); ok { - r0 = rf(tx) + if rf, ok := ret.Get(0).(func(types.Context, types.Tx) bool); ok { + r0 = rf(ctx, tx) } else { r0 = ret.Get(0).(bool) } diff --git a/lanes/base/abci_test.go b/lanes/base/abci_test.go index d19ac3e2..2964ff23 100644 --- a/lanes/base/abci_test.go +++ b/lanes/base/abci_test.go @@ -535,7 +535,7 @@ func (s *BaseTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - mh := func(tx sdk.Tx) bool { + mh := func(ctx sdk.Context, tx sdk.Tx) bool { return true } @@ -1043,7 +1043,7 @@ func (s *BaseTestSuite) TestProcessLane() { s.Require().NoError(err) // First lane matches this lane the other does not. - mh := func(tx sdk.Tx) bool { + mh := func(ctx sdk.Context, tx sdk.Tx) bool { return tx == tx1 } @@ -1301,7 +1301,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(tx sdk.Tx) bool { + mh := func(ctx sdk.Context, tx sdk.Tx) bool { if tx == tx1 || tx == tx2 { return false } @@ -1387,7 +1387,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(tx sdk.Tx) bool { + mh := func(ctx sdk.Context, tx sdk.Tx) bool { return true } @@ -1462,7 +1462,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(tx sdk.Tx) bool { + mh := func(ctx sdk.Context, tx sdk.Tx) bool { if tx == tx1 || tx == tx3 { return false } diff --git a/lanes/mev/testutils/testutil.go b/lanes/mev/testutils/testutil.go index 73818cfd..ee6edb04 100644 --- a/lanes/mev/testutils/testutil.go +++ b/lanes/mev/testutils/testutil.go @@ -61,7 +61,7 @@ func (s *MEVLaneTestSuiteBase) InitLane( factory := mev.NewDefaultAuctionFactory(s.EncCfg.TxConfig.TxDecoder(), signer_extraction.NewDefaultAdapter()) matchHandler := factory.MatchHandler() if matchAll { - matchHandler = func(tx sdk.Tx) bool { + matchHandler = func(ctx sdk.Context, tx sdk.Tx) bool { return true } } From 53649a76786e2ac9f10a68d937d5f2b96a3f1eee Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Tue, 2 Jul 2024 17:48:38 -0400 Subject: [PATCH 11/15] Update abci/checktx/mempool_parity_check_tx.go Co-authored-by: David Terpay <35130517+davidterpay@users.noreply.github.com> --- abci/checktx/mempool_parity_check_tx.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 10d84c8a..5840588a 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -132,7 +132,7 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { ) return sdkerrors.ResponseCheckTxWithEvents( - fmt.Errorf("tx size exceeds max block bytes"), + fmt.Errorf("tx size exceeds max bytes for lane %s", lane.Name), 0, 0, nil, From 4810c2c49e1034f1001d7235a2525fded207118f Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 18:01:16 -0400 Subject: [PATCH 12/15] lint fix --- abci/checktx/mempool_parity_check_tx.go | 12 +- abci/utils_test.go | 2 +- block/base/tx_priority.go | 4 +- block/types.go | 2 +- go.mod | 151 ++++++----- go.sum | 320 ++++++++++++------------ lanes/base/abci_test.go | 12 +- lanes/free/lane.go | 2 +- lanes/mev/factory.go | 2 +- lanes/mev/mempool.go | 2 +- lanes/mev/testutils/testutil.go | 4 +- tests/app/testappd/cmd/testnet.go | 2 +- x/auction/client/cli/query.go | 2 +- 13 files changed, 258 insertions(+), 259 deletions(-) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index 5840588a..db492295 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -132,7 +132,7 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { ) return sdkerrors.ResponseCheckTxWithEvents( - fmt.Errorf("tx size exceeds max bytes for lane %s", lane.Name), + fmt.Errorf("tx size exceeds max bytes for lane %s", lane.Name()), 0, 0, nil, @@ -184,16 +184,6 @@ func (m MempoolParityCheckTx) GetContextForTx(req *cmtabci.RequestCheckTx) sdk.C } ctx, _ := sdk.NewContext(ms, header, true, m.baseApp.Logger()).CacheContext() - // Set the context to the correct checking mode. - switch req.Type { - case cmtabci.CheckTxType_New: - ctx = ctx.WithIsCheckTx(true) - case cmtabci.CheckTxType_Recheck: - ctx = ctx.WithIsReCheckTx(true) - default: - panic("unknown check tx type") - } - // Set the remaining important context values. ctx = ctx. WithTxBytes(req.Tx). diff --git a/abci/utils_test.go b/abci/utils_test.go index 0d54b8b1..b0c66781 100644 --- a/abci/utils_test.go +++ b/abci/utils_test.go @@ -31,7 +31,7 @@ func (s *ProposalsTestSuite) setUpAnteHandler(expectedExecution map[sdk.Tx]bool) txCache[hashStr] = pass } - anteHandler := func(ctx sdk.Context, tx sdk.Tx, simulate bool) (newCtx sdk.Context, err error) { + anteHandler := func(ctx sdk.Context, tx sdk.Tx, _ bool) (newCtx sdk.Context, err error) { bz, err := s.encodingConfig.TxConfig.TxEncoder()(tx) s.Require().NoError(err) diff --git a/block/base/tx_priority.go b/block/base/tx_priority.go index 33d7c8b2..76361319 100644 --- a/block/base/tx_priority.go +++ b/block/base/tx_priority.go @@ -9,10 +9,10 @@ import ( // DefaultTxPriority func DefaultTxPriority() TxPriority[int] { return TxPriority[int]{ - GetTxPriority: func(goCtx context.Context, tx sdk.Tx) int { + GetTxPriority: func(_ context.Context, _ sdk.Tx) int { return 0 }, - Compare: func(a, b int) int { + Compare: func(_, _ int) int { return 0 }, MinValue: 0, diff --git a/block/types.go b/block/types.go index 183c7fe7..9e5267a2 100644 --- a/block/types.go +++ b/block/types.go @@ -21,7 +21,7 @@ type ( // NoOpPrepareLanesHandler returns a no-op prepare lanes handler. // This should only be used for testing. func NoOpPrepareLanesHandler() PrepareLanesHandler { - return func(ctx sdk.Context, proposal proposals.Proposal) (proposals.Proposal, error) { + return func(_ sdk.Context, proposal proposals.Proposal) (proposals.Proposal, error) { return proposal, nil } } diff --git a/go.mod b/go.mod index b950798c..f25e00ec 100644 --- a/go.mod +++ b/go.mod @@ -22,8 +22,8 @@ require ( github.com/cosmos/cosmos-proto v1.0.0-beta.4 github.com/cosmos/cosmos-sdk v0.50.4 github.com/cosmos/gogoproto v1.4.11 - github.com/golang/protobuf v1.5.3 - github.com/golangci/golangci-lint v1.55.3-0.20231203192459-84442f26446b + github.com/golang/protobuf v1.5.4 + github.com/golangci/golangci-lint v1.59.1 github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/huandu/skiplist v1.2.0 @@ -31,12 +31,12 @@ require ( github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.18.2 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 golang.org/x/tools v0.22.0 golang.org/x/vuln v1.1.2 - google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 - google.golang.org/grpc v1.62.1 - google.golang.org/protobuf v1.32.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 + google.golang.org/grpc v1.65.0 + google.golang.org/protobuf v1.34.1 mvdan.cc/gofumpt v0.6.0 ) @@ -45,27 +45,28 @@ require ( 4d63.com/gochecknoglobals v0.2.1 // indirect cloud.google.com/go v0.112.0 // indirect cloud.google.com/go/compute v1.23.3 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.5 // indirect cloud.google.com/go/storage v1.36.0 // indirect cosmossdk.io/collections v0.4.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect - github.com/4meepo/tagalign v1.3.3 // indirect + github.com/4meepo/tagalign v1.3.4 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect - github.com/Abirdcfly/dupword v0.0.13 // indirect - github.com/Antonboom/errname v0.1.12 // indirect - github.com/Antonboom/nilnil v0.1.7 // indirect - github.com/Antonboom/testifylint v1.0.2 // indirect - github.com/BurntSushi/toml v1.3.2 // indirect + github.com/Abirdcfly/dupword v0.0.14 // indirect + github.com/Antonboom/errname v0.1.13 // indirect + github.com/Antonboom/nilnil v0.1.9 // indirect + github.com/Antonboom/testifylint v1.3.1 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/Crocmagnon/fatcontext v0.2.2 // indirect github.com/DataDog/datadog-go v3.2.0+incompatible // indirect github.com/DataDog/zstd v1.5.5 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v3 v3.1.0 // indirect - github.com/Masterminds/semver v1.5.0 // indirect + github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect - github.com/alecthomas/go-check-sumtype v0.1.3 // indirect - github.com/alexkohler/nakedret/v2 v2.0.2 // indirect + github.com/alecthomas/go-check-sumtype v0.1.4 // indirect + github.com/alexkohler/nakedret/v2 v2.0.4 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect github.com/ashanbrown/forbidigo v1.6.0 // indirect @@ -77,20 +78,21 @@ require ( github.com/bits-and-blooms/bitset v1.8.0 // indirect github.com/bkielbasa/cyclop v1.2.1 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect - github.com/bombsimon/wsl/v4 v4.2.0 // indirect + github.com/bombsimon/wsl/v4 v4.2.1 // indirect github.com/breml/bidichk v0.2.7 // indirect github.com/breml/errchkjson v0.3.6 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect - github.com/butuzov/ireturn v0.2.2 // indirect - github.com/butuzov/mirror v1.1.0 // indirect - github.com/catenacyber/perfsprint v0.4.0 // indirect - github.com/ccojocar/zxcvbn-go v1.0.1 // indirect + github.com/butuzov/ireturn v0.3.0 // indirect + github.com/butuzov/mirror v1.2.0 // indirect + github.com/catenacyber/perfsprint v0.7.1 // indirect + github.com/ccojocar/zxcvbn-go v1.0.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.10 // indirect github.com/chavacava/garif v0.1.0 // indirect github.com/chzyer/readline v1.5.1 // indirect + github.com/ckaznocha/intrange v0.1.2 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/cockroachdb/errors v1.11.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect @@ -107,11 +109,11 @@ require ( github.com/creachadair/atomicfile v0.3.1 // indirect github.com/creachadair/tomledit v0.0.24 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect - github.com/daixiang0/gci v0.11.2 // indirect + github.com/daixiang0/gci v0.13.4 // indirect github.com/danieljoos/wincred v1.1.2 // 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/denis-tingaikin/go-header v0.4.3 // indirect + github.com/denis-tingaikin/go-header v0.5.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect @@ -119,48 +121,46 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.6.0 // indirect github.com/emicklei/dot v1.6.1 // indirect - github.com/esimonov/ifshort v1.0.4 // indirect - github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/ettle/strcase v0.2.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/firefart/nonamedreturns v1.0.4 // indirect + github.com/firefart/nonamedreturns v1.0.5 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect - github.com/ghostiam/protogetter v0.3.3 // indirect - github.com/go-critic/go-critic v0.9.0 // indirect + github.com/ghostiam/protogetter v0.3.6 // indirect + github.com/go-critic/go-critic v0.11.4 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect - github.com/go-logr/logr v1.3.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect - github.com/go-toolsmith/astequal v1.1.0 // indirect + github.com/go-toolsmith/astequal v1.2.0 // indirect github.com/go-toolsmith/astfmt v1.1.0 // indirect github.com/go-toolsmith/astp v1.1.0 // indirect github.com/go-toolsmith/strparse v1.1.0 // indirect github.com/go-toolsmith/typep v1.1.0 // indirect + github.com/go-viper/mapstructure/v2 v2.0.0 // indirect github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gofrs/flock v0.8.1 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.2.0 // indirect + github.com/golang/glog v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect - github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe // indirect github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect - github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect - github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect - github.com/golangci/misspell v0.4.1 // indirect - github.com/golangci/revgrep v0.5.2 // indirect - github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect + github.com/golangci/misspell v0.6.0 // indirect + github.com/golangci/modinfo v0.3.4 // indirect + github.com/golangci/plugin-module-register v0.1.1 // indirect + github.com/golangci/revgrep v0.5.3 // indirect + github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/orderedcode v0.0.1 // indirect @@ -177,16 +177,14 @@ require ( github.com/gostaticanalysis/nilerr v0.1.1 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-getter v1.7.3 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-metrics v0.5.2 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-plugin v1.5.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.1.1 // indirect @@ -195,29 +193,31 @@ require ( github.com/iancoleman/strcase v0.3.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jgautheron/goconst v1.7.0 // indirect + github.com/jgautheron/goconst v1.7.1 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect + github.com/jjti/go-spancheck v0.6.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/julz/importas v0.1.0 // indirect - github.com/kisielk/errcheck v1.6.3 // indirect - github.com/kisielk/gotool v1.0.0 // indirect - github.com/kkHAIKE/contextcheck v1.1.4 // indirect + github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect + github.com/kisielk/errcheck v1.7.0 // indirect + github.com/kkHAIKE/contextcheck v1.1.5 // indirect github.com/klauspost/compress v1.17.6 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/kulti/thelper v0.6.3 // indirect - github.com/kunwardeep/paralleltest v1.0.8 // indirect + github.com/kunwardeep/paralleltest v1.0.10 // indirect github.com/kyoh86/exportloopref v0.1.11 // indirect - github.com/ldez/gomoddirectives v0.2.3 // indirect + github.com/lasiar/canonicalheader v1.1.1 // indirect + github.com/ldez/gomoddirectives v0.2.4 // indirect github.com/ldez/tagliatelle v0.5.0 // indirect - github.com/leonklingele/grouper v1.1.1 // indirect + github.com/leonklingele/grouper v1.1.2 // 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.12 // indirect github.com/lufeee/execinquery v1.2.1 // indirect - github.com/macabu/inamedparam v0.1.2 // indirect + github.com/macabu/inamedparam v0.1.3 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/maratori/testableexamples v1.0.0 // indirect @@ -226,8 +226,7 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect - github.com/mbilski/exhaustivestruct v1.2.0 // indirect - github.com/mgechev/revive v1.3.4 // indirect + github.com/mgechev/revive v1.3.7 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -237,21 +236,22 @@ require ( github.com/nakabonne/nestif v0.3.1 // indirect github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect - github.com/nunnatsa/ginkgolinter v0.14.1 // indirect + github.com/nunnatsa/ginkgolinter v0.16.2 // indirect github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/opencontainers/runc v1.1.12 // indirect - github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/polyfloyd/go-errorlint v1.4.6 // indirect + github.com/polyfloyd/go-errorlint v1.5.2 // indirect github.com/prometheus/client_golang v1.18.0 // indirect github.com/prometheus/client_model v0.6.0 // indirect github.com/prometheus/common v0.47.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect - github.com/quasilyte/go-ruleguard v0.4.0 // indirect + github.com/quasilyte/go-ruleguard v0.4.2 // indirect + github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect @@ -259,19 +259,19 @@ require ( github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/cors v1.8.3 // indirect github.com/rs/zerolog v1.32.0 // indirect - github.com/ryancurrah/gomodguard v1.3.0 // indirect + github.com/ryancurrah/gomodguard v1.3.2 // indirect github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect + github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.24.0 // indirect - github.com/securego/gosec/v2 v2.18.2 // indirect + github.com/sashamelentyev/usestdlibvars v1.26.0 // indirect + github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sivchari/containedctx v1.0.3 // indirect - github.com/sivchari/nosnakecase v1.7.0 // indirect github.com/sivchari/tenv v1.7.1 // indirect github.com/sonatard/noctx v0.0.2 // indirect github.com/sourcegraph/conc v0.3.0 // indirect @@ -280,7 +280,7 @@ require ( github.com/spf13/cast v1.6.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect - github.com/stretchr/objx v0.5.0 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect @@ -290,21 +290,21 @@ require ( github.com/tidwall/btree v1.7.0 // indirect github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect github.com/timonwong/loggercheck v0.9.4 // indirect - github.com/tomarrell/wrapcheck/v2 v2.8.1 // indirect + github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/ultraware/funlen v0.1.0 // indirect - github.com/ultraware/whitespace v0.1.0 // indirect + github.com/ultraware/whitespace v0.1.1 // indirect github.com/uudashr/gocognit v1.1.2 // indirect github.com/xen0n/gosmopolitan v1.2.2 // indirect github.com/yagipy/maintidx v1.0.0 // indirect - github.com/yeya24/promlinter v0.2.0 // indirect + github.com/yeya24/promlinter v0.3.0 // indirect github.com/ykadowak/zerologlint v0.1.5 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - gitlab.com/bosi/decorder v0.4.1 // indirect - go-simpler.org/musttag v0.8.0 // indirect - go-simpler.org/sloglint v0.3.0 // indirect + gitlab.com/bosi/decorder v0.4.2 // indirect + go-simpler.org/musttag v0.12.2 // indirect + go-simpler.org/sloglint v0.7.1 // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect @@ -313,14 +313,15 @@ require ( go.opentelemetry.io/otel/metric v1.21.0 // indirect go.opentelemetry.io/otel/trace v1.21.0 // indirect go.uber.org/atomic v1.10.0 // indirect + go.uber.org/automaxprocs v1.5.3 // indirect go.uber.org/multierr v1.10.0 // indirect go.uber.org/zap v1.24.0 // indirect golang.org/x/crypto v0.24.0 // indirect golang.org/x/exp v0.0.0-20240213143201-ec583247a57a // indirect - golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 // indirect + golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 // indirect @@ -330,15 +331,13 @@ require ( google.golang.org/api v0.155.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect - honnef.co/go/tools v0.4.6 // indirect - mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect - mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect - mvdan.cc/unparam v0.0.0-20230312165513-e84e2d14e3b8 // indirect + honnef.co/go/tools v0.4.7 // indirect + mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect nhooyr.io/websocket v1.8.6 // indirect pgregory.net/rapid v1.1.0 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index cb66b46f..a1725e70 100644 --- a/go.sum +++ b/go.sum @@ -76,6 +76,8 @@ cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiV cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= @@ -219,35 +221,37 @@ cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOc dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= -github.com/4meepo/tagalign v1.3.3 h1:ZsOxcwGD/jP4U/aw7qeWu58i7dwYemfy5Y+IF1ACoNw= -github.com/4meepo/tagalign v1.3.3/go.mod h1:Q9c1rYMZJc9dPRkbQPpcBNCLEmY2njbAsXhQOZFE2dE= +github.com/4meepo/tagalign v1.3.4 h1:P51VcvBnf04YkHzjfclN6BbsopfJR5rxs1n+5zHt+w8= +github.com/4meepo/tagalign v1.3.4/go.mod h1:M+pnkHH2vG8+qhE5bVc/zeP7HS/j910Fwa9TUSyZVI0= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= -github.com/Abirdcfly/dupword v0.0.13 h1:SMS17YXypwP000fA7Lr+kfyBQyW14tTT+nRv9ASwUUo= -github.com/Abirdcfly/dupword v0.0.13/go.mod h1:Ut6Ue2KgF/kCOawpW4LnExT+xZLQviJPE4klBPMK/5Y= -github.com/Antonboom/errname v0.1.12 h1:oh9ak2zUtsLp5oaEd/erjB4GPu9w19NyoIskZClDcQY= -github.com/Antonboom/errname v0.1.12/go.mod h1:bK7todrzvlaZoQagP1orKzWXv59X/x0W0Io2XT1Ssro= -github.com/Antonboom/nilnil v0.1.7 h1:ofgL+BA7vlA1K2wNQOsHzLJ2Pw5B5DpWRLdDAVvvTow= -github.com/Antonboom/nilnil v0.1.7/go.mod h1:TP+ScQWVEq0eSIxqU8CbdT5DFWoHp0MbP+KMUO1BKYQ= -github.com/Antonboom/testifylint v1.0.2 h1:WkSc4c6AcYAPrSqj/3MYrewhszk+mnwd07acH1NL9Vw= -github.com/Antonboom/testifylint v1.0.2/go.mod h1:tGEV9t6Th7DHXFVjd8oyLOBbIxXzs4CMEIAkbQ2RuC8= +github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8= +github.com/Abirdcfly/dupword v0.0.14/go.mod h1:VKDAbxdY8YbKUByLGg8EETzYSuC4crm9WwI6Y3S0cLI= +github.com/Antonboom/errname v0.1.13 h1:JHICqsewj/fNckzrfVSe+T33svwQxmjC+1ntDsHOVvM= +github.com/Antonboom/errname v0.1.13/go.mod h1:uWyefRYRN54lBg6HseYCFhs6Qjcy41Y3Jl/dVhA87Ns= +github.com/Antonboom/nilnil v0.1.9 h1:eKFMejSxPSA9eLSensFmjW2XTgTwJMjZ8hUHtV4s/SQ= +github.com/Antonboom/nilnil v0.1.9/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ= +github.com/Antonboom/testifylint v1.3.1 h1:Uam4q1Q+2b6H7gvk9RQFw6jyVDdpzIirFOOrbs14eG4= +github.com/Antonboom/testifylint v1.3.1/go.mod h1:NV0hTlteCkViPW9mSR4wEMfwp+Hs1T3dY60bkvSfhpM= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Crocmagnon/fatcontext v0.2.2 h1:OrFlsDdOj9hW/oBEJBNSuH7QWf+E9WPVHw+x52bXVbk= +github.com/Crocmagnon/fatcontext v0.2.2/go.mod h1:WSn/c/+MMNiD8Pri0ahRj0o9jVpeowzavOQplBJw6u0= github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.1.0 h1:3ZBs7LAezy8gh0uECsA6CGU43FF3zsx5f4eah5FxTMA= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.1.0/go.mod h1:rZLTje5A9kFBe0pzhpe2TdhRniBF++PRHQuRpR8esVc= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0/go.mod h1:Nl76DrGNJTA1KJ0LePKBw/vznBX1EHbAZX8mwjR82nI= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= @@ -265,8 +269,8 @@ github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= -github.com/alecthomas/go-check-sumtype v0.1.3 h1:M+tqMxB68hcgccRXBMVCPI4UJ+QUfdSx0xdbypKCqA8= -github.com/alecthomas/go-check-sumtype v0.1.3/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ= +github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c= +github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ= github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk= github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -274,8 +278,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alexkohler/nakedret/v2 v2.0.2 h1:qnXuZNvv3/AxkAb22q/sEsEpcA99YxLFACDtEw9TPxE= -github.com/alexkohler/nakedret/v2 v2.0.2/go.mod h1:2b8Gkk0GsOrqQv/gPWjNLDSKwG8I5moSXG1K4VIBcTQ= +github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg= +github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= @@ -315,8 +319,8 @@ github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJ github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bombsimon/wsl/v4 v4.2.0 h1:dKK3o/Hk2aIt6t72CWg02ham2P5lnH9MBSW6cTU9xxU= -github.com/bombsimon/wsl/v4 v4.2.0/go.mod h1:1zaTbf/7ywOQtMdoUdTF2X1fbbBLiBUkajyuFAanT28= +github.com/bombsimon/wsl/v4 v4.2.1 h1:Cxg6u+XDWff75SIFFmNsqnIOgob+Q9hG6y/ioKbRFiM= +github.com/bombsimon/wsl/v4 v4.2.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo= github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= @@ -329,15 +333,15 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOF github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= -github.com/butuzov/ireturn v0.2.2 h1:jWI36dxXwVrI+RnXDwux2IZOewpmfv930OuIRfaBUJ0= -github.com/butuzov/ireturn v0.2.2/go.mod h1:RfGHUvvAuFFxoHKf4Z8Yxuh6OjlCw1KvR2zM1NFHeBk= -github.com/butuzov/mirror v1.1.0 h1:ZqX54gBVMXu78QLoiqdwpl2mgmoOJTk7s4p4o+0avZI= -github.com/butuzov/mirror v1.1.0/go.mod h1:8Q0BdQU6rC6WILDiBM60DBfvV78OLJmMmixe7GF45AE= +github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0= +github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA= +github.com/butuzov/mirror v1.2.0 h1:9YVK1qIjNspaqWutSv8gsge2e/Xpq1eqEkslEUHy5cs= +github.com/butuzov/mirror v1.2.0/go.mod h1:DqZZDtzm42wIAIyHXeN8W/qb1EPlb9Qn/if9icBOpdQ= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/catenacyber/perfsprint v0.4.0 h1:ZwECTVWzrJ4oW94r2OEiNEO+RKWXSibEZBPd6HkrGl4= -github.com/catenacyber/perfsprint v0.4.0/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= -github.com/ccojocar/zxcvbn-go v1.0.1 h1:+sxrANSCj6CdadkcMnvde/GWU1vZiiXRbqYSCalV4/4= -github.com/ccojocar/zxcvbn-go v1.0.1/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= +github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc= +github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= +github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= +github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= 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= @@ -347,9 +351,9 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= @@ -366,6 +370,8 @@ github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI= +github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= @@ -380,6 +386,7 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= +github.com/cncf/xds/go v0.0.0-20240423153145-555b57ec207b h1:ga8SEFjZ60pxLcmhnThWgvH2wg8376yUJmPhEH4H3kw= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -442,8 +449,8 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/daixiang0/gci v0.11.2 h1:Oji+oPsp3bQ6bNNgX30NBAVT18P4uBH4sRZnlOlTj7Y= -github.com/daixiang0/gci v0.11.2/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI= +github.com/daixiang0/gci v0.13.4 h1:61UGkmpoAcxHM2hhNkZEf5SzwQtWJXTSws7jaPyqwlw= +github.com/daixiang0/gci v0.13.4/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -454,8 +461,8 @@ github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5il github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= -github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= -github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= +github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= +github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= @@ -496,21 +503,19 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go. github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= -github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= -github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= -github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= -github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= +github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= +github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= -github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= +github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA= +github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= 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= @@ -526,15 +531,15 @@ github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlya github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghostiam/protogetter v0.3.3 h1:EvOuzB/SEifg/c4aMnwcj033Qc1lHO7Yz4QnBDbmbik= -github.com/ghostiam/protogetter v0.3.3/go.mod h1:A0JgIhs0fgVnotGinjQiKaFVG3waItLJNwPmcMzDnvk= +github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk= +github.com/ghostiam/protogetter v0.3.6/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/go-critic/go-critic v0.9.0 h1:Pmys9qvU3pSML/3GEQ2Xd9RZ/ip+aXHKILuxczKGV/U= -github.com/go-critic/go-critic v0.9.0/go.mod h1:5P8tdXL7m/6qnyG6oRAlYLORvoXH0WDypYgAEmagT40= +github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My6OyEU= +github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc= 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= @@ -554,8 +559,8 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= @@ -570,15 +575,16 @@ github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJ github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8= github.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU= github.com/go-toolsmith/astcopy v1.1.0 h1:YGwBN0WM+ekI/6SS6+52zLDEf8Yvp3n2seZITCUBt5s= github.com/go-toolsmith/astcopy v1.1.0/go.mod h1:hXM6gan18VA1T/daUEHCFcYiW8Ai1tIwIzHY6srfEAw= github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astequal v1.1.0 h1:kHKm1AWqClYn15R0K1KKE4RG614D46n+nqUQ06E1dTw= github.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ= +github.com/go-toolsmith/astequal v1.2.0 h1:3Fs3CYZ1k9Vo4FzFhwwewC3CHISHDnVUPC4x0bI2+Cw= +github.com/go-toolsmith/astequal v1.2.0/go.mod h1:c8NZ3+kSFtFY/8lPso4v8LuJjdJiUFVnSuU3s0qrrDY= github.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco= github.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4= github.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA= @@ -590,6 +596,8 @@ github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQi github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= +github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc= +github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U= github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= @@ -620,6 +628,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= +github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -656,30 +666,27 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe h1:6RGUuS7EGotKx6J5HIP8ZtyMdiDscjMLfRBSPuzVVeo= -github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g= github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM= -github.com/golangci/golangci-lint v1.55.3-0.20231203192459-84442f26446b h1:z3r/dMJX7RUKV8RAVYnu4tghQImjPksZzkncictRlT4= -github.com/golangci/golangci-lint v1.55.3-0.20231203192459-84442f26446b/go.mod h1:h6krrUw6/rso2L5KPuSLK3WGKdhYbEW4I0zPt4ckp3Y= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.4.1 h1:+y73iSicVy2PqyX7kmUefHusENlrP9YwuHZHPLGQj/g= -github.com/golangci/misspell v0.4.1/go.mod h1:9mAN1quEo3DlpbaIKKyEvRxK1pwqR9s/Sea1bJCtlNI= -github.com/golangci/revgrep v0.5.2 h1:EndcWoRhcnfj2NHQ+28hyuXpLMF+dQmCN+YaeeIl4FU= -github.com/golangci/revgrep v0.5.2/go.mod h1:bjAMA+Sh/QUfTDcHzxfyHxr4xKvllVr/0sCv2e7jJHA= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/golangci/golangci-lint v1.59.1 h1:CRRLu1JbhK5avLABFJ/OHVSQ0Ie5c4ulsOId1h3TTks= +github.com/golangci/golangci-lint v1.59.1/go.mod h1:jX5Oif4C7P0j9++YB2MMJmoNrb01NJ8ITqKWNLewThg= +github.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs= +github.com/golangci/misspell v0.6.0/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo= +github.com/golangci/modinfo v0.3.4 h1:oU5huX3fbxqQXdfspamej74DFX0kyGLkw1ppvXoJ8GA= +github.com/golangci/modinfo v0.3.4/go.mod h1:wytF1M5xl9u0ij8YSvhkEVPP3M5Mc7XLl1pxH3B2aUM= +github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c= +github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc= +github.com/golangci/revgrep v0.5.3 h1:3tL7c1XBMtWHHqVpS5ChmiAAoe4PF/d5+ULzV9sLAzs= +github.com/golangci/revgrep v0.5.3/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k= +github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs= +github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= @@ -730,8 +737,8 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10 h1:CqYfpuYIjnlNxM3msdyPRKabhXZWbKjf3Q8BWROFBso= -github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= @@ -797,8 +804,6 @@ github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NM github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= @@ -814,8 +819,6 @@ github.com/hashicorp/go-metrics v0.5.2 h1:ErEYO2f//CjKsUDw4SmLzelsK6L3ZmOAR/4P9i github.com/hashicorp/go-metrics v0.5.2/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.5.2 h1:aWv8eimFqWlsEiMrYZdPYl+FdHaBJSN4AWwGWfT1G2Y= github.com/hashicorp/go-plugin v1.5.2/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= @@ -829,8 +832,9 @@ github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1 github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -864,14 +868,16 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/jgautheron/goconst v1.7.0 h1:cEqH+YBKLsECnRSd4F4TK5ri8t/aXtt/qoL0Ft252B0= -github.com/jgautheron/goconst v1.7.0/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= +github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= +github.com/jjti/go-spancheck v0.6.1 h1:ZK/wE5Kyi1VX3PJpUO2oEgeoI4FWOUm7Shb2Gbv5obI= +github.com/jjti/go-spancheck v0.6.1/go.mod h1:vF1QkOO159prdo6mHRxak2CpzDpHAfKiPUDP/NeRnX8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -886,7 +892,6 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -896,15 +901,16 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos= +github.com/karamaru-alpha/copyloopvar v1.1.0/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= -github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0= +github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkHAIKE/contextcheck v1.1.4 h1:B6zAaLhOEEcjvUgIYEqystmnFk1Oemn8bvJhbt0GMb8= -github.com/kkHAIKE/contextcheck v1.1.4/go.mod h1:1+i/gWqokIa+dm31mqGLZhZJ7Uh44DJGZVmr6QRBNJg= +github.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LXxiilg= +github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= 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= @@ -923,19 +929,21 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.8 h1:Ul2KsqtzFxTlSU7IP0JusWlLiNqQaloB9vguyjbE558= -github.com/kunwardeep/paralleltest v1.0.8/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY= +github.com/kunwardeep/paralleltest v1.0.10 h1:wrodoaKYzS2mdNVnc4/w31YaXFtsc21PCTdvWJ/lDDs= +github.com/kunwardeep/paralleltest v1.0.10/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY= github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ= github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA= -github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= -github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= +github.com/lasiar/canonicalheader v1.1.1 h1:wC+dY9ZfiqiPwAexUApFush/csSPXeIi4QqyxXmng8I= +github.com/lasiar/canonicalheader v1.1.1/go.mod h1:cXkb3Dlk6XXy+8MVQnF23CYKWlyA7kfQhSw2CcZtZb0= +github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJZ3alg= +github.com/ldez/gomoddirectives v0.2.4/go.mod h1:oWu9i62VcQDYp9EQ0ONTfqLNh+mDLWWDO+SO0qSQw5g= github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo= github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= 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/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU= -github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= +github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= +github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= 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= @@ -947,8 +955,8 @@ github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXk github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/macabu/inamedparam v0.1.2 h1:RR5cnayM6Q7cDhQol32DE2BGAPGMnffJ31LFE+UklaU= -github.com/macabu/inamedparam v0.1.2/go.mod h1:Xg25QvY7IBRl1KLPV9Rbml8JOMZtF/iAkNkmV7eQgjw= +github.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV1Mk= +github.com/macabu/inamedparam v0.1.3/go.mod h1:93FLICAIk/quk7eaPPQvbzihUdn/QkGDwIZEoLtpH6I= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= @@ -980,10 +988,8 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= -github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mgechev/revive v1.3.4 h1:k/tO3XTaWY4DEHal9tWBkkUMJYO/dLDVyMmAQxmIMDc= -github.com/mgechev/revive v1.3.4/go.mod h1:W+pZCMu9qj8Uhfs1iJMQsEFLRozUfvwFwqVvRbSNLVw= +github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE= +github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= @@ -1029,8 +1035,8 @@ github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhK github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.14.1 h1:khx0CqR5U4ghsscjJ+lZVthp3zjIFytRXPTaQ/TMiyA= -github.com/nunnatsa/ginkgolinter v0.14.1/go.mod h1:nY0pafUSst7v7F637e7fymaMlQqI9c0Wka2fGsDkzWg= +github.com/nunnatsa/ginkgolinter v0.16.2 h1:8iLqHIZvN4fTLDC0Ke9tbSZVcyVHoBs0HIbnVSxfHJk= +github.com/nunnatsa/ginkgolinter v0.16.2/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -1048,13 +1054,13 @@ github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= -github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= +github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU= +github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.28.1 h1:MijcGUbfYuznzK/5R4CPNoUP/9Xvuo20sXfEm6XxoTA= -github.com/onsi/gomega v1.28.1/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= @@ -1073,8 +1079,8 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/copy v1.11.0 h1:OKBD80J/mLBrwnzXqGtFCzprFSGioo30JcmR4APsNwc= -github.com/otiai10/copy v1.11.0/go.mod h1:rSaLseMUsZFFbsFGc7wCJnnkTAvdc5L6VWxPE4308Ww= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= +github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= @@ -1085,8 +1091,8 @@ github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0Mw github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= 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.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= -github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= @@ -1104,17 +1110,17 @@ github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6J 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/polyfloyd/go-errorlint v1.4.6 h1:6E7ITe++G4eQ8+/ciIz9yONm+pDy+1LI/AZdZG0cP5Y= -github.com/polyfloyd/go-errorlint v1.4.6/go.mod h1:WGkLzUkLXGGr6BfD33l7yRidBa+T+8xB8TupCpId2ZE= +github.com/polyfloyd/go-errorlint v1.5.2 h1:SJhVik3Umsjh7mte1vE0fVZ5T1gznasQG3PV7U5xFdA= +github.com/polyfloyd/go-errorlint v1.5.2/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= 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= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1131,8 +1137,6 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1141,12 +1145,12 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/quasilyte/go-ruleguard v0.4.0 h1:DyM6r+TKL+xbKB4Nm7Afd1IQh9kEUKQs2pboWGKtvQo= -github.com/quasilyte/go-ruleguard v0.4.0/go.mod h1:Eu76Z/R8IXtViWUIHkE3p8gdH3/PKk1eh3YGfaEof10= +github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= +github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= +github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= +github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= @@ -1171,8 +1175,8 @@ github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWR github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= 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/ryancurrah/gomodguard v1.3.0 h1:q15RT/pd6UggBXVBuLps8BXRvl5GPBcwVA7BJHMLuTw= -github.com/ryancurrah/gomodguard v1.3.0/go.mod h1:ggBxb3luypPEzqVtq33ee7YSN35V28XeGnid8dnni50= +github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3IXxM18= +github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o= github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -1183,15 +1187,17 @@ github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWR github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc= github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= 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= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.24.0 h1:MKNzmXtGh5N0y74Z/CIaJh4GlB364l0K1RUT08WSWAc= -github.com/sashamelentyev/usestdlibvars v1.24.0/go.mod h1:9cYkq+gYJ+a5W2RPdhfaSCnTVUC1OQP/bSiiBhq3OZE= +github.com/sashamelentyev/usestdlibvars v1.26.0 h1:LONR2hNVKxRmzIrZR0PhSF3mhCAzvnr+DcUiHgREfXE= +github.com/sashamelentyev/usestdlibvars v1.26.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/securego/gosec/v2 v2.18.2 h1:DkDt3wCiOtAHf1XkiXZBhQ6m6mK/b9T/wD257R3/c+I= -github.com/securego/gosec/v2 v2.18.2/go.mod h1:xUuqSF6i0So56Y2wwohWAmB07EdBkUN6crbLlHwbyJs= +github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 h1:rnO6Zp1YMQwv8AyxzuwsVohljJgp4L0ZqiCgtACsPsc= +github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9/go.mod h1:dg7lPlu/xK/Ut9SedURCoZbVCR4yC7fM65DtH9/CDHs= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= @@ -1205,8 +1211,6 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= -github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= -github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak= github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/skip-mev/chaintestutil v0.0.0-20231221145345-f208ee3b1383 h1:tjmoJDbTLTolmL/pjvNbICb/I9as5hQwxL1FqRVUwY4= @@ -1252,8 +1256,9 @@ github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5J github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1264,8 +1269,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= 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.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 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= @@ -1289,8 +1295,8 @@ github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVN github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.8.1 h1:HxSqDSN0sAt0yJYsrcYVoEeyM4aI9yAm3KQpIXDJRhQ= -github.com/tomarrell/wrapcheck/v2 v2.8.1/go.mod h1:/n2Q3NZ4XFT50ho6Hbxg+RV1uyo2Uow/Vdm9NQcl5SE= +github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs= +github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= @@ -1305,8 +1311,8 @@ github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= -github.com/ultraware/whitespace v0.1.0 h1:O1HKYoh0kIeqE8sFqZf1o0qbORXUCOQFrlaQyZsczZw= -github.com/ultraware/whitespace v0.1.0/go.mod h1:/se4r3beMFNmewJ4Xmz0nMQ941GJt+qmSHGP9emHYe0= +github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ= +github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= @@ -1317,8 +1323,8 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= -github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= -github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= +github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs= +github.com/yeya24/promlinter v0.3.0/go.mod h1:cDfJQQYv9uYciW60QT0eeHlFodotkYZlL+YcPQN+mW4= github.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoolgdiw= github.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1332,14 +1338,14 @@ github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= -gitlab.com/bosi/decorder v0.4.1 h1:VdsdfxhstabyhZovHafFw+9eJ6eU0d2CkFNJcZz/NU4= -gitlab.com/bosi/decorder v0.4.1/go.mod h1:jecSqWUew6Yle1pCr2eLWTensJMmsxHsBwt+PVbkAqA= -go-simpler.org/assert v0.7.0 h1:OzWWZqfNxt8cLS+MlUp6Tgk1HjPkmgdKBq9qvy8lZsA= -go-simpler.org/assert v0.7.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= -go-simpler.org/musttag v0.8.0 h1:DR4UTgetNNhPRNo02rkK1hwDTRzAPotN+ZqYpdtEwWc= -go-simpler.org/musttag v0.8.0/go.mod h1:fiNdCkXt2S6je9Eblma3okjnlva9NT1Eg/WUt19rWu8= -go-simpler.org/sloglint v0.3.0 h1:E6TR0w4io+F1mkdvFaCRKEpf19S2+lnEYiDM2Z6bClk= -go-simpler.org/sloglint v0.3.0/go.mod h1:/RQr0TeTf89IyRjLJ9ogUbIp1Zs5zJJAj02pwQoDQdg= +gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= +gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= +go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= +go-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= +go-simpler.org/musttag v0.12.2 h1:J7lRc2ysXOq7eM8rwaTYnNrHd5JwjppzB6mScysB2Cs= +go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S7TYM= +go-simpler.org/sloglint v0.7.1 h1:qlGLiqHbN5islOxjeLXoPtUdZXb669RW+BDQ+xOSNoU= +go-simpler.org/sloglint v0.7.1/go.mod h1:OlaVDRh/FKKd4X4sIMbsz8st97vomydceL146Fthh/c= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1374,6 +1380,8 @@ go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= @@ -1417,8 +1425,8 @@ golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5C golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833 h1:jWGQJV4niP+CCmFW9ekjA9Zx8vYORzOUH2/Nl5WPuLQ= -golang.org/x/exp/typeparams v0.0.0-20230307190834-24139beb5833/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= 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= @@ -1498,7 +1506,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/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-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1545,6 +1552,8 @@ golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1626,7 +1635,6 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1643,7 +1651,6 @@ golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1758,7 +1765,6 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1965,8 +1971,12 @@ google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/b google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -2010,6 +2020,8 @@ google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2026,8 +2038,10 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2070,16 +2084,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.4.6 h1:oFEHCKeID7to/3autwsWfnuv69j3NsfcXbvJKuIcep8= -honnef.co/go/tools v0.4.6/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= +honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= +honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20230312165513-e84e2d14e3b8 h1:VuJo4Mt0EVPychre4fNlDWDuE5AjXtPJpRUWqZDQhaI= -mvdan.cc/unparam v0.0.0-20230312165513-e84e2d14e3b8/go.mod h1:Oh/d7dEtzsNHGOq1Cdv8aMm3KdKhVvPbRQcM8WFpBR8= +mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U= +mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= diff --git a/lanes/base/abci_test.go b/lanes/base/abci_test.go index 2964ff23..2e1b99dd 100644 --- a/lanes/base/abci_test.go +++ b/lanes/base/abci_test.go @@ -535,7 +535,7 @@ func (s *BaseTestSuite) TestPrepareLane() { ) s.Require().NoError(err) - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(_ sdk.Context, _ sdk.Tx) bool { return true } @@ -1043,7 +1043,7 @@ func (s *BaseTestSuite) TestProcessLane() { s.Require().NoError(err) // First lane matches this lane the other does not. - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(_ sdk.Context, tx sdk.Tx) bool { return tx == tx1 } @@ -1301,7 +1301,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(_ sdk.Context, tx sdk.Tx) bool { if tx == tx1 || tx == tx2 { return false } @@ -1387,7 +1387,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(_ sdk.Context, _ sdk.Tx) bool { return true } @@ -1462,7 +1462,7 @@ func (s *BaseTestSuite) TestProcessLane() { tx4, } - mh := func(ctx sdk.Context, tx sdk.Tx) bool { + mh := func(_ sdk.Context, tx sdk.Tx) bool { if tx == tx1 || tx == tx3 { return false } @@ -1680,7 +1680,7 @@ func (s *BaseTestSuite) setUpAnteHandler(expectedExecution map[sdk.Tx]bool) sdk. txCache[hashStr] = pass } - anteHandler := func(ctx sdk.Context, tx sdk.Tx, simulate bool) (newCtx sdk.Context, err error) { + anteHandler := func(ctx sdk.Context, tx sdk.Tx, _ bool) (newCtx sdk.Context, err error) { bz, err := s.encodingConfig.TxConfig.TxEncoder()(tx) s.Require().NoError(err) diff --git a/lanes/free/lane.go b/lanes/free/lane.go index 99e031d9..bf6d3e00 100644 --- a/lanes/free/lane.go +++ b/lanes/free/lane.go @@ -39,7 +39,7 @@ func NewFreeLane[C comparable]( // default implementation matches transactions that are staking related. In particular, // any transaction that is a MsgDelegate, MsgBeginRedelegate, or MsgCancelUnbondingDelegation. func DefaultMatchHandler() base.MatchHandler { - return func(ctx sdk.Context, tx sdk.Tx) bool { + return func(_ sdk.Context, tx sdk.Tx) bool { for _, msg := range tx.GetMsgs() { switch msg.(type) { case *types.MsgDelegate: diff --git a/lanes/mev/factory.go b/lanes/mev/factory.go index bcd89413..332da1ba 100644 --- a/lanes/mev/factory.go +++ b/lanes/mev/factory.go @@ -111,7 +111,7 @@ func (config *DefaultAuctionFactory) GetTimeoutHeight(tx sdk.Tx) (uint64, error) // MatchHandler defines a default function that checks if a transaction matches the mev lane. func (config *DefaultAuctionFactory) MatchHandler() base.MatchHandler { - return func(ctx sdk.Context, tx sdk.Tx) bool { + return func(_ sdk.Context, tx sdk.Tx) bool { bidInfo, err := config.GetAuctionBidInfo(tx) return bidInfo != nil && err == nil } diff --git a/lanes/mev/mempool.go b/lanes/mev/mempool.go index 18e3ae3c..8a0c318e 100644 --- a/lanes/mev/mempool.go +++ b/lanes/mev/mempool.go @@ -12,7 +12,7 @@ import ( // is to be used in the mev index only. func TxPriority(config Factory) base.TxPriority[string] { return base.TxPriority[string]{ - GetTxPriority: func(goCtx context.Context, tx sdk.Tx) string { + GetTxPriority: func(_ context.Context, tx sdk.Tx) string { bidInfo, err := config.GetAuctionBidInfo(tx) if err != nil || bidInfo == nil || bidInfo.Bid.IsNil() { return "" diff --git a/lanes/mev/testutils/testutil.go b/lanes/mev/testutils/testutil.go index ee6edb04..970c92fc 100644 --- a/lanes/mev/testutils/testutil.go +++ b/lanes/mev/testutils/testutil.go @@ -61,7 +61,7 @@ func (s *MEVLaneTestSuiteBase) InitLane( factory := mev.NewDefaultAuctionFactory(s.EncCfg.TxConfig.TxDecoder(), signer_extraction.NewDefaultAdapter()) matchHandler := factory.MatchHandler() if matchAll { - matchHandler = func(ctx sdk.Context, tx sdk.Tx) bool { + matchHandler = func(_ sdk.Context, _ sdk.Tx) bool { return true } } @@ -80,7 +80,7 @@ func (s *MEVLaneTestSuiteBase) SetUpAnteHandler(expectedExecution map[sdk.Tx]boo txCache[hashStr] = pass } - anteHandler := func(ctx sdk.Context, tx sdk.Tx, simulate bool) (newCtx sdk.Context, err error) { + anteHandler := func(ctx sdk.Context, tx sdk.Tx, _ bool) (newCtx sdk.Context, err error) { bz, err := s.EncCfg.TxConfig.TxEncoder()(tx) s.Require().NoError(err) diff --git a/tests/app/testappd/cmd/testnet.go b/tests/app/testappd/cmd/testnet.go index 7d780823..8ac17c39 100644 --- a/tests/app/testappd/cmd/testnet.go +++ b/tests/app/testappd/cmd/testnet.go @@ -85,7 +85,7 @@ func addTestnetFlagsToCmd(cmd *cobra.Command) { cmd.Flags().String(flags.FlagKeyType, string(hd.Secp256k1Type), "Key signing algorithm to generate keys for") // support old flags name for backwards compatibility - cmd.Flags().SetNormalizeFunc(func(f *pflag.FlagSet, name string) pflag.NormalizedName { + cmd.Flags().SetNormalizeFunc(func(_ *pflag.FlagSet, name string) pflag.NormalizedName { if name == "algo" { name = flags.FlagKeyType } diff --git a/x/auction/client/cli/query.go b/x/auction/client/cli/query.go index c3e66a22..c81c905f 100644 --- a/x/auction/client/cli/query.go +++ b/x/auction/client/cli/query.go @@ -34,7 +34,7 @@ func CmdQueryParams() *cobra.Command { Use: "params", Short: "Query the current parameters of the auction module", Args: cobra.NoArgs, - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, _ []string) error { clientCtx, err := client.GetClientQueryContext(cmd) if err != nil { return err From 59b2e4f02229e8003157d65a3063a0f535b83d08 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 18:05:19 -0400 Subject: [PATCH 13/15] tidy --- go.mod | 2 -- go.sum | 28 +++------------------------- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index f25e00ec..9b3cce00 100644 --- a/go.mod +++ b/go.mod @@ -44,7 +44,6 @@ require ( 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect cloud.google.com/go v0.112.0 // indirect - cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.5 // indirect cloud.google.com/go/storage v1.36.0 // indirect @@ -329,7 +328,6 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.155.0 // indirect - google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/go.sum b/go.sum index a1725e70..c065749d 100644 --- a/go.sum +++ b/go.sum @@ -72,10 +72,6 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -351,8 +347,7 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= @@ -384,9 +379,8 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= -github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/cncf/xds/go v0.0.0-20240423153145-555b57ec207b h1:ga8SEFjZ60pxLcmhnThWgvH2wg8376yUJmPhEH4H3kw= +github.com/cncf/xds/go v0.0.0-20240423153145-555b57ec207b/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -626,8 +620,6 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -664,8 +656,7 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -1550,8 +1541,6 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1697,7 +1686,6 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= @@ -1859,8 +1847,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1969,12 +1955,8 @@ google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= -google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= -google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -2018,8 +2000,6 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= @@ -2038,8 +2018,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From e324323ac45db4617b64965f24fa1ec90112b3f7 Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 18:57:22 -0400 Subject: [PATCH 14/15] remove --- abci/checktx/mempool_parity_check_tx.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index db492295..fc7f5521 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -131,6 +131,16 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { "max bytes", laneSize, ) + // remove the tx from app side mempool + if txInMempool && isReCheck { + if err := m.mempl.Remove(tx); err != nil { + m.logger.Debug( + "failed to remove tx from app-side mempool when purging for re-check failure", + "removal-err", err, + ) + } + } + return sdkerrors.ResponseCheckTxWithEvents( fmt.Errorf("tx size exceeds max bytes for lane %s", lane.Name()), 0, From 50cd6dc655b684f596cd68b447807d9ce4068b1a Mon Sep 17 00:00:00 2001 From: aljo242 Date: Tue, 2 Jul 2024 19:12:07 -0400 Subject: [PATCH 15/15] cleanup --- abci/checktx/mempool_parity_check_tx.go | 39 +++++++++++++------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/abci/checktx/mempool_parity_check_tx.go b/abci/checktx/mempool_parity_check_tx.go index fc7f5521..aeb9f2f0 100644 --- a/abci/checktx/mempool_parity_check_tx.go +++ b/abci/checktx/mempool_parity_check_tx.go @@ -87,28 +87,35 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { ), nil } - // run the checkTxHandler - res, checkTxError := m.checkTxHandler(req) - - // if re-check fails for a transaction, we'll need to explicitly purge the tx from - // the app-side mempool - if isInvalidCheckTxExecution(res, checkTxError) && isReCheck { - // check if the tx exists first - if txInMempool { + // prepare cleanup closure to remove tx if marked + removeTx := false + defer func() { + if removeTx { // remove the tx if err := m.mempl.Remove(tx); err != nil { m.logger.Debug( "failed to remove tx from app-side mempool when purging for re-check failure", "removal-err", err, - "check-tx-err", checkTxError, ) } } + }() + + // run the checkTxHandler + res, checkTxError := m.checkTxHandler(req) + // if re-check fails for a transaction, we'll need to explicitly purge the tx from + // the app-side mempool + if isInvalidCheckTxExecution(res, checkTxError) && isReCheck && txInMempool { + removeTx = true } sdkCtx := m.GetContextForTx(req) lane, err := m.matchLane(sdkCtx, tx) if err != nil { + if isReCheck && txInMempool { + removeTx = true + } + m.logger.Debug("failed to match lane", "lane", lane, "err", err) return sdkerrors.ResponseCheckTxWithEvents( err, @@ -124,6 +131,10 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { txSize := int64(len(req.Tx)) if txSize > laneSize { + if isReCheck && txInMempool { + removeTx = true + } + m.logger.Debug( "tx size exceeds max block bytes", "tx", tx, @@ -131,16 +142,6 @@ func (m MempoolParityCheckTx) CheckTx() CheckTx { "max bytes", laneSize, ) - // remove the tx from app side mempool - if txInMempool && isReCheck { - if err := m.mempl.Remove(tx); err != nil { - m.logger.Debug( - "failed to remove tx from app-side mempool when purging for re-check failure", - "removal-err", err, - ) - } - } - return sdkerrors.ResponseCheckTxWithEvents( fmt.Errorf("tx size exceeds max bytes for lane %s", lane.Name()), 0,