From 7753d040b8dfabf84feb43d764ee960086056c05 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Fri, 22 Nov 2024 14:39:56 +0200 Subject: [PATCH 1/7] v5.0.2 upgrade handler + tokenfactory tests + increasage of tf gas limit call --- app/app.go | 2 + app/upgrades/v5.0.2/constants.go | 18 ++ app/upgrades/v5.0.2/upgrades.go | 30 +++ app/upgrades/v5.0.2/upgrades_test.go | 37 +++ go.mod | 1 + testutil/test_helpers.go | 10 + x/tokenfactory/keeper/before_send_test.go | 222 ++++++++++++++++++ x/tokenfactory/keeper/keeper_test.go | 10 + .../testdata/infinite_track_beforesend.wasm | Bin 0 -> 143412 bytes x/tokenfactory/keeper/testdata/no100.wasm | Bin 0 -> 195044 bytes x/tokenfactory/types/constants.go | 2 +- 11 files changed, 331 insertions(+), 1 deletion(-) create mode 100644 app/upgrades/v5.0.2/constants.go create mode 100644 app/upgrades/v5.0.2/upgrades.go create mode 100644 app/upgrades/v5.0.2/upgrades_test.go create mode 100644 x/tokenfactory/keeper/testdata/infinite_track_beforesend.wasm create mode 100644 x/tokenfactory/keeper/testdata/no100.wasm diff --git a/app/app.go b/app/app.go index 8d5fab53e..e07388ec8 100644 --- a/app/app.go +++ b/app/app.go @@ -10,6 +10,7 @@ import ( "path/filepath" "time" + v502 "github.com/neutron-org/neutron/v5/app/upgrades/v5.0.2" dynamicfeestypes "github.com/neutron-org/neutron/v5/x/dynamicfees/types" "github.com/skip-mev/feemarket/x/feemarket" @@ -228,6 +229,7 @@ const ( var ( Upgrades = []upgrades.Upgrade{ v500.Upgrade, + v502.Upgrade, } // DefaultNodeHome default home directories for the application daemon diff --git a/app/upgrades/v5.0.2/constants.go b/app/upgrades/v5.0.2/constants.go new file mode 100644 index 000000000..fca497bfd --- /dev/null +++ b/app/upgrades/v5.0.2/constants.go @@ -0,0 +1,18 @@ +package v502 + +import ( + storetypes "cosmossdk.io/store/types" + + "github.com/neutron-org/neutron/v5/app/upgrades" +) + +const ( + // UpgradeName defines the on-chain upgrade name. + UpgradeName = "v5.0.2" +) + +var Upgrade = upgrades.Upgrade{ + UpgradeName: UpgradeName, + CreateUpgradeHandler: CreateUpgradeHandler, + StoreUpgrades: storetypes.StoreUpgrades{}, +} diff --git a/app/upgrades/v5.0.2/upgrades.go b/app/upgrades/v5.0.2/upgrades.go new file mode 100644 index 000000000..c0e20d180 --- /dev/null +++ b/app/upgrades/v5.0.2/upgrades.go @@ -0,0 +1,30 @@ +package v502 + +import ( + "context" + "fmt" + + upgradetypes "cosmossdk.io/x/upgrade/types" + "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + + "github.com/neutron-org/neutron/v5/app/upgrades" +) + +func CreateUpgradeHandler( + _ *module.Manager, + _ module.Configurator, + _ *upgrades.UpgradeKeepers, + _ upgrades.StoreKeys, + _ codec.Codec, +) upgradetypes.UpgradeHandler { + return func(c context.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + ctx := sdk.UnwrapSDKContext(c) + + ctx.Logger().Info("Starting module migrations...") + + ctx.Logger().Info(fmt.Sprintf("Migration {%s} applied", UpgradeName)) + return vm, nil + } +} diff --git a/app/upgrades/v5.0.2/upgrades_test.go b/app/upgrades/v5.0.2/upgrades_test.go new file mode 100644 index 000000000..a9062c5ea --- /dev/null +++ b/app/upgrades/v5.0.2/upgrades_test.go @@ -0,0 +1,37 @@ +package v502_test + +import ( + "testing" + + upgradetypes "cosmossdk.io/x/upgrade/types" + "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" + + v502 "github.com/neutron-org/neutron/v5/app/upgrades/v5.0.2" + "github.com/neutron-org/neutron/v5/testutil" +) + +type UpgradeTestSuite struct { + testutil.IBCConnectionTestSuite +} + +func TestKeeperTestSuite(t *testing.T) { + suite.Run(t, new(UpgradeTestSuite)) +} + +func (suite *UpgradeTestSuite) SetupTest() { + suite.IBCConnectionTestSuite.SetupTest() +} + +func (suite *UpgradeTestSuite) TestOracleUpgrade() { + app := suite.GetNeutronZoneApp(suite.ChainA) + ctx := suite.ChainA.GetContext().WithChainID("neutron-1") + t := suite.T() + + upgrade := upgradetypes.Plan{ + Name: v502.UpgradeName, + Info: "some text here", + Height: 100, + } + require.NoError(t, app.UpgradeKeeper.ApplyUpgrade(ctx, upgrade)) +} diff --git a/go.mod b/go.mod index e64c74dee..2816f7fc5 100644 --- a/go.mod +++ b/go.mod @@ -218,6 +218,7 @@ require ( ) replace ( + cosmossdk.io/math => cosmossdk.io/math v1.4.0 github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 github.com/CosmWasm/wasmd => github.com/neutron-org/wasmd v0.53.0-neutron github.com/cometbft/cometbft => github.com/neutron-org/cometbft v0.0.0-20241111105801-a7fe160b0b62 diff --git a/testutil/test_helpers.go b/testutil/test_helpers.go index de7cb00ba..12b6ede56 100644 --- a/testutil/test_helpers.go +++ b/testutil/test_helpers.go @@ -288,6 +288,16 @@ func (suite *IBCConnectionTestSuite) FundAcc(acc sdk.AccAddress, amounts sdk.Coi suite.Require().NoError(err) } +// FundModuleAcc funds target modules with specified amount. +func (suite *IBCConnectionTestSuite) FundModuleAcc(moduleName string, amounts sdk.Coins) { + bankKeeper := suite.GetNeutronZoneApp(suite.ChainA).BankKeeper + err := bankKeeper.MintCoins(suite.ChainA.GetContext(), tokenfactorytypes.ModuleName, amounts) + suite.Require().NoError(err) + + err = bankKeeper.SendCoinsFromModuleToModule(suite.ChainA.GetContext(), tokenfactorytypes.ModuleName, moduleName, amounts) + suite.Require().NoError(err) +} + // update CCV path with correct info func SetupCCVPath(path *ibctesting.Path, suite *IBCConnectionTestSuite) { // - set provider endpoint's clientID diff --git a/x/tokenfactory/keeper/before_send_test.go b/x/tokenfactory/keeper/before_send_test.go index 3ffd7a0f4..c47560596 100644 --- a/x/tokenfactory/keeper/before_send_test.go +++ b/x/tokenfactory/keeper/before_send_test.go @@ -2,12 +2,17 @@ package keeper_test import ( "encoding/json" + "fmt" "os" "cosmossdk.io/math" + storetypes "cosmossdk.io/store/types" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + dextypes "github.com/neutron-org/neutron/v5/x/dex/types" + icqtypes "github.com/neutron-org/neutron/v5/x/interchainqueries/types" "github.com/neutron-org/neutron/v5/x/tokenfactory/types" ) @@ -46,6 +51,127 @@ func (suite *KeeperTestSuite) initBalanceTrackContract(denom string) (sdk.AccAdd return cosmwasmAddress, codeID, factoryDenom } +type SendMsgTestCase struct { + desc string + msg func(denom string) *banktypes.MsgSend + expectPass bool +} + +func (suite *KeeperTestSuite) TestBeforeSendHook() { + for _, tc := range []struct { + desc string + wasmFile string + sendMsgs []SendMsgTestCase + }{ + { + desc: "should not allow sending 100 amount of *any* denom", + wasmFile: "./testdata/no100.wasm", + sendMsgs: []SendMsgTestCase{ + { + desc: "sending 1 of factorydenom should not error", + msg: func(factorydenom string) *banktypes.MsgSend { + return banktypes.NewMsgSend( + suite.TestAccs[0], + suite.TestAccs[1], + sdk.NewCoins(sdk.NewInt64Coin(factorydenom, 1)), + ) + }, + expectPass: true, + }, + { + desc: "sending 1 of non-factorydenom should not error", + msg: func(factorydenom string) *banktypes.MsgSend { + return banktypes.NewMsgSend( + suite.TestAccs[0], + suite.TestAccs[1], + sdk.NewCoins(sdk.NewInt64Coin("foo", 1)), + ) + }, + expectPass: true, + }, + { + desc: "sending 100 of factorydenom should error", + msg: func(factorydenom string) *banktypes.MsgSend { + return banktypes.NewMsgSend( + suite.TestAccs[0], + suite.TestAccs[1], + sdk.NewCoins(sdk.NewInt64Coin(factorydenom, 100)), + ) + }, + expectPass: false, + }, + { + desc: "sending 100 of non-factorydenom should work", + msg: func(factorydenom string) *banktypes.MsgSend { + return banktypes.NewMsgSend( + suite.TestAccs[0], + suite.TestAccs[1], + sdk.NewCoins(sdk.NewInt64Coin("foo", 100)), + ) + }, + expectPass: true, + }, + { + desc: "having 100 coin within coins should not work", + msg: func(factorydenom string) *banktypes.MsgSend { + return banktypes.NewMsgSend( + suite.TestAccs[0], + suite.TestAccs[1], + sdk.NewCoins(sdk.NewInt64Coin(factorydenom, 100), sdk.NewInt64Coin("foo", 1)), + ) + }, + expectPass: false, + }, + }, + }, + } { + suite.Run(fmt.Sprintf("Case %suite", tc.desc), func() { + // setup test + suite.Setup() + + senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() + suite.TopUpWallet(suite.ChainA.GetContext(), senderAddress, suite.TestAccs[0]) + + // upload and instantiate wasm code + wasmCode, err := os.ReadFile(tc.wasmFile) + suite.Require().NoError(err, "test: %v", tc.desc) + codeID, _, err := suite.contractKeeper.Create(suite.ChainA.GetContext(), suite.TestAccs[0], wasmCode, nil) + suite.Require().NoError(err, "test: %v", tc.desc) + cosmwasmAddress, _, err := suite.contractKeeper.Instantiate(suite.ChainA.GetContext(), codeID, suite.TestAccs[0], suite.TestAccs[0], []byte("{}"), "", sdk.NewCoins()) + suite.Require().NoError(err, "test: %v", tc.desc) + + // create new denom + res, err := suite.msgServer.CreateDenom(suite.ChainA.GetContext(), types.NewMsgCreateDenom(suite.TestAccs[0].String(), "bitcoin")) + suite.Require().NoError(err, "test: %v", tc.desc) + denom := res.GetNewTokenDenom() + + // mint enough coins to the creator + _, err = suite.msgServer.Mint(suite.ChainA.GetContext(), types.NewMsgMint(suite.TestAccs[0].String(), sdk.NewInt64Coin(denom, 1000000000))) + suite.Require().NoError(err) + // mint some non token factory denom coins for testing + suite.FundAcc(sdk.MustAccAddressFromBech32(suite.TestAccs[0].String()), sdk.Coins{sdk.NewInt64Coin("foo", 100000000000)}) + + params := types.DefaultParams() + params.WhitelistedHooks = []*types.WhitelistedHook{{DenomCreator: suite.TestAccs[0].String(), CodeID: 1}} + err = suite.GetNeutronZoneApp(suite.ChainA).TokenFactoryKeeper.SetParams(suite.ChainA.GetContext(), params) + suite.Require().NoError(err) + + // set beforesend hook to the new denom + _, err = suite.msgServer.SetBeforeSendHook(suite.ChainA.GetContext(), types.NewMsgSetBeforeSendHook(suite.TestAccs[0].String(), denom, cosmwasmAddress.String())) + suite.Require().NoError(err, "test: %v", tc.desc) + + for _, sendTc := range tc.sendMsgs { + _, err := suite.bankMsgServer.Send(suite.ChainA.GetContext(), sendTc.msg(denom)) + if sendTc.expectPass { + suite.Require().NoError(err, "test: %v", sendTc.desc) + } else { + suite.Require().Error(err, "test: %v", sendTc.desc) + } + } + }) + } +} + func (suite *KeeperTestSuite) TestTrackBeforeSendWasm() { suite.Setup() @@ -115,3 +241,99 @@ func (suite *KeeperTestSuite) TestNonWhitelistedHooksNotCalled() { // Whitelisted contract is not called suite.Require().Equal("\"0\"", string(queryResp)) } + +// TestInfiniteTrackBeforeSend tests gas metering with infinite loop contract +// to properly test if we are gas metering trackBeforeSend properly. +func (suite *KeeperTestSuite) TestInfiniteTrackBeforeSend() { + for _, tc := range []struct { + name string + wasmFile string + tokenToSend sdk.Coins + useFactoryDenom bool + blockBeforeSend bool + expectedError bool + }{ + { + name: "sending tokenfactory denom from module to module with infinite contract should panic", + wasmFile: "./testdata/infinite_track_beforesend.wasm", + useFactoryDenom: true, + }, + { + name: "sending tokenfactory denom from account to account with infinite contract should panic", + wasmFile: "./testdata/infinite_track_beforesend.wasm", + useFactoryDenom: true, + blockBeforeSend: true, + }, + { + name: "sending non-tokenfactory denom from module to module with infinite contract should not panic", + wasmFile: "./testdata/infinite_track_beforesend.wasm", + tokenToSend: sdk.NewCoins(sdk.NewInt64Coin("foo", 1000000)), + useFactoryDenom: false, + }, + { + name: "Try using no 100", + wasmFile: "./testdata/no100.wasm", + useFactoryDenom: true, + }, + } { + suite.Run(fmt.Sprintf("Case %suite", tc.name), func() { + // setup test + suite.Setup() + + // load wasm file + wasmCode, err := os.ReadFile(tc.wasmFile) + suite.Require().NoError(err) + + // instantiate wasm code + codeID, _, err := suite.contractKeeper.Create(suite.ChainA.GetContext(), suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress(), wasmCode, nil) + suite.Require().NoError(err, "test: %v", tc.name) + cosmwasmAddress, _, err := suite.contractKeeper.Instantiate(suite.ChainA.GetContext(), codeID, suite.TestAccs[0], suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress(), []byte("{}"), "", sdk.NewCoins()) + suite.Require().NoError(err, "test: %v", tc.name) + + params := types.DefaultParams() + params.WhitelistedHooks = []*types.WhitelistedHook{{DenomCreator: suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress().String(), CodeID: 1}} + err = suite.GetNeutronZoneApp(suite.ChainA).TokenFactoryKeeper.SetParams(suite.ChainA.GetContext(), params) + suite.Require().NoError(err) + + // create new denom + res, err := suite.msgServer.CreateDenom(suite.ChainA.GetContext(), types.NewMsgCreateDenom(suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress().String(), "bitcoin")) + suite.Require().NoError(err, "test: %v", tc.name) + factoryDenom := res.GetNewTokenDenom() + + var tokenToSend sdk.Coins + if tc.useFactoryDenom { + tokenToSend = sdk.NewCoins(sdk.NewInt64Coin(factoryDenom, 100)) + } else { + tokenToSend = tc.tokenToSend + } + + // send the mint module tokenToSend + if tc.blockBeforeSend { + suite.FundAcc(suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress(), tokenToSend) + } else { + suite.FundModuleAcc(icqtypes.ModuleName, tokenToSend) + } + + // set beforesend hook to the new denom + // we register infinite loop contract here to test if we are gas metering properly + _, err = suite.msgServer.SetBeforeSendHook(suite.ChainA.GetContext(), types.NewMsgSetBeforeSendHook(suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress().String(), factoryDenom, cosmwasmAddress.String())) + suite.Require().NoError(err, "test: %v", tc.name) + + ctx := suite.ChainA.GetContext().WithGasMeter(storetypes.NewGasMeter(30_000_000)) + + if tc.blockBeforeSend { + err = suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.SendCoins(ctx, suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress(), suite.ChainA.SenderAccounts[1].SenderAccount.GetAddress(), tokenToSend) + suite.Require().Error(err) + } else { + // track before send suppresses in any case, thus we expect no error + err = suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.SendCoinsFromModuleToModule(ctx, icqtypes.ModuleName, dextypes.ModuleName, tokenToSend) + suite.Require().NoError(err) + + // send should happen regardless of trackBeforeSend results + distributionModuleAddress := suite.GetNeutronZoneApp(suite.ChainA).AccountKeeper.GetModuleAddress("dex") + distributionModuleBalances := suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetAllBalances(suite.ChainA.GetContext(), distributionModuleAddress) + suite.Require().True(distributionModuleBalances.Equal(tokenToSend)) + } + }) + } +} diff --git a/x/tokenfactory/keeper/keeper_test.go b/x/tokenfactory/keeper/keeper_test.go index bbf4b0488..31e5beaad 100644 --- a/x/tokenfactory/keeper/keeper_test.go +++ b/x/tokenfactory/keeper/keeper_test.go @@ -4,9 +4,12 @@ import ( "testing" "cosmossdk.io/math" + wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" "github.com/cometbft/cometbft/crypto/ed25519" "github.com/cosmos/cosmos-sdk/baseapp" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/stretchr/testify/suite" @@ -29,6 +32,10 @@ type KeeperTestSuite struct { TestAccs []sdktypes.AccAddress QueryHelper *baseapp.QueryServiceTestHelper + contractKeeper wasmtypes.ContractOpsKeeper + + bankMsgServer banktypes.MsgServer + queryClient types.QueryClient msgServer types.MsgServer // defaultDenom is on the suite, as it depends on the creator test address. @@ -61,7 +68,10 @@ func (suite *KeeperTestSuite) Setup() { )) suite.Require().NoError(err) + suite.bankMsgServer = bankkeeper.NewMsgServerImpl(suite.GetNeutronZoneApp(suite.ChainA).BankKeeper) suite.msgServer = keeper.NewMsgServerImpl(*tokenFactoryKeeper) + + suite.contractKeeper = wasmkeeper.NewDefaultPermissionKeeper(suite.GetNeutronZoneApp(suite.ChainA).WasmKeeper) } func (suite *KeeperTestSuite) SetupTokenFactory() { diff --git a/x/tokenfactory/keeper/testdata/infinite_track_beforesend.wasm b/x/tokenfactory/keeper/testdata/infinite_track_beforesend.wasm new file mode 100644 index 0000000000000000000000000000000000000000..44bf738f1cde3ee2f4558ad039995a97e9d306b5 GIT binary patch literal 143412 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 PBLD(>iF|-j#c}@u>>hmv literal 0 HcmV?d00001 diff --git a/x/tokenfactory/keeper/testdata/no100.wasm b/x/tokenfactory/keeper/testdata/no100.wasm new file mode 100644 index 0000000000000000000000000000000000000000..57de535ebb5c5d1bc2e34b14c0383bdf5b958cfc GIT binary patch literal 195044 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 z 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 Cpo3^QTUVfxx4+ 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 a{(JfKr6(qr?DQ{j{g`V8c2C#J;{OYR@jqq& literal 0 HcmV?d00001 diff --git a/x/tokenfactory/types/constants.go b/x/tokenfactory/types/constants.go index 066fcad70..eeca93fcf 100644 --- a/x/tokenfactory/types/constants.go +++ b/x/tokenfactory/types/constants.go @@ -2,4 +2,4 @@ package types const ConsensusVersion = 2 -var TrackBeforeSendGasLimit = uint64(100_000) +var TrackBeforeSendGasLimit = uint64(500_000) From 810f87f07948ae572a9e83818bcb49a1f3fe0430 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Fri, 22 Nov 2024 15:16:32 +0200 Subject: [PATCH 2/7] upd deps --- go.mod | 45 ++++++++++++------------ go.sum | 107 ++++++++++++++++++++++----------------------------------- 2 files changed, 63 insertions(+), 89 deletions(-) diff --git a/go.mod b/go.mod index 2816f7fc5..16e84cbce 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/neutron-org/neutron/v5 -go 1.22.6 +go 1.22.7 + +toolchain go1.22.9 require ( cosmossdk.io/client/v2 v2.0.0-beta.4 @@ -8,24 +10,24 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/log v1.4.1 cosmossdk.io/math v1.4.0 - cosmossdk.io/store v1.1.0 + cosmossdk.io/store v1.1.1 cosmossdk.io/x/evidence v0.1.1 cosmossdk.io/x/feegrant v0.1.1 cosmossdk.io/x/tx v0.13.5 cosmossdk.io/x/upgrade v0.1.4 github.com/CosmWasm/wasmd v0.53.0 github.com/CosmWasm/wasmvm/v2 v2.1.3 - github.com/cometbft/cometbft v0.38.11 + github.com/cometbft/cometbft v0.38.15 github.com/cosmos/admin-module/v2 v2.0.0-20240430142959-8b3328d1b1a2 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.50.9 + github.com/cosmos/cosmos-sdk v0.50.10 github.com/cosmos/gogoproto v1.7.0 github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.2 github.com/cosmos/ibc-go/modules/capability v1.0.1 github.com/cosmos/ibc-go/v8 v8.5.2 github.com/cosmos/ics23/go v0.11.0 - github.com/cosmos/interchain-security/v5 v5.1.1 + github.com/cosmos/interchain-security/v5 v5.2.0 github.com/gogo/protobuf v1.3.3 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 @@ -38,7 +40,7 @@ require ( github.com/rs/zerolog v1.33.0 github.com/skip-mev/block-sdk/v2 v2.1.5 github.com/skip-mev/feemarket v1.1.1 - github.com/skip-mev/slinky v1.0.12 + github.com/skip-mev/slinky v1.0.13 github.com/spf13/cast v1.7.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 @@ -72,8 +74,6 @@ require ( github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.13.0 // indirect - github.com/btcsuite/btcd v0.22.0-beta // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect @@ -84,7 +84,7 @@ require ( github.com/cockroachdb/pebble v1.1.1 // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect - github.com/cometbft/cometbft-db v0.12.0 // indirect + github.com/cometbft/cometbft-db v0.14.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect @@ -92,7 +92,7 @@ require ( github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.2.0 // 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/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v4 v4.2.0 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect @@ -115,7 +115,7 @@ require ( github.com/golang/glog v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect - github.com/google/btree v1.1.2 // indirect + github.com/google/btree v1.1.3 // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect @@ -156,7 +156,7 @@ require ( github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/minio/highwayhash v1.0.2 // indirect + github.com/minio/highwayhash v1.0.3 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -167,17 +167,17 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/oxyno-zeta/gomock-extra-matcher v1.2.0 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect - github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect + github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/common v0.60.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.8.3 // indirect + github.com/rs/cors v1.11.1 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/sasha-s/go-deadlock v0.3.1 // indirect + github.com/sasha-s/go-deadlock v0.3.5 // indirect github.com/shamaton/msgpack/v2 v2.2.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect @@ -198,12 +198,12 @@ require ( go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/crypto v0.26.0 // indirect - golang.org/x/net v0.28.0 // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/term v0.25.0 // indirect golang.org/x/text v0.19.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.186.0 // indirect @@ -221,12 +221,11 @@ replace ( cosmossdk.io/math => cosmossdk.io/math v1.4.0 github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 github.com/CosmWasm/wasmd => github.com/neutron-org/wasmd v0.53.0-neutron - github.com/cometbft/cometbft => github.com/neutron-org/cometbft v0.0.0-20241111105801-a7fe160b0b62 + github.com/btcsuite/btcd/btcec/v2 => github.com/btcsuite/btcd/btcec/v2 v2.3.2 github.com/cosmos/admin-module/v2 => github.com/neutron-org/admin-module/v2 v2.0.2 - github.com/cosmos/cosmos-sdk => github.com/neutron-org/cosmos-sdk v0.50.9-neutron.0.20240924163649-207f347e9c53 + github.com/cosmos/cosmos-sdk => github.com/neutron-org/cosmos-sdk v0.50.10-neutron // explicitely replace iavl to v1.2.0 cause sometimes go mod tidy uses not right version github.com/cosmos/iavl => github.com/cosmos/iavl v1.2.0 - github.com/cosmos/interchain-security/v5 => github.com/cosmos/interchain-security/v5 v5.0.0-20240802125602-fa1e09444aae github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/prometheus/procfs => github.com/prometheus/procfs v0.12.0 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 diff --git a/go.sum b/go.sum index 206c16b78..00c6e66db 100644 --- a/go.sum +++ b/go.sum @@ -202,8 +202,8 @@ cosmossdk.io/log v1.4.1 h1:wKdjfDRbDyZRuWa8M+9nuvpVYxrEOwbD/CA8hvhU8QM= cosmossdk.io/log v1.4.1/go.mod h1:k08v0Pyq+gCP6phvdI6RCGhLf/r425UT6Rk/m+o74rU= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= -cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= -cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= +cosmossdk.io/store v1.1.1 h1:NA3PioJtWDVU7cHHeyvdva5J/ggyLDkyH0hGHl2804Y= +cosmossdk.io/store v1.1.1/go.mod h1:8DwVTz83/2PSI366FERGbWSH7hL6sB7HbYp8bqksNwM= cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= @@ -241,9 +241,8 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= -github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/adlio/schema v1.3.6 h1:k1/zc2jNfeiZBA5aFTRy37jlBIuCkXCm0XmvpzCKI9I= +github.com/adlio/schema v1.3.6/go.mod h1:qkxwLgPBd1FgLRHYVCmQT/rrBr3JH38J9LjmVzWNudg= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -275,23 +274,11 @@ github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta h1:LTDpDKUM5EeOFBPM8IXpinEcmZ6FWfNZbE3lfrfdnWo= -github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= -github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= @@ -346,8 +333,10 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft-db v0.12.0 h1:v77/z0VyfSU7k682IzZeZPFZrQAKiQwkqGN0QzAjMi0= -github.com/cometbft/cometbft-db v0.12.0/go.mod h1:aX2NbCrjNVd2ZajYxt1BsiFf/Z+TQ2MN0VxdicheYuw= +github.com/cometbft/cometbft v0.38.15 h1:5veFd8k1uXM27PBg9sMO3hAfRJ3vbh4OmmLf6cVrqXg= +github.com/cometbft/cometbft v0.38.15/go.mod h1:+wh6ap6xctVG+JOHwbl8pPKZ0GeqdPYqISu7F4b43cQ= +github.com/cometbft/cometbft-db v0.14.1 h1:SxoamPghqICBAIcGpleHbmoPqy+crij/++eZz3DlerQ= +github.com/cometbft/cometbft-db v0.14.1/go.mod h1:KHP1YghilyGV/xjD5DP3+2hyigWx0WTp9X+0Gnx0RxQ= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -379,8 +368,8 @@ github.com/cosmos/ibc-go/v8 v8.5.2 h1:27s9oeD2AxLQF3e9BQsYt9doONyZ7FwZi/qkBv6Sdk github.com/cosmos/ibc-go/v8 v8.5.2/go.mod h1:P5hkAvq0Qbg0h18uLxDVA9q1kOJ0l36htMsskiNwXbo= github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= -github.com/cosmos/interchain-security/v5 v5.0.0-20240802125602-fa1e09444aae h1:/EWV9qryltapge0v4ctvl2jV3Nne5nsbd+GYblj/jWA= -github.com/cosmos/interchain-security/v5 v5.0.0-20240802125602-fa1e09444aae/go.mod h1:P3TM8JmE9Q20Jfch3jnFcQ4IXJp5twueRnUudi6XEGI= +github.com/cosmos/interchain-security/v5 v5.2.0 h1:ZB4sMH5kG4Fmuk+WLKykXv8qSSoafo1eVlSo0G5scKE= +github.com/cosmos/interchain-security/v5 v5.2.0/go.mod h1:vmeTcTxFCl1eV0o6xpl/IRT7Basz0szVVGzbppnInMg= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= @@ -391,16 +380,14 @@ 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/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE= github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= 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/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= 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/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= @@ -563,8 +550,8 @@ github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXi github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 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= -github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw= github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -729,8 +716,6 @@ 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/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -742,7 +727,6 @@ github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -757,7 +741,6 @@ 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/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= 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.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= @@ -806,8 +789,8 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= 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= +github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= +github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -845,10 +828,8 @@ github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/neutron-org/admin-module/v2 v2.0.2 h1:XDDFWjvkVBKRf3lBFCazT1zAXZ3dHX8GaZ4ol8Hdk8I= github.com/neutron-org/admin-module/v2 v2.0.2/go.mod h1:RfOyabXsdJ5btcOKyKPZDYiZhtuKFubbJMOb8EJZtvA= -github.com/neutron-org/cometbft v0.0.0-20241111105801-a7fe160b0b62 h1:erXDgRxrEtWScO9i8ZYjr0cnjxTJ0BT+WrUsRMbMVSU= -github.com/neutron-org/cometbft v0.0.0-20241111105801-a7fe160b0b62/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= -github.com/neutron-org/cosmos-sdk v0.50.9-neutron.0.20240924163649-207f347e9c53 h1:7FJOHOt9F0oea0b5jrn090u/zn7+LdBmT6ZDmrJtTqs= -github.com/neutron-org/cosmos-sdk v0.50.9-neutron.0.20240924163649-207f347e9c53/go.mod h1:TMH6wpoYBcg7Cp5BEg8fneLr+8XloNQkf2MRNF9V6JE= +github.com/neutron-org/cosmos-sdk v0.50.10-neutron h1:1q8P0l29Mm22m8wUstKlCZpKScJOa5bFFqkO/RbHL5w= +github.com/neutron-org/cosmos-sdk v0.50.10-neutron/go.mod h1:6Eesrx3ZE7vxBZWpK++30H+Uc7Q4ahQWCL7JKU/LEdU= github.com/neutron-org/wasmd v0.53.0-neutron h1:Dv1VP1+QjYeb6RMo03sxw0Pe42JU0MPxefwNaG22KVs= github.com/neutron-org/wasmd v0.53.0-neutron/go.mod h1:FJl/aWjdpGof3usAMFQpDe07Rkx77PUzp0cygFMOvtw= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -868,7 +849,6 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= 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= @@ -879,8 +859,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= -github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= -github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= +github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= @@ -901,9 +881,8 @@ github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtP 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-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= -github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -940,8 +919,8 @@ 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.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -956,8 +935,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= +github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= @@ -969,8 +948,8 @@ github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgY github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= -github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= +github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shamaton/msgpack/v2 v2.2.0 h1:IP1m01pHwCrMa6ZccP9B3bqxEMKMSmMVAVKk54g3L/Y= github.com/shamaton/msgpack/v2 v2.2.0/go.mod h1:6khjYnkx73f7VQU7wjcFS9DFjs+59naVWJv1TB7qdOI= @@ -987,8 +966,8 @@ github.com/skip-mev/chaintestutil v0.0.0-20240514161515-056d7ba45610 h1:4JlsiRVt github.com/skip-mev/chaintestutil v0.0.0-20240514161515-056d7ba45610/go.mod h1:kB8gFZX07CyJnw8q9iEZijI3qJTIe1K/Y++P5VGkrcg= github.com/skip-mev/feemarket v1.1.1 h1:L34K7N2J6o635kzNYRAvQ93+hAFtSiJ2t03jmaNx0zw= github.com/skip-mev/feemarket v1.1.1/go.mod h1:DUa6djUsTeMOrbrcIZqWSVxU9IZNCXp96ruaojyBNpc= -github.com/skip-mev/slinky v1.0.12 h1:qmZHB6c5fgDhO/pv67YcZc2M25t3gZcceVmJtA9zjOo= -github.com/skip-mev/slinky v1.0.12/go.mod h1:8mxMdQ8MY8QAxgxLvUKTfDwX6XCAUeqZwkU/r+ZsELU= +github.com/skip-mev/slinky v1.0.13 h1:Ym+xqrhq1kJzyyJICGc2gB43+EETGy72sumZUU1wCt8= +github.com/skip-mev/slinky v1.0.13/go.mod h1:OgOJivOCJQqjGefvoe/kzszCJKgK/hrXluoPiGJHTwU= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -1111,7 +1090,6 @@ go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -1119,13 +1097,11 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1166,7 +1142,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1227,8 +1202,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1281,7 +1256,6 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1367,13 +1341,14 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 50c5ceef9940ba1767cac3e28406fd0010f8b223 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Fri, 22 Nov 2024 15:27:02 +0200 Subject: [PATCH 3/7] upgrades --- app/upgrades/v5.0.2/upgrades.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/upgrades/v5.0.2/upgrades.go b/app/upgrades/v5.0.2/upgrades.go index c0e20d180..a783821b4 100644 --- a/app/upgrades/v5.0.2/upgrades.go +++ b/app/upgrades/v5.0.2/upgrades.go @@ -13,8 +13,8 @@ import ( ) func CreateUpgradeHandler( - _ *module.Manager, - _ module.Configurator, + mm *module.Manager, + configurator module.Configurator, _ *upgrades.UpgradeKeepers, _ upgrades.StoreKeys, _ codec.Codec, @@ -24,6 +24,11 @@ func CreateUpgradeHandler( ctx.Logger().Info("Starting module migrations...") + vm, err := mm.RunMigrations(ctx, configurator, vm) + if err != nil { + return vm, err + } + ctx.Logger().Info(fmt.Sprintf("Migration {%s} applied", UpgradeName)) return vm, nil } From 0f9cb22ce5160b8d5fa2c89f34807d743ca56b5e Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Fri, 22 Nov 2024 15:41:17 +0200 Subject: [PATCH 4/7] remove unnecessary replace --- go.mod | 1 - 1 file changed, 1 deletion(-) diff --git a/go.mod b/go.mod index 16e84cbce..575826094 100644 --- a/go.mod +++ b/go.mod @@ -218,7 +218,6 @@ require ( ) replace ( - cosmossdk.io/math => cosmossdk.io/math v1.4.0 github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 github.com/CosmWasm/wasmd => github.com/neutron-org/wasmd v0.53.0-neutron github.com/btcsuite/btcd/btcec/v2 => github.com/btcsuite/btcd/btcec/v2 v2.3.2 From fa76dff78c2313110ad5551988d7da2ec3cae295 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Fri, 22 Nov 2024 16:21:41 +0200 Subject: [PATCH 5/7] upd deps --- go.mod | 1 + go.sum | 4 ++-- x/tokenfactory/keeper/before_send_test.go | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 575826094..d8d10f339 100644 --- a/go.mod +++ b/go.mod @@ -225,6 +225,7 @@ replace ( github.com/cosmos/cosmos-sdk => github.com/neutron-org/cosmos-sdk v0.50.10-neutron // explicitely replace iavl to v1.2.0 cause sometimes go mod tidy uses not right version github.com/cosmos/iavl => github.com/cosmos/iavl v1.2.0 + github.com/cosmos/interchain-security/v5 => github.com/cosmos/interchain-security/v5 v5.0.0-20240802125602-fa1e09444aae github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/prometheus/procfs => github.com/prometheus/procfs v0.12.0 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 diff --git a/go.sum b/go.sum index 00c6e66db..9c5d098c2 100644 --- a/go.sum +++ b/go.sum @@ -368,8 +368,8 @@ github.com/cosmos/ibc-go/v8 v8.5.2 h1:27s9oeD2AxLQF3e9BQsYt9doONyZ7FwZi/qkBv6Sdk github.com/cosmos/ibc-go/v8 v8.5.2/go.mod h1:P5hkAvq0Qbg0h18uLxDVA9q1kOJ0l36htMsskiNwXbo= github.com/cosmos/ics23/go v0.11.0 h1:jk5skjT0TqX5e5QJbEnwXIS2yI2vnmLOgpQPeM5RtnU= github.com/cosmos/ics23/go v0.11.0/go.mod h1:A8OjxPE67hHST4Icw94hOxxFEJMBG031xIGF/JHNIY0= -github.com/cosmos/interchain-security/v5 v5.2.0 h1:ZB4sMH5kG4Fmuk+WLKykXv8qSSoafo1eVlSo0G5scKE= -github.com/cosmos/interchain-security/v5 v5.2.0/go.mod h1:vmeTcTxFCl1eV0o6xpl/IRT7Basz0szVVGzbppnInMg= +github.com/cosmos/interchain-security/v5 v5.0.0-20240802125602-fa1e09444aae h1:/EWV9qryltapge0v4ctvl2jV3Nne5nsbd+GYblj/jWA= +github.com/cosmos/interchain-security/v5 v5.0.0-20240802125602-fa1e09444aae/go.mod h1:P3TM8JmE9Q20Jfch3jnFcQ4IXJp5twueRnUudi6XEGI= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= diff --git a/x/tokenfactory/keeper/before_send_test.go b/x/tokenfactory/keeper/before_send_test.go index c47560596..30dfc9160 100644 --- a/x/tokenfactory/keeper/before_send_test.go +++ b/x/tokenfactory/keeper/before_send_test.go @@ -65,7 +65,7 @@ func (suite *KeeperTestSuite) TestBeforeSendHook() { }{ { desc: "should not allow sending 100 amount of *any* denom", - wasmFile: "./testdata/no100.wasm", + wasmFile: "./testdata/no100.wasm", // https://github.com/neutron-org/neutron-dev-contracts/tree/chore/additional-tf-test-contracts/contracts/no100 sendMsgs: []SendMsgTestCase{ { desc: "sending 1 of factorydenom should not error", @@ -255,7 +255,7 @@ func (suite *KeeperTestSuite) TestInfiniteTrackBeforeSend() { }{ { name: "sending tokenfactory denom from module to module with infinite contract should panic", - wasmFile: "./testdata/infinite_track_beforesend.wasm", + wasmFile: "./testdata/infinite_track_beforesend.wasm", // https://github.com/neutron-org/neutron-dev-contracts/tree/chore/additional-tf-test-contracts/contracts/infinite-track-beforesend useFactoryDenom: true, }, { @@ -272,7 +272,7 @@ func (suite *KeeperTestSuite) TestInfiniteTrackBeforeSend() { }, { name: "Try using no 100", - wasmFile: "./testdata/no100.wasm", + wasmFile: "./testdata/no100.wasm", // https://github.com/neutron-org/neutron-dev-contracts/tree/chore/additional-tf-test-contracts/contracts/no100 useFactoryDenom: true, }, } { From d5e86d2c8d8c35a5a11ab34e9e4900ec28058a31 Mon Sep 17 00:00:00 2001 From: Andrei Zavgorodnii Date: Sat, 23 Nov 2024 18:13:46 +0000 Subject: [PATCH 6/7] added an explanatory comment for the TrackBeforeSendGasLimit value increase --- x/tokenfactory/types/constants.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/x/tokenfactory/types/constants.go b/x/tokenfactory/types/constants.go index eeca93fcf..350fe3122 100644 --- a/x/tokenfactory/types/constants.go +++ b/x/tokenfactory/types/constants.go @@ -2,4 +2,6 @@ package types const ConsensusVersion = 2 +// TrackBeforeSendGasLimit value is increased to allow existing approved tokenfactory hooks to work properly. +// In the next coordinated upgrade, this will become a chain parameter. var TrackBeforeSendGasLimit = uint64(500_000) From cca46e0ec4e4ad2b1b20fed7b3ea04a813659fbc Mon Sep 17 00:00:00 2001 From: Mike Mozhaev Date: Sat, 23 Nov 2024 20:25:42 +0200 Subject: [PATCH 7/7] Update x/tokenfactory/keeper/before_send_test.go Co-authored-by: swelf19 <62722506+swelf19@users.noreply.github.com> --- x/tokenfactory/keeper/before_send_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/tokenfactory/keeper/before_send_test.go b/x/tokenfactory/keeper/before_send_test.go index 30dfc9160..3887ccabb 100644 --- a/x/tokenfactory/keeper/before_send_test.go +++ b/x/tokenfactory/keeper/before_send_test.go @@ -330,7 +330,7 @@ func (suite *KeeperTestSuite) TestInfiniteTrackBeforeSend() { suite.Require().NoError(err) // send should happen regardless of trackBeforeSend results - distributionModuleAddress := suite.GetNeutronZoneApp(suite.ChainA).AccountKeeper.GetModuleAddress("dex") + distributionModuleAddress := suite.GetNeutronZoneApp(suite.ChainA).AccountKeeper.GetModuleAddress(dextypes.ModuleName) distributionModuleBalances := suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetAllBalances(suite.ChainA.GetContext(), distributionModuleAddress) suite.Require().True(distributionModuleBalances.Equal(tokenToSend)) }