diff --git a/Dockerfile b/Dockerfile index ed7c8d885e..729e41de2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,5 @@ # syntax=docker/dockerfile:1 - - -FROM golang:1.23-alpine AS is-builder +FROM golang:1.24-alpine AS is-builder ENV PACKAGES curl make git libc-dev bash gcc linux-headers RUN apk add --no-cache $PACKAGES diff --git a/Makefile b/Makefile index e69baff909..ed36653096 100644 --- a/Makefile +++ b/Makefile @@ -201,6 +201,8 @@ BUILD_TARGETS := build build: BUILD_ARGS=-o $(BUILDDIR)/ +.PHONY: build + $(BUILD_TARGETS): go.sum $(BUILDDIR)/ go $@ -mod=readonly $(BUILD_FLAGS) $(BUILD_ARGS) ./... diff --git a/app/consumer-democracy/abci.go b/app/consumer-democracy/abci.go index f0020562aa..6653a5fa1d 100644 --- a/app/consumer-democracy/abci.go +++ b/app/consumer-democracy/abci.go @@ -9,7 +9,7 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) type ( @@ -37,7 +37,7 @@ func (h *VoteExtensionHandler) SetHandlers(bApp *baseapp.BaseApp) { } func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { - return func(_ sdk.Context, req *abci.RequestExtendVote) (*abci.ResponseExtendVote, error) { + return func(_ sdk.Context, req *abci.ExtendVoteRequest) (*abci.ExtendVoteResponse, error) { buf := make([]byte, 1024) _, err := rand.Read(buf) @@ -56,29 +56,29 @@ func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { return nil, fmt.Errorf("failed to encode vote extension: %w", err) } - return &abci.ResponseExtendVote{VoteExtension: bz}, nil + return &abci.ExtendVoteResponse{VoteExtension: bz}, nil } } func (h *VoteExtensionHandler) VerifyVoteExtension() sdk.VerifyVoteExtensionHandler { - return func(ctx sdk.Context, req *abci.RequestVerifyVoteExtension) (*abci.ResponseVerifyVoteExtension, error) { + return func(ctx sdk.Context, req *abci.VerifyVoteExtensionRequest) (*abci.VerifyVoteExtensionResponse, error) { var ve VoteExtension if err := json.Unmarshal(req.VoteExtension, &ve); err != nil { - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } switch { case req.Height != ve.Height: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case !bytes.Equal(req.Hash, ve.Hash): - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case len(ve.Data) != 1024: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_ACCEPT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_ACCEPT}, nil } } diff --git a/app/consumer-democracy/app.go b/app/consumer-democracy/app.go index f750c902b2..fa9d39133b 100644 --- a/app/consumer-democracy/app.go +++ b/app/consumer-democracy/app.go @@ -24,22 +24,23 @@ import ( // ibctestingtypes "github.com/cosmos/ibc-go/v10/testing/types" "github.com/spf13/cast" + "github.com/cosmos/cosmos-sdk/x/evidence" + evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + "github.com/cosmos/cosmos-sdk/x/feegrant" + feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" + feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" + autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" "cosmossdk.io/client/v2/autocli" "cosmossdk.io/core/appmodule" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/evidence" - evidencekeeper "cosmossdk.io/x/evidence/keeper" - evidencetypes "cosmossdk.io/x/evidence/types" - "cosmossdk.io/x/feegrant" - feegrantkeeper "cosmossdk.io/x/feegrant/keeper" - feegrantmodule "cosmossdk.io/x/feegrant/module" // add mint - "cosmossdk.io/x/upgrade" - upgradekeeper "cosmossdk.io/x/upgrade/keeper" - upgradetypes "cosmossdk.io/x/upgrade/types" + "github.com/cosmos/cosmos-sdk/x/upgrade" + upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -102,9 +103,9 @@ import ( stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmjson "github.com/cometbft/cometbft/libs/json" - tmos "github.com/cometbft/cometbft/libs/os" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmjson "github.com/cometbft/cometbft/v2/libs/json" + tmos "github.com/cometbft/cometbft/v2/libs/os" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -420,7 +421,6 @@ func New( app.IBCKeeper = ibckeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibchost.StoreKey]), - app.GetSubspace(ibchost.ModuleName), app.UpgradeKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -463,7 +463,6 @@ func New( app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibctransfertypes.StoreKey]), - app.GetSubspace(ibctransfertypes.ModuleName), app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper, app.MsgServiceRouter(), @@ -734,7 +733,7 @@ func New( // Name returns the name of the App func (app *App) Name() string { return app.BaseApp.Name() } -func (app *App) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) { +func (app *App) PreBlocker(ctx sdk.Context, _ *abci.FinalizeBlockRequest) (*sdk.ResponsePreBlock, error) { return app.MM.PreBlock(ctx) } @@ -749,7 +748,7 @@ func (app *App) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) { } // InitChainer application update at chain initialization -func (app *App) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) { +func (app *App) InitChainer(ctx sdk.Context, req *abci.InitChainRequest) (*abci.InitChainResponse, error) { var genesisState GenesisState if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { panic(err) diff --git a/app/consumer-democracy/export.go b/app/consumer-democracy/export.go index 9f73ae654d..8b3d06838c 100644 --- a/app/consumer-democracy/export.go +++ b/app/consumer-democracy/export.go @@ -8,7 +8,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" ) // ExportAppStateAndValidators exports the state of the application for a genesis diff --git a/app/consumer/abci.go b/app/consumer/abci.go index f0020562aa..6653a5fa1d 100644 --- a/app/consumer/abci.go +++ b/app/consumer/abci.go @@ -9,7 +9,7 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) type ( @@ -37,7 +37,7 @@ func (h *VoteExtensionHandler) SetHandlers(bApp *baseapp.BaseApp) { } func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { - return func(_ sdk.Context, req *abci.RequestExtendVote) (*abci.ResponseExtendVote, error) { + return func(_ sdk.Context, req *abci.ExtendVoteRequest) (*abci.ExtendVoteResponse, error) { buf := make([]byte, 1024) _, err := rand.Read(buf) @@ -56,29 +56,29 @@ func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { return nil, fmt.Errorf("failed to encode vote extension: %w", err) } - return &abci.ResponseExtendVote{VoteExtension: bz}, nil + return &abci.ExtendVoteResponse{VoteExtension: bz}, nil } } func (h *VoteExtensionHandler) VerifyVoteExtension() sdk.VerifyVoteExtensionHandler { - return func(ctx sdk.Context, req *abci.RequestVerifyVoteExtension) (*abci.ResponseVerifyVoteExtension, error) { + return func(ctx sdk.Context, req *abci.VerifyVoteExtensionRequest) (*abci.VerifyVoteExtensionResponse, error) { var ve VoteExtension if err := json.Unmarshal(req.VoteExtension, &ve); err != nil { - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } switch { case req.Height != ve.Height: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case !bytes.Equal(req.Hash, ve.Hash): - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case len(ve.Data) != 1024: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_ACCEPT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_ACCEPT}, nil } } diff --git a/app/consumer/ante/disabled_modules_ante_test.go b/app/consumer/ante/disabled_modules_ante_test.go index 510ed2812c..a4a628f774 100644 --- a/app/consumer/ante/disabled_modules_ante_test.go +++ b/app/consumer/ante/disabled_modules_ante_test.go @@ -6,7 +6,7 @@ import ( ibcclienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" "github.com/stretchr/testify/require" - evidencetypes "cosmossdk.io/x/evidence/types" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/authz" diff --git a/app/consumer/ante/msg_filter_ante.go b/app/consumer/ante/msg_filter_ante.go index 52b16bba27..59bae33d0a 100644 --- a/app/consumer/ante/msg_filter_ante.go +++ b/app/consumer/ante/msg_filter_ante.go @@ -32,15 +32,15 @@ func (mfd MsgFilterDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bo // If the CCV channel has not yet been established, then we must only allow certain // message types. if _, ok := mfd.ConsumerKeeper.GetProviderChannel(ctx); !ok { - if !hasValidMsgsPreCCV(tx.GetMsgs()) { - return ctx, fmt.Errorf("tx contains unsupported message types at height %d", currHeight) + if valid, msg := hasValidMsgsPreCCV(tx.GetMsgs()); !valid { + return ctx, fmt.Errorf("tx contains unsupported message (%s) types at height %d", msg, currHeight) } } return next(ctx, tx, simulate) } -func hasValidMsgsPreCCV(msgs []sdk.Msg) bool { +func hasValidMsgsPreCCV(msgs []sdk.Msg) (bool, string) { for _, msg := range msgs { msgType := sdk.MsgTypeURL(msg) @@ -48,9 +48,9 @@ func hasValidMsgsPreCCV(msgs []sdk.Msg) bool { // Note, rather than listing out all possible IBC message types, we assume // all IBC message types have a correct and canonical prefix -- /ibc.* if !strings.HasPrefix(msgType, "/ibc.") { - return false + return false, msgType } } - return true + return true, "" } diff --git a/app/consumer/app.go b/app/consumer/app.go index 2f176e18a9..8c87ccf70a 100644 --- a/app/consumer/app.go +++ b/app/consumer/app.go @@ -21,21 +21,22 @@ import ( ibctesting "github.com/cosmos/ibc-go/v10/testing" "github.com/spf13/cast" + "github.com/cosmos/cosmos-sdk/x/evidence" + evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + "github.com/cosmos/cosmos-sdk/x/feegrant" + feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" + feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" + "github.com/cosmos/cosmos-sdk/x/upgrade" + upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" "cosmossdk.io/client/v2/autocli" "cosmossdk.io/core/appmodule" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/evidence" - evidencekeeper "cosmossdk.io/x/evidence/keeper" - evidencetypes "cosmossdk.io/x/evidence/types" - "cosmossdk.io/x/feegrant" - feegrantkeeper "cosmossdk.io/x/feegrant/keeper" - feegrantmodule "cosmossdk.io/x/feegrant/module" - "cosmossdk.io/x/upgrade" - upgradekeeper "cosmossdk.io/x/upgrade/keeper" - upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -84,9 +85,9 @@ import ( slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - abci "github.com/cometbft/cometbft/abci/types" - tmjson "github.com/cometbft/cometbft/libs/json" - tmos "github.com/cometbft/cometbft/libs/os" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmjson "github.com/cometbft/cometbft/v2/libs/json" + tmos "github.com/cometbft/cometbft/v2/libs/os" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -339,7 +340,6 @@ func New( app.IBCKeeper = ibckeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibchost.StoreKey]), - app.GetSubspace(ibchost.ModuleName), app.UpgradeKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -369,7 +369,6 @@ func New( app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibctransfertypes.StoreKey]), - app.GetSubspace(ibctransfertypes.ModuleName), app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper, app.MsgServiceRouter(), @@ -589,7 +588,7 @@ func New( // Name returns the name of the App func (app *App) Name() string { return app.BaseApp.Name() } -func (app *App) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) { +func (app *App) PreBlocker(ctx sdk.Context, _ *abci.FinalizeBlockRequest) (*sdk.ResponsePreBlock, error) { return app.MM.PreBlock(ctx) } @@ -604,7 +603,7 @@ func (app *App) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) { } // InitChainer application update at chain initialization -func (app *App) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) { +func (app *App) InitChainer(ctx sdk.Context, req *abci.InitChainRequest) (*abci.InitChainResponse, error) { var genesisState GenesisState if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { panic(err) diff --git a/app/consumer/export.go b/app/consumer/export.go index c8fd545f05..38ef950eff 100644 --- a/app/consumer/export.go +++ b/app/consumer/export.go @@ -8,7 +8,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" ) // ExportAppStateAndValidators implements the simapp app interface diff --git a/app/consumer/genesis_test.go b/app/consumer/genesis_test.go index 62d17094e4..ae8abfb7fb 100644 --- a/app/consumer/genesis_test.go +++ b/app/consumer/genesis_test.go @@ -133,21 +133,18 @@ var consumerGenesisStates map[string]string = map[string]string{ }, "initial_val_set": [ { - "pub_key": { - "ed25519": "RrclQz9bIhkIy/gfL485g3PYMeiIku4qeo495787X10=" - }, + "pubKeyType": "ed25519", + "pubKeyBytes": "RrclQz9bIhkIy/gfL485g3PYMeiIku4qeo495787X10=", "power": "500" }, { - "pub_key": { - "ed25519": "Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is=" - }, + "pubKeyType": "ed25519", + "pubKeyBytes": "Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is=", "power": "500" }, { - "pub_key": { - "ed25519": "mAN6RXYxSM4MNGSIriYiS7pHuwAcOHDQAy9/wnlSzOI=" - }, + "pubKeyType": "ed25519", + "pubKeyBytes": "mAN6RXYxSM4MNGSIriYiS7pHuwAcOHDQAy9/wnlSzOI=", "power": "500" } ] @@ -255,21 +252,18 @@ var consumerGenesisStates map[string]string = map[string]string{ }, "initial_val_set": [ { - "pub_key": { - "ed25519": "RrclQz9bIhkIy/gfL485g3PYMeiIku4qeo495787X10=" - }, + "pubKeyType": "ed25519", + "pubKeyBytes": "RrclQz9bIhkIy/gfL485g3PYMeiIku4qeo495787X10=", "power": "500" }, { - "pub_key": { - "ed25519": "Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is=" - }, + "pubKeyType": "ed25519", + "pubKeyBytes": "Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is=", "power": "500" }, { - "pub_key": { - "ed25519": "mAN6RXYxSM4MNGSIriYiS7pHuwAcOHDQAy9/wnlSzOI=" - }, + "pubKeyType": "ed25519", + "pubKeyBytes": "mAN6RXYxSM4MNGSIriYiS7pHuwAcOHDQAy9/wnlSzOI=", "power": "500" } ] diff --git a/app/provider/abci.go b/app/provider/abci.go index f0020562aa..6653a5fa1d 100644 --- a/app/provider/abci.go +++ b/app/provider/abci.go @@ -9,7 +9,7 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) type ( @@ -37,7 +37,7 @@ func (h *VoteExtensionHandler) SetHandlers(bApp *baseapp.BaseApp) { } func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { - return func(_ sdk.Context, req *abci.RequestExtendVote) (*abci.ResponseExtendVote, error) { + return func(_ sdk.Context, req *abci.ExtendVoteRequest) (*abci.ExtendVoteResponse, error) { buf := make([]byte, 1024) _, err := rand.Read(buf) @@ -56,29 +56,29 @@ func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { return nil, fmt.Errorf("failed to encode vote extension: %w", err) } - return &abci.ResponseExtendVote{VoteExtension: bz}, nil + return &abci.ExtendVoteResponse{VoteExtension: bz}, nil } } func (h *VoteExtensionHandler) VerifyVoteExtension() sdk.VerifyVoteExtensionHandler { - return func(ctx sdk.Context, req *abci.RequestVerifyVoteExtension) (*abci.ResponseVerifyVoteExtension, error) { + return func(ctx sdk.Context, req *abci.VerifyVoteExtensionRequest) (*abci.VerifyVoteExtensionResponse, error) { var ve VoteExtension if err := json.Unmarshal(req.VoteExtension, &ve); err != nil { - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } switch { case req.Height != ve.Height: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case !bytes.Equal(req.Hash, ve.Hash): - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case len(ve.Data) != 1024: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_ACCEPT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_ACCEPT}, nil } } diff --git a/app/provider/app.go b/app/provider/app.go index 4b7534f2bf..d791ffb4e0 100644 --- a/app/provider/app.go +++ b/app/provider/app.go @@ -22,19 +22,20 @@ import ( ibctesting "github.com/cosmos/ibc-go/v10/testing" "github.com/spf13/cast" + "github.com/cosmos/cosmos-sdk/x/evidence" + evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + "github.com/cosmos/cosmos-sdk/x/upgrade" + upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" "cosmossdk.io/client/v2/autocli" "cosmossdk.io/core/appmodule" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/evidence" - evidencekeeper "cosmossdk.io/x/evidence/keeper" - evidencetypes "cosmossdk.io/x/evidence/types" "cosmossdk.io/x/tx/signing" - "cosmossdk.io/x/upgrade" - upgradekeeper "cosmossdk.io/x/upgrade/keeper" - upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -101,9 +102,9 @@ import ( stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmjson "github.com/cometbft/cometbft/libs/json" - tmos "github.com/cometbft/cometbft/libs/os" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmjson "github.com/cometbft/cometbft/v2/libs/json" + tmos "github.com/cometbft/cometbft/v2/libs/os" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -397,7 +398,6 @@ func New( app.IBCKeeper = ibckeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibcexported.StoreKey]), - app.GetSubspace(ibcexported.ModuleName), app.UpgradeKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -483,7 +483,6 @@ func New( app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibctransfertypes.StoreKey]), - app.GetSubspace(ibctransfertypes.ModuleName), app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper, app.MsgServiceRouter(), @@ -780,7 +779,7 @@ func (app *App) setPostHandler() { app.SetPostHandler(postHandler) } -func (app *App) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) { +func (app *App) PreBlocker(ctx sdk.Context, _ *abci.FinalizeBlockRequest) (*sdk.ResponsePreBlock, error) { return app.MM.PreBlock(ctx) } @@ -795,7 +794,7 @@ func (app *App) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) { } // InitChainer application update at chain initialization -func (app *App) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) { +func (app *App) InitChainer(ctx sdk.Context, req *abci.InitChainRequest) (*abci.InitChainResponse, error) { var genesisState GenesisState if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { panic(err) diff --git a/app/sovereign/abci.go b/app/sovereign/abci.go index f0020562aa..6653a5fa1d 100644 --- a/app/sovereign/abci.go +++ b/app/sovereign/abci.go @@ -9,7 +9,7 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) type ( @@ -37,7 +37,7 @@ func (h *VoteExtensionHandler) SetHandlers(bApp *baseapp.BaseApp) { } func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { - return func(_ sdk.Context, req *abci.RequestExtendVote) (*abci.ResponseExtendVote, error) { + return func(_ sdk.Context, req *abci.ExtendVoteRequest) (*abci.ExtendVoteResponse, error) { buf := make([]byte, 1024) _, err := rand.Read(buf) @@ -56,29 +56,29 @@ func (h *VoteExtensionHandler) ExtendVote() sdk.ExtendVoteHandler { return nil, fmt.Errorf("failed to encode vote extension: %w", err) } - return &abci.ResponseExtendVote{VoteExtension: bz}, nil + return &abci.ExtendVoteResponse{VoteExtension: bz}, nil } } func (h *VoteExtensionHandler) VerifyVoteExtension() sdk.VerifyVoteExtensionHandler { - return func(ctx sdk.Context, req *abci.RequestVerifyVoteExtension) (*abci.ResponseVerifyVoteExtension, error) { + return func(ctx sdk.Context, req *abci.VerifyVoteExtensionRequest) (*abci.VerifyVoteExtensionResponse, error) { var ve VoteExtension if err := json.Unmarshal(req.VoteExtension, &ve); err != nil { - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } switch { case req.Height != ve.Height: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case !bytes.Equal(req.Hash, ve.Hash): - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil case len(ve.Data) != 1024: - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_REJECT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_REJECT}, nil } - return &abci.ResponseVerifyVoteExtension{Status: abci.ResponseVerifyVoteExtension_ACCEPT}, nil + return &abci.VerifyVoteExtensionResponse{Status: abci.VERIFY_VOTE_EXTENSION_STATUS_ACCEPT}, nil } } diff --git a/app/sovereign/app.go b/app/sovereign/app.go index e8b3bb3267..971ff4fd31 100644 --- a/app/sovereign/app.go +++ b/app/sovereign/app.go @@ -23,22 +23,23 @@ import ( // ibctestingtypes "github.com/cosmos/ibc-go/v10/testing/types" "github.com/spf13/cast" + "github.com/cosmos/cosmos-sdk/x/evidence" + evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + "github.com/cosmos/cosmos-sdk/x/feegrant" + feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" + feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" + autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" "cosmossdk.io/client/v2/autocli" "cosmossdk.io/core/appmodule" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - "cosmossdk.io/x/evidence" - evidencekeeper "cosmossdk.io/x/evidence/keeper" - evidencetypes "cosmossdk.io/x/evidence/types" - "cosmossdk.io/x/feegrant" - feegrantkeeper "cosmossdk.io/x/feegrant/keeper" - feegrantmodule "cosmossdk.io/x/feegrant/module" // add mint - "cosmossdk.io/x/upgrade" - upgradekeeper "cosmossdk.io/x/upgrade/keeper" - upgradetypes "cosmossdk.io/x/upgrade/types" + "github.com/cosmos/cosmos-sdk/x/upgrade" + upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -102,9 +103,9 @@ import ( stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmjson "github.com/cometbft/cometbft/libs/json" - tmos "github.com/cometbft/cometbft/libs/os" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmjson "github.com/cometbft/cometbft/v2/libs/json" + tmos "github.com/cometbft/cometbft/v2/libs/os" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -407,7 +408,6 @@ func New( app.IBCKeeper = ibckeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibchost.StoreKey]), - app.GetSubspace(ibchost.ModuleName), app.UpgradeKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -423,7 +423,6 @@ func New( app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, runtime.NewKVStoreService(keys[ibctransfertypes.StoreKey]), - app.GetSubspace(ibctransfertypes.ModuleName), app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper, app.MsgServiceRouter(), @@ -623,7 +622,7 @@ func New( // Name returns the name of the App func (app *App) Name() string { return app.BaseApp.Name() } -func (app *App) PreBlocker(ctx sdk.Context, _ *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) { +func (app *App) PreBlocker(ctx sdk.Context, _ *abci.FinalizeBlockRequest) (*sdk.ResponsePreBlock, error) { return app.MM.PreBlock(ctx) } @@ -638,7 +637,7 @@ func (app *App) EndBlocker(ctx sdk.Context) (sdk.EndBlock, error) { } // InitChainer application update at chain initialization -func (app *App) InitChainer(ctx sdk.Context, req *abci.RequestInitChain) (*abci.ResponseInitChain, error) { +func (app *App) InitChainer(ctx sdk.Context, req *abci.InitChainRequest) (*abci.InitChainResponse, error) { var genesisState GenesisState if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil { panic(err) diff --git a/cmd/interchain-security-cd/cmd/root.go b/cmd/interchain-security-cd/cmd/root.go index 03cbd3ade4..e2b34d5e5f 100644 --- a/cmd/interchain-security-cd/cmd/root.go +++ b/cmd/interchain-security-cd/cmd/root.go @@ -31,7 +31,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/crisis" genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" - tmcfg "github.com/cometbft/cometbft/config" + tmcfg "github.com/cometbft/cometbft/v2/config" consumer "github.com/cosmos/interchain-security/v7/app/consumer" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" diff --git a/cmd/interchain-security-cdd/cmd/root.go b/cmd/interchain-security-cdd/cmd/root.go index dae80703cf..aaabf68e06 100644 --- a/cmd/interchain-security-cdd/cmd/root.go +++ b/cmd/interchain-security-cdd/cmd/root.go @@ -35,7 +35,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/crisis" genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" - tmcfg "github.com/cometbft/cometbft/config" + tmcfg "github.com/cometbft/cometbft/v2/config" cdd "github.com/cosmos/interchain-security/v7/app/consumer-democracy" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" diff --git a/cmd/interchain-security-pd/cmd/root.go b/cmd/interchain-security-pd/cmd/root.go index 0ca1f82511..cf306c69e3 100644 --- a/cmd/interchain-security-pd/cmd/root.go +++ b/cmd/interchain-security-pd/cmd/root.go @@ -35,7 +35,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/crisis" genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" - cmtcfg "github.com/cometbft/cometbft/config" + cmtcfg "github.com/cometbft/cometbft/v2/config" appEncoding "github.com/cosmos/interchain-security/v7/app/encoding" providerApp "github.com/cosmos/interchain-security/v7/app/provider" diff --git a/cmd/interchain-security-sd/cmd/root.go b/cmd/interchain-security-sd/cmd/root.go index 097b1a2419..f160ce456e 100644 --- a/cmd/interchain-security-sd/cmd/root.go +++ b/cmd/interchain-security-sd/cmd/root.go @@ -35,7 +35,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/crisis" genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" - tmcfg "github.com/cometbft/cometbft/config" + tmcfg "github.com/cometbft/cometbft/v2/config" appencoding "github.com/cosmos/interchain-security/v7/app/encoding" sovereignApp "github.com/cosmos/interchain-security/v7/app/sovereign" diff --git a/contrib/local-testnet.sh b/contrib/local-testnet.sh index a321bfe7f1..3760949e4b 100755 --- a/contrib/local-testnet.sh +++ b/contrib/local-testnet.sh @@ -548,8 +548,9 @@ enabled = true gas_multiplier = 1.1 grpc_addr = "tcp://${NODE_IP}:${PGRPC_LADDR_PORT}" id = "provider" + compat_mode = "0.38" key_name = "query" - max_gas = 20000000 + max_gas = 10000000 rpc_addr = "http://${NODE_IP}:${PRPC_LADDR_PORT}" rpc_timeout = "10s" store_prefix = "ibc" @@ -573,8 +574,9 @@ enabled = true gas_multiplier = 1.1 grpc_addr = "tcp://${NODE_IP}:${CGRPC_LADDR_PORT}" id = "consumer" + compat_mode = "0.38" key_name = "query" - max_gas = 20000000 + max_gas = 10000000 rpc_addr = "http://${NODE_IP}:${CRPC_LADDR_PORT}" rpc_timeout = "10s" store_prefix = "ibc" diff --git a/go.mod b/go.mod index 1ce8ea5da2..f326465725 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,14 @@ module github.com/cosmos/interchain-security/v7 -go 1.23.6 +go 1.24.3 + +toolchain go1.24.4 require ( - cosmossdk.io/errors v1.0.2 - cosmossdk.io/math v1.5.2 - github.com/cometbft/cometbft v0.38.17 - github.com/cometbft/cometbft-db v0.14.1 // indirect - github.com/cosmos/cosmos-sdk v0.53.0-rc.2 + cosmossdk.io/errors v1.0.3-0.20250604174653-810d15dd6d16 + cosmossdk.io/math v1.5.4-0.20250604174653-810d15dd6d16 + github.com/cometbft/cometbft-db v1.0.4 // indirect + github.com/cosmos/cosmos-sdk v0.54.0-alpha.0.0.20250610171936-b482ce4a740c github.com/cosmos/gogoproto v1.7.0 github.com/cosmos/ics23/go v0.11.0 github.com/golang/mock v1.6.0 @@ -15,16 +16,16 @@ require ( github.com/gorilla/mux v1.8.1 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/kylelemons/godebug v1.1.0 - github.com/spf13/cast v1.7.1 + github.com/spf13/cast v1.9.2 github.com/spf13/cobra v1.9.1 github.com/stretchr/testify v1.10.0 github.com/tidwall/gjson v1.18.0 - golang.org/x/crypto v0.36.0 // indirect - golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 - golang.org/x/net v0.38.0 // indirect - golang.org/x/sys v0.31.0 // indirect + golang.org/x/crypto v0.39.0 // indirect + golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 + golang.org/x/net v0.40.0 // indirect + golang.org/x/sys v0.33.0 // indirect google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect - google.golang.org/grpc v1.71.1 + google.golang.org/grpc v1.73.0 google.golang.org/protobuf v1.36.6 gopkg.in/yaml.v2 v2.4.0 ) @@ -34,13 +35,13 @@ require ( cloud.google.com/go/compute/metadata v0.6.0 // indirect cloud.google.com/go/iam v1.2.2 // indirect cloud.google.com/go/storage v1.49.0 // indirect - cosmossdk.io/api v0.9.0 - cosmossdk.io/core v0.11.3 - cosmossdk.io/depinject v1.2.0-rc.1 // indirect + cosmossdk.io/api v1.0.0-alpha.0.0.20250604174653-810d15dd6d16 + cosmossdk.io/core v1.1.0-alpha.1.0.20250604174653-810d15dd6d16 + cosmossdk.io/depinject v1.2.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/aws/aws-sdk-go v1.44.224 // indirect + github.com/aws/aws-sdk-go v1.49.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.2.0 // indirect @@ -52,31 +53,26 @@ require ( github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.2.2 // indirect + github.com/cosmos/iavl v1.2.6 // indirect github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect github.com/danieljoos/wincred v1.2.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/desertbit/timer v1.0.1 // indirect - github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.7.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/go-kit/kit v0.13.0 // indirect - github.com/go-kit/log v0.2.1 // indirect - github.com/go-logfmt/logfmt v0.6.0 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.2.4 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect + github.com/golang/snappy v1.0.0 // indirect github.com/google/btree v1.1.3 // indirect github.com/google/go-cmp v0.7.0 github.com/google/orderedcode v0.0.1 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/websocket v1.5.3 // indirect @@ -86,7 +82,7 @@ require ( github.com/hashicorp/go-getter v1.7.8 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // 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/hdevalence/ed25519consensus v0.2.0 // indirect github.com/huandu/skiplist v1.2.1 // indirect @@ -96,21 +92,21 @@ require ( github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/lib/pq v1.10.9 // indirect - github.com/linxGnu/grocksdb v1.9.2 // indirect + github.com/linxGnu/grocksdb v1.10.1 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-isatty v0.0.20 // 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/mtibben/percent v0.2.1 // indirect - github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.21.1 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.63.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_golang v1.22.0 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.64.0 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rs/cors v1.11.1 // indirect github.com/sasha-s/go-deadlock v0.3.5 // indirect @@ -125,11 +121,11 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.4.0-alpha.1 // indirect + go.etcd.io/bbolt v1.4.0 // indirect go.opencensus.io v0.24.0 // indirect - golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/text v0.26.0 // indirect google.golang.org/api v0.222.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.11 // indirect @@ -138,66 +134,64 @@ require ( ) require ( - cosmossdk.io/client/v2 v2.0.0-beta.7 - cosmossdk.io/log v1.5.1 - cosmossdk.io/store v1.1.2 + cosmossdk.io/client/v2 v2.0.0-beta.10.0.20250604161429-8c61b74a1806 + cosmossdk.io/log v1.6.1-0.20250604174653-810d15dd6d16 + cosmossdk.io/store v1.10.0-rc.1.0.20250609200650-1521447c77da cosmossdk.io/tools/confix v0.1.2 - cosmossdk.io/x/evidence v0.2.0-rc.2 - cosmossdk.io/x/feegrant v0.2.0-rc.2 - cosmossdk.io/x/tx v0.14.0-rc.1 - cosmossdk.io/x/upgrade v0.2.0-rc.2 - github.com/cosmos/cosmos-db v1.1.1 - github.com/cosmos/ibc-go/v10 v10.1.1 + cosmossdk.io/x/tx v1.2.0-alpha.0.0.20250604174653-810d15dd6d16 + github.com/cosmos/cosmos-db v1.1.3 + github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611193252-a9170dcac535 github.com/informalsystems/itf-go v0.0.1 github.com/spf13/viper v1.20.1 - golang.org/x/mod v0.24.0 - google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 + golang.org/x/mod v0.25.0 + google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a ) require ( - cel.dev/expr v0.19.1 // indirect + cel.dev/expr v0.23.0 // indirect cloud.google.com/go/auth v0.14.1 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect cloud.google.com/go/monitoring v1.21.2 // indirect - cosmossdk.io/collections v1.2.0 // indirect - cosmossdk.io/schema v1.0.0 // indirect + cosmossdk.io/collections v1.3.0 // indirect + cosmossdk.io/schema v1.1.0 // indirect github.com/DataDog/datadog-go v4.8.3+incompatible // indirect - github.com/DataDog/zstd v1.5.6 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect + github.com/DataDog/zstd v1.5.7 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/bits-and-blooms/bitset v1.22.0 // indirect - github.com/bytedance/sonic v1.13.1 // indirect + github.com/bytedance/sonic v1.13.2 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cloudwego/base64x v0.1.5 // indirect - github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 // indirect - github.com/cockroachdb/apd/v3 v3.2.1 // indirect - github.com/cockroachdb/errors v1.11.3 // indirect - github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a // indirect - github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v1.1.2 // indirect - github.com/cockroachdb/redact v1.1.5 // indirect - github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect - github.com/creachadair/atomicfile v0.3.1 // indirect - github.com/creachadair/tomledit v0.0.24 // indirect - github.com/dgraph-io/badger/v4 v4.2.0 // indirect - github.com/emicklei/dot v1.6.2 // indirect + github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect + github.com/cockroachdb/errors v1.12.0 // indirect + github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect + github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect + github.com/cockroachdb/pebble v1.1.5 // indirect + github.com/cockroachdb/redact v1.1.6 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb // indirect + github.com/cometbft/cometbft/api v1.1.0-alpha.1 + github.com/cometbft/cometbft/v2 v2.0.0-main + github.com/creachadair/atomicfile v0.3.7 // indirect + github.com/creachadair/tomledit v0.0.27 // indirect + github.com/dgraph-io/badger/v4 v4.6.0 // indirect + github.com/emicklei/dot v1.8.0 // indirect github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect - github.com/ethereum/go-ethereum v1.15.5 // indirect - github.com/fatih/color v1.17.0 // indirect - github.com/getsentry/sentry-go v0.28.1 // indirect + github.com/ethereum/go-ethereum v1.15.11 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/getsentry/sentry-go v0.33.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect - github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/google/flatbuffers v25.2.10+incompatible // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-metrics v0.5.4 // indirect github.com/hashicorp/go-plugin v1.6.3 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/yamux v0.1.1 // indirect + github.com/hashicorp/yamux v0.1.2 // indirect github.com/holiman/uint256 v1.3.2 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/klauspost/cpuid/v2 v2.2.10 // indirect @@ -215,23 +209,39 @@ require ( github.com/sourcegraph/conc v0.3.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.34.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.34.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.34.0 // indirect - go.uber.org/mock v0.5.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.35.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.uber.org/mock v0.5.2 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/arch v0.15.0 // indirect - golang.org/x/sync v0.12.0 // indirect + golang.org/x/arch v0.17.0 // indirect + golang.org/x/sync v0.15.0 // indirect golang.org/x/time v0.10.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect gotest.tools/v3 v3.5.2 // indirect rsc.io/qr v0.2.0 // indirect ) +require ( + github.com/dgraph-io/ristretto/v2 v2.1.0 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect + github.com/iancoleman/orderedmap v0.3.0 // indirect + github.com/lmittmann/tint v1.0.7 // indirect + github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect + github.com/supranational/blst v0.3.14 // indirect + github.com/zeebo/errs v1.4.0 // indirect +) + // following versions might cause unexpected behavior replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 + +replace github.com/cometbft/cometbft/v2 => github.com/cometbft/cometbft/v2 v2.0.0-alpha.1 + +replace github.com/cometbft/cometbft/api => github.com/cometbft/cometbft/api v1.1.0-alpha.1 + +replace github.com/cosmos/ibc-go/v10 => github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611233349-11dfe65dd5c8 diff --git a/go.sum b/go.sum index baaf3b000c..1ecc180ff8 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4= -cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.23.0 h1:wUb94w6OYQS4uXraxo9U+wUAs9jT47Xvl4iPgAwM2ss= +cel.dev/expr v0.23.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -614,36 +614,30 @@ cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoIS cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -cosmossdk.io/api v0.9.0 h1:QYs9APeSlDNGbsBOBFjp3jXgGd4hnEPnnku3+W3tT4Y= -cosmossdk.io/api v0.9.0/go.mod h1:pLkU/NSqYHWxyN7XftVt8iD7oldKJzqMZgzeiOmT2nk= -cosmossdk.io/client/v2 v2.0.0-beta.7 h1:O0PfZL5kC3Sp54wZASLNihQ612Gd6duMp11aM9wawNg= -cosmossdk.io/client/v2 v2.0.0-beta.7/go.mod h1:TzwwrzeK+AfSVSESVEIOYO/9xuCh1fPv0HgeocmfVnM= -cosmossdk.io/collections v1.2.0 h1:IesfVG8G/+FYCMVMP01frS/Cw99Omk5vBh3cHbO01Gg= -cosmossdk.io/collections v1.2.0/go.mod h1:4NkMoYw6qRA8fnSH/yn1D/MOutr8qyQnwsO50Mz9ItU= -cosmossdk.io/core v0.11.3 h1:mei+MVDJOwIjIniaKelE3jPDqShCc/F4LkNNHh+4yfo= -cosmossdk.io/core v0.11.3/go.mod h1:9rL4RE1uDt5AJ4Tg55sYyHWXA16VmpHgbe0PbJc6N2Y= -cosmossdk.io/depinject v1.2.0-rc.1 h1:Q7qfs+j8MuFPpogx4ohiSXmFvw0Ns2wcBAYU8wIZRbg= -cosmossdk.io/depinject v1.2.0-rc.1/go.mod h1:SMffgggZXkCAbLbJ65pHELkB1Z6cpFbY4CNohGojAz4= -cosmossdk.io/errors v1.0.2 h1:wcYiJz08HThbWxd/L4jObeLaLySopyyuUFB5w4AGpCo= -cosmossdk.io/errors v1.0.2/go.mod h1:0rjgiHkftRYPj//3DrD6y8hcm40HcPv/dR4R/4efr0k= -cosmossdk.io/log v1.5.1 h1:wLwiYXmfrort/O+j6EkjF+HvbdrRQd+4cYCPKFSm+zM= -cosmossdk.io/log v1.5.1/go.mod h1:5cXXBvfBkR2/BcXmosdCSLXllvgSjphrrDVdfVRmBGM= -cosmossdk.io/math v1.5.2 h1:PIhyy1JzmgPA712ewaYRjs+Hhh0iNuM8+fH18WPSejU= -cosmossdk.io/math v1.5.2/go.mod h1:ToembcWID/wR94cucsMD+2gq6xrlBBOfWcGwC7ZdwZA= -cosmossdk.io/schema v1.0.0 h1:/diH4XJjpV1JQwuIozwr+A4uFuuwanFdnw2kKeiXwwQ= -cosmossdk.io/schema v1.0.0/go.mod h1:RDAhxIeNB4bYqAlF4NBJwRrgtnciMcyyg0DOKnhNZQQ= -cosmossdk.io/store v1.1.2 h1:3HOZG8+CuThREKv6cn3WSohAc6yccxO3hLzwK6rBC7o= -cosmossdk.io/store v1.1.2/go.mod h1:60rAGzTHevGm592kFhiUVkNC9w7gooSEn5iUBPzHQ6A= +cosmossdk.io/api v1.0.0-alpha.0.0.20250604174653-810d15dd6d16 h1:1SCEjCYrFvDXjwXFsyLrcxtlGdiCRBkquT/pdojpVRU= +cosmossdk.io/api v1.0.0-alpha.0.0.20250604174653-810d15dd6d16/go.mod h1:8YOT+XjVFb9eZJk62YqjFILOm8MlLhbnkC9/jxIYri8= +cosmossdk.io/client/v2 v2.0.0-beta.10.0.20250604161429-8c61b74a1806 h1:VPnbJ2f8PAIhlTwShmIvCmS37RZFmBz+YkLzSxIPKBo= +cosmossdk.io/client/v2 v2.0.0-beta.10.0.20250604161429-8c61b74a1806/go.mod h1:seDsxl1YCDZSWw++0Qpb7mx5eCpnnLwAa0mDeV9VeME= +cosmossdk.io/collections v1.3.0 h1:RUY23xXBy/bu5oSHZ5y+mkJRyA4ZboKDO4Yvx4+g2uc= +cosmossdk.io/collections v1.3.0/go.mod h1:cqVpBMDGEYhuNmNSXIOmqpnQ7Eav43hpJIetzLuEkns= +cosmossdk.io/core v1.1.0-alpha.1.0.20250604174653-810d15dd6d16 h1:31g2+fzwP8d3MN8fwUeISlB1BzZjvjM2BtkvBsNQbSU= +cosmossdk.io/core v1.1.0-alpha.1.0.20250604174653-810d15dd6d16/go.mod h1:khCddkNZORH+yooiug3m0DWRacoBfqQOYBXs0DcoX+E= +cosmossdk.io/depinject v1.2.1 h1:eD6FxkIjlVaNZT+dXTQuwQTKZrFZ4UrfCq1RKgzyhMw= +cosmossdk.io/depinject v1.2.1/go.mod h1:lqQEycz0H2JXqvOgVwTsjEdMI0plswI7p6KX+MVqFOM= +cosmossdk.io/errors v1.0.3-0.20250604174653-810d15dd6d16 h1:4W9JA+neVf0rmkUBbq2ZNe59FBkDpuWeWtj+zU6t+3o= +cosmossdk.io/errors v1.0.3-0.20250604174653-810d15dd6d16/go.mod h1:JO+8ZRK9iZO/HXaxlFVmkuDa+Nr0nEynFC3aW6VI6mI= +cosmossdk.io/log v1.6.1-0.20250604174653-810d15dd6d16 h1:CJ5o9q/CWYTaWKhBLNsHJxXgJX7ocnKnl+5reLi4WK4= +cosmossdk.io/log v1.6.1-0.20250604174653-810d15dd6d16/go.mod h1:ufFlbOhCjTbifqc1ZpCO3Tom+7avB125JAcmwjFKHCI= +cosmossdk.io/math v1.5.4-0.20250604174653-810d15dd6d16 h1:Nzz0Ez0z6lddgvn/bqkfuOmY/SRVqlCoO25xsVRNVZI= +cosmossdk.io/math v1.5.4-0.20250604174653-810d15dd6d16/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= +cosmossdk.io/schema v1.1.0 h1:mmpuz3dzouCoyjjcMcA/xHBEmMChN+EHh8EHxHRHhzE= +cosmossdk.io/schema v1.1.0/go.mod h1:Gb7pqO+tpR+jLW5qDcNOSv0KtppYs7881kfzakguhhI= +cosmossdk.io/store v1.10.0-rc.1.0.20250609200650-1521447c77da h1:osbgMTzJOGEJdwJCkNTgPHE32wx+TBk6xbD7NoxC4sw= +cosmossdk.io/store v1.10.0-rc.1.0.20250609200650-1521447c77da/go.mod h1:ekEjYEq7zBHpKBbFRMZUQVY7/kUDPx0SD0gnDQpbFi0= cosmossdk.io/tools/confix v0.1.2 h1:2hoM1oFCNisd0ltSAAZw2i4ponARPmlhuNu3yy0VwI4= cosmossdk.io/tools/confix v0.1.2/go.mod h1:7XfcbK9sC/KNgVGxgLM0BrFbVcR/+6Dg7MFfpx7duYo= -cosmossdk.io/x/evidence v0.2.0-rc.2 h1:cLTCebjHTye/QoehLM8WJG4xZTFE6ET0WRY108aF/Yk= -cosmossdk.io/x/evidence v0.2.0-rc.2/go.mod h1:FH9n6k1oCDoVk4hSd1JOiVpKO3HrFsBAL6kzfrVqagc= -cosmossdk.io/x/feegrant v0.2.0-rc.2 h1:yA7a+wF0ax0p5d0L19KYAwaLBLawtc5woZgF0R2zzcA= -cosmossdk.io/x/feegrant v0.2.0-rc.2/go.mod h1:Z1daRnKKiqdJqwc5+Iq8jrI2tJn2c0IKT3PwPmGpPdY= -cosmossdk.io/x/tx v0.14.0-rc.1 h1:EEYTknUALt7PEK7b3Q8RVDQ2vDA5A+DGFlEvVcUWjqA= -cosmossdk.io/x/tx v0.14.0-rc.1/go.mod h1:MKYHaI9c1PVM3Qns4c/7PfdbO4OaGvtaP9BmAbv8APo= -cosmossdk.io/x/upgrade v0.2.0-rc.2 h1:JYxl0qAEaIPG/bYfuNkJVd9blAgr2fPaCxquf1S6AXI= -cosmossdk.io/x/upgrade v0.2.0-rc.2/go.mod h1:Rq6Rl6Z9m4SNbnMutNZs+p/n9SF6Ku1FwTrnoWMHxM8= +cosmossdk.io/x/tx v1.2.0-alpha.0.0.20250604174653-810d15dd6d16 h1:kCG3DmQEBHJuAfJ2PTDQpj+igPWPwwjOWREX45uwsIs= +cosmossdk.io/x/tx v1.2.0-alpha.0.0.20250604174653-810d15dd6d16/go.mod h1:C3OqJcbX4/IuTYMSGnG8eTEMySIrQEC3Bwgipqbwt1Y= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= @@ -660,10 +654,10 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= -github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= +github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 h1:ErKg/3iS1AKcTkf3yixlZ54f9U1rljCkQyEXWUnIUxc= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0/go.mod h1:yAZHSGnqScoU556rBOVkwLze6WP5N+U11RHuWaGVxwY= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= @@ -679,7 +673,6 @@ github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= 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.6 h1:k1/zc2jNfeiZBA5aFTRy37jlBIuCkXCm0XmvpzCKI9I= github.com/adlio/schema v1.3.6/go.mod h1:qkxwLgPBd1FgLRHYVCmQT/rrBr3JH38J9LjmVzWNudg= @@ -708,8 +701,8 @@ github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6l github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ= -github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= +github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -731,8 +724,8 @@ github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/ github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw= github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c= -github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g= -github.com/bytedance/sonic v1.13.1/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= +github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= @@ -780,32 +773,32 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 h1:boJj011Hh+874zpIySeApCX4GeOjPl9qhRF3QuIZq+Q= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/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/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= -github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= -github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= -github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a h1:f52TdbU4D5nozMAhO9TvTJ2ZMCXtN4VIAmfrrZ0JXQ4= -github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA= -github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= -github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= -github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -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/cockroachdb/errors v1.12.0 h1:d7oCs6vuIMUQRVbi6jWWWEJZahLCfJpnJSVobd1/sUo= +github.com/cockroachdb/errors v1.12.0/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 h1:pU88SPhIFid6/k0egdR5V6eALQYq2qbSmukrkgIh/0A= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILMqgNeV5jiqR4j+sTuvQNHdf2chuKj1M5k= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= +github.com/cockroachdb/pebble v1.1.5 h1:5AAWCBWbat0uE0blr8qzufZP5tBjkRyy/jWe1QWLnvw= +github.com/cockroachdb/pebble v1.1.5/go.mod h1:17wO9el1YEigxkP/YtV8NtCivQDgoCyBg5c4VR/eOWo= +github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= +github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb h1:3bCgBvB8PbJVMX1ouCcSIxvsqKPYM7gs72o0zC76n9g= +github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb/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 v0.38.17 h1:FkrQNbAjiFqXydeAO81FUzriL4Bz0abYxN/eOHrQGOk= -github.com/cometbft/cometbft v0.38.17/go.mod h1:5l0SkgeLRXi6bBfQuevXjKqML1jjfJJlvI1Ulp02/o4= -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/cometbft/cometbft-db v1.0.4 h1:cezb8yx/ZWcF124wqUtAFjAuDksS1y1yXedvtprUFxs= +github.com/cometbft/cometbft-db v1.0.4/go.mod h1:M+BtHAGU2XLrpUxo3Nn1nOCcnVCiLM9yx5OuT0u5SCA= +github.com/cometbft/cometbft/api v1.1.0-alpha.1 h1:QTHyLVEoFc2kh3uRwHb3HLfGXJ8kxrIaPPGtt7synGY= +github.com/cometbft/cometbft/api v1.1.0-alpha.1/go.mod h1:Ivh6nSCTJPQOyfQo8dgnyu/T88it092sEqSrZSmTQN8= +github.com/cometbft/cometbft/v2 v2.0.0-alpha.1 h1:9dcfa578PqWGoUxFKB/yfZW5ovVcl4nj/wtqf4h1bwo= +github.com/cometbft/cometbft/v2 v2.0.0-alpha.1/go.mod h1:/ze08eO171CqUqTqAE7FW7ydUJIVkgp6e2svpYvIR3c= 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= @@ -814,12 +807,12 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-db v1.1.1 h1:FezFSU37AlBC8S98NlSagL76oqBRWq/prTPvFcEJNCM= -github.com/cosmos/cosmos-db v1.1.1/go.mod h1:AghjcIPqdhSLP/2Z0yha5xPH3nLnskz81pBx3tcVSAw= +github.com/cosmos/cosmos-db v1.1.3 h1:7QNT77+vkefostcKkhrzDK9uoIEryzFrU9eoMeaQOPY= +github.com/cosmos/cosmos-db v1.1.3/go.mod h1:kN+wGsnwUJZYn8Sy5Q2O0vCYA99MJllkKASbs6Unb9U= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.53.0-rc.2 h1:KdQRIp6z/hQK9VppPU1exuXobLLwhrrRIrAOlzzaIf0= -github.com/cosmos/cosmos-sdk v0.53.0-rc.2/go.mod h1:GCGPg/EJ9FCygDZ8yHxuq3aM577FC706LpXwl2LbXKQ= +github.com/cosmos/cosmos-sdk v0.54.0-alpha.0.0.20250610171936-b482ce4a740c h1:wv9GZCmknnW3zWuzBrLL34wdPIqkvnoItSsL3+Fx6XU= +github.com/cosmos/cosmos-sdk v0.54.0-alpha.0.0.20250610171936-b482ce4a740c/go.mod h1:yGsBFBqThQ+1bpCLPY1uZNsJj0sVJ+nYVTNctovvkcM= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -827,20 +820,22 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= -github.com/cosmos/iavl v1.2.2 h1:qHhKW3I70w+04g5KdsdVSHRbFLgt3yY3qTMd4Xa4rC8= -github.com/cosmos/iavl v1.2.2/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= -github.com/cosmos/ibc-go/v10 v10.1.1 h1:Mtl0Ydr9dVdOrPqmxCAG49RmX2/VDYeKYdwv3G2y0g8= -github.com/cosmos/ibc-go/v10 v10.1.1/go.mod h1:0pJCkgEYRMygqkvUcwy6Kuf5wPfIsObRoxFU2DJEil4= +github.com/cosmos/iavl v1.2.6 h1:Hs3LndJbkIB+rEvToKJFXZvKo6Vy0Ex1SJ54hhtioIs= +github.com/cosmos/iavl v1.2.6/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= +github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611233349-11dfe65dd5c8 h1:sbsMAN5DcExXT+4R6yWsTXQrj/RJpbvZ35S2R3XpSnc= +github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611233349-11dfe65dd5c8/go.mod h1:5qlhdPoKAecm0WL+j5sYFvtjPgPdCSqqKcUwFJ3TknQ= 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/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE= github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/creachadair/atomicfile v0.3.1 h1:yQORkHjSYySh/tv5th1dkKcn02NEW5JleB84sjt+W4Q= -github.com/creachadair/atomicfile v0.3.1/go.mod h1:mwfrkRxFKwpNAflYZzytbSwxvbK6fdGRRlp0KEQc0qU= -github.com/creachadair/tomledit v0.0.24 h1:5Xjr25R2esu1rKCbQEmjZYlrhFkDspoAbAKb6QKQDhQ= -github.com/creachadair/tomledit v0.0.24/go.mod h1:9qHbShRWQzSCcn617cMzg4eab1vbLCOjOshAWSzWr8U= +github.com/creachadair/atomicfile v0.3.7 h1:wdg8+Isz07NDMi2yZQAoI1EKB9SxuDhvo5MUii/ZqlM= +github.com/creachadair/atomicfile v0.3.7/go.mod h1:lUrZrE/XjMA7rJY/n8dF7/sSpy6KjtPaxPbrDambthA= +github.com/creachadair/mds v0.22.1 h1:Wink9jeYR7brBbOkOTVZVrd6vyb5W4ZBRhlZd96TSgU= +github.com/creachadair/mds v0.22.1/go.mod h1:ArfS0vPHoLV/SzuIzoqTEZfoYmac7n9Cj8XPANHocvw= +github.com/creachadair/tomledit v0.0.27 h1:6xOpEnkKmcpT/gmKhabN0JXrqNX065lyje1/mXTSSIE= +github.com/creachadair/tomledit v0.0.27/go.mod h1:v1EWpgCisD3ct1kO8Gq4o4pdgX5JXD0rBI2PJ4UnPoA= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.2.1 h1:dl9cBrupW8+r5250DYkYxocLeZ1Y4vB1kxgtjxw8GQs= @@ -856,16 +851,15 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjY github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/desertbit/timer v1.0.1 h1:yRpYNn5Vaaj6QXecdLMPMJsW81JLiI1eokUft5nBmeo= github.com/desertbit/timer v1.0.1/go.mod h1:htRrYeY5V/t4iu1xCJ5XsQvp4xve8QulXXctAzxqcwE= -github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= -github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= -github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= -github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= +github.com/dgraph-io/badger/v4 v4.6.0 h1:acOwfOOZ4p1dPRnYzvkVm7rUk2Y21TgPVepCy5dJdFQ= +github.com/dgraph-io/badger/v4 v4.6.0/go.mod h1:KSJ5VTuZNC3Sd+YhvVjk2nYua9UZnnTr/SkXvdtiPgI= +github.com/dgraph-io/ristretto/v2 v2.1.0 h1:59LjpOJLNDULHh8MC4UaegN52lC4JnO2dITsie/Pa8I= +github.com/dgraph-io/ristretto/v2 v2.1.0/go.mod h1:uejeqfYXpUomfse0+lO+13ATz4TypQYLJZzBSAemuB4= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= @@ -879,8 +873,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A= -github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +github.com/emicklei/dot v1.8.0 h1:HnD60yAKFAevNeT+TPYr9pb8VB9bqdeSo0nzwIW6IOI= +github.com/emicklei/dot v1.8.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -905,12 +899,12 @@ github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0+ github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= -github.com/ethereum/go-ethereum v1.15.5 h1:Fo2TbBWC61lWVkFw9tsMoHCNX1ndpuaQBRJ8H6xLUPo= -github.com/ethereum/go-ethereum v1.15.5/go.mod h1:1LG2LnMOx2yPRHR/S+xuipXH29vPr6BIH6GElD8N/fo= +github.com/ethereum/go-ethereum v1.15.11 h1:JK73WKeu0WC0O1eyX+mdQAVHUV+UR1a9VB/domDngBU= +github.com/ethereum/go-ethereum v1.15.11/go.mod h1:mf8YiHIb0GR4x4TipcvBUPxJLw1mFdmxzoDi11sDRoI= 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.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -923,10 +917,10 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= -github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/getsentry/sentry-go v0.33.0 h1:YWyDii0KGVov3xOaamOnF0mjOrqSjBqwv48UEzn7QFg= +github.com/getsentry/sentry-go v0.33.0/go.mod h1:C55omcY9ChRQIUcVcGcs+Zdy4ZpQGvNJ7JYHIoSWOtE= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= 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= @@ -940,21 +934,17 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= -github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -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.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -991,14 +981,13 @@ github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGw github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= -github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= -github.com/golang/glog v1.2.4/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= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -1033,15 +1022,15 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 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/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= +github.com/golang/snappy v1.0.0/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.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= -github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= +github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -1102,8 +1091,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= +github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1171,11 +1160,12 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/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.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= @@ -1187,8 +1177,8 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= -github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8= +github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns= github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= github.com/holiman/uint256 v1.3.2 h1:a9EgMPSC1AAaj1SZL5zIQD3WbwTuHrMGOerLjGmM/TA= @@ -1199,6 +1189,8 @@ github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0Jr github.com/huandu/skiplist v1.2.1 h1:dTi93MgjwErA/8idWTzIw4Y1kZsMWx35fmI2c8Rij7w= github.com/huandu/skiplist v1.2.1/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= +github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= @@ -1272,14 +1264,16 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.9.2 h1:O3mzvO0wuzQ9mtlHbDrShixyVjVbmuqTjFrzlf43wZ8= -github.com/linxGnu/grocksdb v1.9.2/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= +github.com/linxGnu/grocksdb v1.10.1 h1:YX6gUcKvSC3d0s9DaqgbU+CRkZHzlELgHu1Z/kmtslg= +github.com/linxGnu/grocksdb v1.10.1/go.mod h1:C3CNe9UYc9hlEM2pC82AqiGS3LRW537u9LFV4wIZuHk= +github.com/lmittmann/tint v1.0.7 h1:D/0OqWZ0YOGZ6AyC+5Y2kD8PBEzBk6rFHVSfOqCkF9Y= +github.com/lmittmann/tint v1.0.7/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= -github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= +github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -1352,18 +1346,18 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= 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/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= 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.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= -github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= 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= -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/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= 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= @@ -1381,8 +1375,8 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= 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/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= -github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= 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= @@ -1415,8 +1409,8 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD 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.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= -github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1424,8 +1418,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= @@ -1433,8 +1427,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b 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.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= -github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/common v0.64.0 h1:pdZeA+g617P7oGv1CzdTzyeShxAGrTBsolKNOLQPGO4= +github.com/prometheus/common v0.64.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -1442,8 +1436,8 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx 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.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1491,8 +1485,8 @@ github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= -github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= -github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE= +github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= @@ -1502,6 +1496,8 @@ github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1526,6 +1522,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.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/supranational/blst v0.3.14 h1:xNMoHRJOTwMn63ip6qoWJ2Ymgvj7E2b9jY2FAwY+qRo= +github.com/supranational/blst v0.3.14/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= @@ -1558,14 +1556,16 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= +github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= 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= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.4.0-alpha.1 h1:3yrqQzbRRPFPdOMWS/QQIVxVnzSkAZQYeWlZFv1kbj4= -go.etcd.io/bbolt v1.4.0-alpha.1/go.mod h1:S/Z/Nm3iuOnyO1W4XuFfPci51Gj6F1Hv0z8hisyYYOw= +go.etcd.io/bbolt v1.4.0 h1:TU77id3TnN/zKr7CO/uk+fBCwF2jGcMuw2B/FMAzYIk= +go.etcd.io/bbolt v1.4.0/go.mod h1:AsD+OCi/qPN1giOX1aiLAha3o1U8rAz65bvN4j0sRuk= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1580,24 +1580,24 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0 h1:bGvFt68+KTiAKFlacHW6AhA56GF2rS0bdD3aJYEnmzA= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0/go.mod h1:qGWP8/+ILwMRIUf9uIVLloR1uo5ZYAslM4O6OqUi1DA= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= -go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= @@ -1606,8 +1606,10 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= 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/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= -go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko= +go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -1617,8 +1619,8 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -golang.org/x/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw= -golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE= +golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= +golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= 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= @@ -1636,8 +1638,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1654,8 +1656,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1701,8 +1703,8 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= 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= @@ -1765,7 +1767,6 @@ 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-20221012135044-0b7e1fb9d458/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.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= @@ -1778,8 +1779,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= 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= @@ -1809,8 +1810,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= 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= @@ -1831,8 +1832,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1931,8 +1932,6 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1945,12 +1944,11 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.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.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= @@ -1962,8 +1960,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= 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= @@ -1984,8 +1982,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2291,10 +2289,10 @@ google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463/go.mod h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a h1:SGktgSolFCo75dnHJF2yMvnns6jCmHFJ0vE4Vn2JKvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a/go.mod h1:a77HrdMjoeKbnd2jmgcWdaS++ZLZAEq3orIOAEIKiVw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= 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= @@ -2342,8 +2340,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.71.1 h1:ffsFWr7ygTUscGPI0KKK6TLrGz0476KUvvsbqWK0rPI= -google.golang.org/grpc v1.71.1/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= +google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= 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= diff --git a/proto/buf.lock b/proto/buf.lock index d265287bcd..239de388c2 100644 --- a/proto/buf.lock +++ b/proto/buf.lock @@ -4,23 +4,18 @@ deps: - remote: buf.build owner: cosmos repository: cosmos-proto - commit: 1935555c206d4afb9e94615dfd0fad31 - digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377 + commit: 04467658e59e44bbb22fe568206e1f70 + digest: shake256:73a640bd60e0c523b0f8237ff34eab67c45a38b64bbbde1d80224819d272dbf316ac183526bd245f994af6608b025f5130483d0133c5edd385531326b5990466 - remote: buf.build owner: cosmos repository: cosmos-sdk - commit: aa25660f4ff746388669ce36b3778442 - digest: shake256:a20eb29eb7284d9d0b76e94324a6e24e3665d13682bed0d5beac647d7109b7b2f22080301276779a91f394c97dab334da36dfc01d4252d9f869b090bfc8248aa + commit: 650cd9ad7f7a468e8e19975269958658 + digest: shake256:c2c1e67ed8efa7f5c6af7a2fc02a6c257dc78fe86911cbf4d3dd379710bf475565ffe2ae4f65221888373d515caa31be68b720897cccec6e0c6a1a91ff0b5227 - remote: buf.build owner: cosmos repository: gogo-proto commit: 34d970b699f84aa382f3c29773a60836 digest: shake256:3d3bee5229ba579e7d19ffe6e140986a228b48a8c7fe74348f308537ab95e9135210e81812489d42cd8941d33ff71f11583174ccc5972e86e6112924b6ce9f04 - - remote: buf.build - owner: cosmos - repository: ibc - commit: e587235c5f964e93ab25889de137dc1f - digest: shake256:21b86553b7f5e0517af826b1bb460d8e8d3a764211d9fa9f53c10c2dba238752b7271a6f892a5ae623c63a2faeeb7d4b8732570cec053e930822a31dc76ac973 - remote: buf.build owner: cosmos repository: ics23 @@ -31,3 +26,8 @@ deps: repository: googleapis commit: 8d7204855ec14631a499bd7393ce1970 digest: shake256:40bf4112960cad01281930beed85829910768e32e80e986791596853eccd42c0cbd9d96690b918f658020d2d427e16f8b6514e2ac7f4a10306fd32e77be44329 + - remote: buf.build + owner: protocolbuffers + repository: wellknowntypes + commit: 3ddd61d1f53d485abd3d3a2b47a62b8e + digest: shake256:9e6799d56700d0470c3723a2fd027e8b4a41a07085a0c90c58e05f6c0038fac9b7a0170acd7692707a849983b1b8189aa33e7b73f91d68157f7136823115546b diff --git a/proto/buf.yaml b/proto/buf.yaml index 527ff5bda5..4a0d686470 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -6,13 +6,12 @@ version: v1 name: buf.build/cosmos/interchain-security deps: - - buf.build/cosmos/cosmos-sdk:aa25660f4ff746388669ce36b3778442 - - buf.build/cosmos/cosmos-proto:1935555c206d4afb9e94615dfd0fad31 + - buf.build/cosmos/cosmos-sdk:v0.54.0-beta.1 + - buf.build/cosmos/cosmos-proto:04467658e59e44bbb22fe568206e1f70 - buf.build/cosmos/gogo-proto:a14993478f40695898ed8a86931094b6656e8a5d - buf.build/cosmos/ics23:b1abd8678aab07165efd453c96796a179eb3131f - - buf.build/cosmos/ibc:e587235c5f964e93ab25889de137dc1f - buf.build/googleapis/googleapis:8d7204855ec14631a499bd7393ce1970 - + - buf.build/protocolbuffers/wellknowntypes:3ddd61d1f53d485abd3d3a2b47a62b8e breaking: use: - FILE diff --git a/proto/ibc/applications/interchain_accounts/controller/v1/controller.proto b/proto/ibc/applications/interchain_accounts/controller/v1/controller.proto new file mode 100644 index 0000000000..2cb37ed807 --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/controller/v1/controller.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.controller.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/controller/types"; + +// Params defines the set of on-chain interchain accounts parameters. +// The following parameters may be used to disable the controller submodule. +message Params { + // controller_enabled enables or disables the controller submodule. + bool controller_enabled = 1; +} diff --git a/proto/ibc/applications/interchain_accounts/controller/v1/query.proto b/proto/ibc/applications/interchain_accounts/controller/v1/query.proto new file mode 100644 index 0000000000..1d3a3e97c9 --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/controller/v1/query.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.controller.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/controller/types"; + +import "ibc/applications/interchain_accounts/controller/v1/controller.proto"; +import "google/api/annotations.proto"; + +// Query provides defines the gRPC querier service. +service Query { + // InterchainAccount returns the interchain account address for a given owner + // address on a given connection + rpc InterchainAccount(QueryInterchainAccountRequest) + returns (QueryInterchainAccountResponse) { + option (google.api.http).get = + "/ibc/apps/interchain_accounts/controller/v1/owners/{owner}/" + "connections/{connection_id}"; + } + + // Params queries all parameters of the ICA controller submodule. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = + "/ibc/apps/interchain_accounts/controller/v1/params"; + } +} + +// QueryInterchainAccountRequest is the request type for the +// Query/InterchainAccount RPC method. +message QueryInterchainAccountRequest { + string owner = 1; + string connection_id = 2; +} + +// QueryInterchainAccountResponse the response type for the +// Query/InterchainAccount RPC method. +message QueryInterchainAccountResponse { string address = 1; } + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto b/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto new file mode 100644 index 0000000000..1a1b18b544 --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/controller/v1/tx.proto @@ -0,0 +1,86 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.controller.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/controller/types"; + +import "gogoproto/gogo.proto"; +import "ibc/applications/interchain_accounts/v1/packet.proto"; +import "ibc/applications/interchain_accounts/controller/v1/controller.proto"; +import "cosmos/msg/v1/msg.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// Msg defines the 27-interchain-accounts/controller Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // RegisterInterchainAccount defines a rpc handler for + // MsgRegisterInterchainAccount. + rpc RegisterInterchainAccount(MsgRegisterInterchainAccount) + returns (MsgRegisterInterchainAccountResponse); + // SendTx defines a rpc handler for MsgSendTx. + rpc SendTx(MsgSendTx) returns (MsgSendTxResponse); + // UpdateParams defines a rpc handler for MsgUpdateParams. + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount +message MsgRegisterInterchainAccount { + option (cosmos.msg.v1.signer) = "owner"; + + option (gogoproto.goproto_getters) = false; + + string owner = 1; + string connection_id = 2; + string version = 3; + ibc.core.channel.v1.Order ordering = 4; +} + +// MsgRegisterInterchainAccountResponse defines the response for +// Msg/RegisterAccount +message MsgRegisterInterchainAccountResponse { + option (gogoproto.goproto_getters) = false; + + string channel_id = 1; + string port_id = 2; +} + +// MsgSendTx defines the payload for Msg/SendTx +message MsgSendTx { + option (cosmos.msg.v1.signer) = "owner"; + + option (gogoproto.goproto_getters) = false; + + string owner = 1; + string connection_id = 2; + ibc.applications.interchain_accounts.v1.InterchainAccountPacketData + packet_data = 3 [ (gogoproto.nullable) = false ]; + // Relative timeout timestamp provided will be added to the current block time + // during transaction execution. The timeout timestamp must be non-zero. + uint64 relative_timeout = 4; +} + +// MsgSendTxResponse defines the response for MsgSendTx +message MsgSendTxResponse { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; +} + +// MsgUpdateParams defines the payload for Msg/UpdateParams +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address + string signer = 1; + + // params defines the 27-interchain-accounts/controller parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [ (gogoproto.nullable) = false ]; +} + +// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +message MsgUpdateParamsResponse {} diff --git a/proto/ibc/applications/interchain_accounts/genesis/v1/genesis.proto b/proto/ibc/applications/interchain_accounts/genesis/v1/genesis.proto new file mode 100644 index 0000000000..2bf53f1a1d --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/genesis/v1/genesis.proto @@ -0,0 +1,55 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.genesis.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/genesis/types"; + +import "gogoproto/gogo.proto"; +import "ibc/applications/interchain_accounts/controller/v1/controller.proto"; +import "ibc/applications/interchain_accounts/host/v1/host.proto"; + +// GenesisState defines the interchain accounts genesis state +message GenesisState { + ControllerGenesisState controller_genesis_state = 1 + [ (gogoproto.nullable) = false ]; + HostGenesisState host_genesis_state = 2 [ (gogoproto.nullable) = false ]; +} + +// ControllerGenesisState defines the interchain accounts controller genesis +// state +message ControllerGenesisState { + repeated ActiveChannel active_channels = 1 [ (gogoproto.nullable) = false ]; + repeated RegisteredInterchainAccount interchain_accounts = 2 + [ (gogoproto.nullable) = false ]; + repeated string ports = 3; + ibc.applications.interchain_accounts.controller.v1.Params params = 4 + [ (gogoproto.nullable) = false ]; +} + +// HostGenesisState defines the interchain accounts host genesis state +message HostGenesisState { + repeated ActiveChannel active_channels = 1 [ (gogoproto.nullable) = false ]; + repeated RegisteredInterchainAccount interchain_accounts = 2 + [ (gogoproto.nullable) = false ]; + string port = 3; + ibc.applications.interchain_accounts.host.v1.Params params = 4 + [ (gogoproto.nullable) = false ]; +} + +// ActiveChannel contains a connection ID, port ID and associated active channel +// ID, as well as a boolean flag to indicate if the channel is middleware +// enabled +message ActiveChannel { + string connection_id = 1; + string port_id = 2; + string channel_id = 3; + bool is_middleware_enabled = 4; +} + +// RegisteredInterchainAccount contains a connection ID, port ID and associated +// interchain account address +message RegisteredInterchainAccount { + string connection_id = 1; + string port_id = 2; + string account_address = 3; +} diff --git a/proto/ibc/applications/interchain_accounts/host/v1/host.proto b/proto/ibc/applications/interchain_accounts/host/v1/host.proto new file mode 100644 index 0000000000..91b04c8e44 --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/host/v1/host.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.host.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/host/types"; + +// Params defines the set of on-chain interchain accounts parameters. +// The following parameters may be used to disable the host submodule. +message Params { + // host_enabled enables or disables the host submodule. + bool host_enabled = 1; + // allow_messages defines a list of sdk message typeURLs allowed to be + // executed on a host chain. + repeated string allow_messages = 2; +} + +// QueryRequest defines the parameters for a particular query request +// by an interchain account. +message QueryRequest { + // path defines the path of the query request as defined by ADR-021. + // https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-021-protobuf-query-encoding.md#custom-query-registration-and-routing + string path = 1; + // data defines the payload of the query request as defined by ADR-021. + // https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-021-protobuf-query-encoding.md#custom-query-registration-and-routing + bytes data = 2; +} diff --git a/proto/ibc/applications/interchain_accounts/host/v1/query.proto b/proto/ibc/applications/interchain_accounts/host/v1/query.proto new file mode 100644 index 0000000000..6b63c5880d --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/host/v1/query.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.host.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/host/types"; + +import "google/api/annotations.proto"; +import "ibc/applications/interchain_accounts/host/v1/host.proto"; + +// Query provides defines the gRPC querier service. +service Query { + // Params queries all parameters of the ICA host submodule. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = + "/ibc/apps/interchain_accounts/host/v1/params"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/proto/ibc/applications/interchain_accounts/host/v1/tx.proto b/proto/ibc/applications/interchain_accounts/host/v1/tx.proto new file mode 100644 index 0000000000..8c27b91c8c --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/host/v1/tx.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.host.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/host/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "ibc/applications/interchain_accounts/host/v1/host.proto"; + +// Msg defines the 27-interchain-accounts/host Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // UpdateParams defines a rpc handler for MsgUpdateParams. + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // ModuleQuerySafe defines a rpc handler for MsgModuleQuerySafe. + rpc ModuleQuerySafe(MsgModuleQuerySafe) returns (MsgModuleQuerySafeResponse); +} + +// MsgUpdateParams defines the payload for Msg/UpdateParams +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address + string signer = 1; + + // params defines the 27-interchain-accounts/host parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [ (gogoproto.nullable) = false ]; +} + +// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +message MsgUpdateParamsResponse {} + +// MsgModuleQuerySafe defines the payload for Msg/ModuleQuerySafe +message MsgModuleQuerySafe { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address + string signer = 1; + + // requests defines the module safe queries to execute. + repeated QueryRequest requests = 2 [ (gogoproto.nullable) = false ]; +} + +// MsgModuleQuerySafeResponse defines the response for Msg/ModuleQuerySafe +message MsgModuleQuerySafeResponse { + // height at which the responses were queried + uint64 height = 1; + + // protobuf encoded responses for each query + repeated bytes responses = 2; +} diff --git a/proto/ibc/applications/interchain_accounts/v1/account.proto b/proto/ibc/applications/interchain_accounts/v1/account.proto new file mode 100644 index 0000000000..f22c39fdaa --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/v1/account.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/types"; + +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/auth/v1beta1/auth.proto"; + +// An InterchainAccount is defined as a BaseAccount & the address of the account +// owner on the controller chain +message InterchainAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + option (cosmos_proto.implements_interface) = + "ibc.applications.interchain_accounts.v1.InterchainAccountI"; + + cosmos.auth.v1beta1.BaseAccount base_account = 1 [ (gogoproto.embed) = true ]; + string account_owner = 2; +} diff --git a/proto/ibc/applications/interchain_accounts/v1/metadata.proto b/proto/ibc/applications/interchain_accounts/v1/metadata.proto new file mode 100644 index 0000000000..ef570b99af --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/v1/metadata.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/types"; + +// Metadata defines a set of protocol specific data encoded into the ICS27 +// channel version bytestring See ICS004: +// https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning +message Metadata { + // version defines the ICS27 protocol version + string version = 1; + // controller_connection_id is the connection identifier associated with the + // controller chain + string controller_connection_id = 2; + // host_connection_id is the connection identifier associated with the host + // chain + string host_connection_id = 3; + // address defines the interchain account address to be fulfilled upon the + // OnChanOpenTry handshake step NOTE: the address field is empty on the + // OnChanOpenInit handshake step + string address = 4; + // encoding defines the supported codec format + string encoding = 5; + // tx_type defines the type of transactions the interchain account can execute + string tx_type = 6; +} diff --git a/proto/ibc/applications/interchain_accounts/v1/packet.proto b/proto/ibc/applications/interchain_accounts/v1/packet.proto new file mode 100644 index 0000000000..6942fe1943 --- /dev/null +++ b/proto/ibc/applications/interchain_accounts/v1/packet.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/types"; + +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; + +// Type defines a classification of message issued from a controller chain to +// its associated interchain accounts host +enum Type { + option (gogoproto.goproto_enum_prefix) = false; + + // Default zero value enumeration + TYPE_UNSPECIFIED = 0 [ (gogoproto.enumvalue_customname) = "UNSPECIFIED" ]; + // Execute a transaction on an interchain accounts host chain + TYPE_EXECUTE_TX = 1 [ (gogoproto.enumvalue_customname) = "EXECUTE_TX" ]; +} + +// InterchainAccountPacketData is comprised of a raw transaction, type of +// transaction and optional memo field. +message InterchainAccountPacketData { + Type type = 1; + bytes data = 2; + string memo = 3; +} + +// CosmosTx contains a list of sdk.Msg's. It should be used when sending +// transactions to an SDK host chain. +message CosmosTx { repeated google.protobuf.Any messages = 1; } diff --git a/proto/ibc/applications/packet_forward_middleware/v1/genesis.proto b/proto/ibc/applications/packet_forward_middleware/v1/genesis.proto new file mode 100644 index 0000000000..95b3e87b68 --- /dev/null +++ b/proto/ibc/applications/packet_forward_middleware/v1/genesis.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; + +package ibc.applications.packet_forward_middleware.v1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/packet-forward-middleware/types"; + +// GenesisState defines the packetforward genesis state +message GenesisState { + // key - information about forwarded packet: src_channel + // (parsedReceiver.Channel), src_port (parsedReceiver.Port), sequence value - + // information about original packet for refunding if necessary: retries, + // srcPacketSender, srcPacket.DestinationChannel, srcPacket.DestinationPort + map in_flight_packets = 2 [ + (gogoproto.moretags) = "yaml:\"in_flight_packets\"", + (gogoproto.nullable) = false + ]; +} + +// InFlightPacket contains information about original packet for +// writing the acknowledgement and refunding if necessary. +message InFlightPacket { + string original_sender_address = 1; + string refund_channel_id = 2; + string refund_port_id = 3; + string packet_src_channel_id = 4; + string packet_src_port_id = 5; + uint64 packet_timeout_timestamp = 6; + string packet_timeout_height = 7; + bytes packet_data = 8; + uint64 refund_sequence = 9; + int32 retries_remaining = 10; + uint64 timeout = 11; + bool nonrefundable = 12; +} diff --git a/proto/ibc/applications/transfer/v1/authz.proto b/proto/ibc/applications/transfer/v1/authz.proto new file mode 100644 index 0000000000..c74a61ba63 --- /dev/null +++ b/proto/ibc/applications/transfer/v1/authz.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Allocation defines the spend limit for a particular port and channel +message Allocation { + // the port on which the packet will be sent + string source_port = 1; + // the channel by which the packet will be sent + string source_channel = 2; + // spend limitation on the channel + repeated cosmos.base.v1beta1.Coin spend_limit = 3 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + // allow list of receivers, an empty allow list permits any receiver address + repeated string allow_list = 4; + // allow list of memo strings, an empty list prohibits all memo strings; + // a list only with "*" permits any memo string + repeated string allowed_packet_data = 5; +} + +// TransferAuthorization allows the grantee to spend up to spend_limit coins +// from the granter's account for ibc transfer on a specific channel +message TransferAuthorization { + option (cosmos_proto.implements_interface) = + "cosmos.authz.v1beta1.Authorization"; + + // port and channel amounts + repeated Allocation allocations = 1 [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/applications/transfer/v1/denomtrace.proto b/proto/ibc/applications/transfer/v1/denomtrace.proto new file mode 100644 index 0000000000..3aef3a8f6d --- /dev/null +++ b/proto/ibc/applications/transfer/v1/denomtrace.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +// DenomTrace contains the base denomination for ICS20 fungible tokens and the +// source tracing information path. +message DenomTrace { + option deprecated = true; + // path defines the chain of port/channel identifiers used for tracing the + // source of the fungible token. + string path = 1; + // base denomination of the relayed fungible token. + string base_denom = 2; +} diff --git a/proto/ibc/applications/transfer/v1/genesis.proto b/proto/ibc/applications/transfer/v1/genesis.proto new file mode 100644 index 0000000000..0813fded98 --- /dev/null +++ b/proto/ibc/applications/transfer/v1/genesis.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +import "ibc/applications/transfer/v1/transfer.proto"; +import "ibc/applications/transfer/v1/token.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; + +// GenesisState defines the ibc-transfer genesis state +message GenesisState { + string port_id = 1; + repeated Denom denoms = 2 + [ (gogoproto.castrepeated) = "Denoms", (gogoproto.nullable) = false ]; + ibc.applications.transfer.v1.Params params = 3 + [ (gogoproto.nullable) = false ]; + // total_escrowed contains the total amount of tokens escrowed + // by the transfer module + repeated cosmos.base.v1beta1.Coin total_escrowed = 4 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/ibc/applications/transfer/v1/packet.proto b/proto/ibc/applications/transfer/v1/packet.proto new file mode 100644 index 0000000000..d7ecb32021 --- /dev/null +++ b/proto/ibc/applications/transfer/v1/packet.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +// FungibleTokenPacketData defines a struct for the packet payload +// See FungibleTokenPacketData spec: +// https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures +message FungibleTokenPacketData { + // the token denomination to be transferred + string denom = 1; + // the token amount to be transferred + string amount = 2; + // the sender address + string sender = 3; + // the recipient address on the destination chain + string receiver = 4; + // optional memo + string memo = 5; +} diff --git a/proto/ibc/applications/transfer/v1/query.proto b/proto/ibc/applications/transfer/v1/query.proto new file mode 100644 index 0000000000..3e5fc47eb0 --- /dev/null +++ b/proto/ibc/applications/transfer/v1/query.proto @@ -0,0 +1,134 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "ibc/applications/transfer/v1/transfer.proto"; +import "ibc/applications/transfer/v1/token.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +// Query provides defines the gRPC querier service. +service Query { + // Params queries all parameters of the ibc-transfer module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/params"; + } + + // Denoms queries all denominations + rpc Denoms(QueryDenomsRequest) returns (QueryDenomsResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denoms"; + } + + // Denom queries a denomination + rpc Denom(QueryDenomRequest) returns (QueryDenomResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denoms/{hash=**}"; + } + + // DenomHash queries a denomination hash information. + rpc DenomHash(QueryDenomHashRequest) returns (QueryDenomHashResponse) { + option (google.api.http).get = + "/ibc/apps/transfer/v1/denom_hashes/{trace=**}"; + } + + // EscrowAddress returns the escrow address for a particular port and channel + // id. + rpc EscrowAddress(QueryEscrowAddressRequest) + returns (QueryEscrowAddressResponse) { + option (google.api.http).get = + "/ibc/apps/transfer/v1/channels/{channel_id}/ports/{port_id}/" + "escrow_address"; + } + + // TotalEscrowForDenom returns the total amount of tokens in escrow based on + // the denom. + rpc TotalEscrowForDenom(QueryTotalEscrowForDenomRequest) + returns (QueryTotalEscrowForDenomResponse) { + option (google.api.http).get = + "/ibc/apps/transfer/v1/total_escrow/{denom=**}"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} + +// QueryDenomRequest is the request type for the Query/Denom RPC +// method +message QueryDenomRequest { + // hash (in hex format) or denom (full denom with ibc prefix) of the on chain + // denomination. + string hash = 1; +} + +// QueryDenomResponse is the response type for the Query/Denom RPC +// method. +message QueryDenomResponse { + // denom returns the requested denomination. + Denom denom = 1; +} + +// QueryDenomsRequest is the request type for the Query/Denoms RPC +// method +message QueryDenomsRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryDenomsResponse is the response type for the Query/Denoms RPC +// method. +message QueryDenomsResponse { + // denoms returns all denominations. + repeated Denom denoms = 1 + [ (gogoproto.castrepeated) = "Denoms", (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDenomHashRequest is the request type for the Query/DenomHash RPC +// method +message QueryDenomHashRequest { + // The denomination trace ([port_id]/[channel_id])+/[denom] + string trace = 1; +} + +// QueryDenomHashResponse is the response type for the Query/DenomHash RPC +// method. +message QueryDenomHashResponse { + // hash (in hex format) of the denomination trace information. + string hash = 1; +} + +// QueryEscrowAddressRequest is the request type for the EscrowAddress RPC +// method. +message QueryEscrowAddressRequest { + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; +} + +// QueryEscrowAddressResponse is the response type of the EscrowAddress RPC +// method. +message QueryEscrowAddressResponse { + // the escrow account address + string escrow_address = 1; +} + +// QueryTotalEscrowForDenomRequest is the request type for TotalEscrowForDenom +// RPC method. +message QueryTotalEscrowForDenomRequest { string denom = 1; } + +// QueryTotalEscrowForDenomResponse is the response type for TotalEscrowForDenom +// RPC method. +message QueryTotalEscrowForDenomResponse { + cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/applications/transfer/v1/token.proto b/proto/ibc/applications/transfer/v1/token.proto new file mode 100644 index 0000000000..00d0bec2a9 --- /dev/null +++ b/proto/ibc/applications/transfer/v1/token.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +// Token defines a struct which represents a token to be transferred. +message Token { + // the token denomination + Denom denom = 1 [ (gogoproto.nullable) = false ]; + // the token amount to be transferred + string amount = 2; +} + +// Denom holds the base denom of a Token and a trace of the chains it was sent +// through. +message Denom { + // the base token denomination + string base = 1; + // the trace of the token + repeated Hop trace = 3 [ (gogoproto.nullable) = false ]; +} + +// Hop defines a port ID, channel ID pair specifying a unique "hop" in a trace +message Hop { + option (gogoproto.goproto_stringer) = false; + string port_id = 1; + string channel_id = 2; +} diff --git a/proto/ibc/applications/transfer/v1/transfer.proto b/proto/ibc/applications/transfer/v1/transfer.proto new file mode 100644 index 0000000000..c4b1f9daaa --- /dev/null +++ b/proto/ibc/applications/transfer/v1/transfer.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +// Params defines the set of IBC transfer parameters. +// NOTE: To prevent a single token from being transferred, set the +// TransfersEnabled parameter to true and then set the bank module's SendEnabled +// parameter for the denomination to false. +message Params { + // send_enabled enables or disables all cross-chain token transfers from this + // chain. + bool send_enabled = 1; + // receive_enabled enables or disables all cross-chain token transfers to this + // chain. + bool receive_enabled = 2; +} diff --git a/proto/ibc/applications/transfer/v1/tx.proto b/proto/ibc/applications/transfer/v1/tx.proto new file mode 100644 index 0000000000..cce1f6fc90 --- /dev/null +++ b/proto/ibc/applications/transfer/v1/tx.proto @@ -0,0 +1,87 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/transfer/types"; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/applications/transfer/v1/transfer.proto"; + +// Msg defines the ibc/transfer Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // Transfer defines a rpc handler method for MsgTransfer. + rpc Transfer(MsgTransfer) returns (MsgTransferResponse); + + // UpdateParams defines a rpc handler for MsgUpdateParams. + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between +// ICS20 enabled chains. See ICS Spec here: +// https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures +message MsgTransfer { + option (amino.name) = "cosmos-sdk/MsgTransfer"; + option (cosmos.msg.v1.signer) = "sender"; + + option (gogoproto.goproto_getters) = false; + + // the port on which the packet will be sent + string source_port = 1; + // the channel by which the packet will be sent + string source_channel = 2; + // token to be transferred + cosmos.base.v1beta1.Coin token = 3 + [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ]; + // the sender address + string sender = 4; + // the recipient address on the destination chain + string receiver = 5; + // Timeout height relative to the current block height. + // If you are sending with IBC v1 protocol, either timeout_height or + // timeout_timestamp must be set. If you are sending with IBC v2 protocol, + // timeout_timestamp must be set, and timeout_height must be omitted. + ibc.core.client.v1.Height timeout_height = 6 + [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ]; + // Timeout timestamp in absolute nanoseconds since unix epoch. + // If you are sending with IBC v1 protocol, either timeout_height or + // timeout_timestamp must be set. If you are sending with IBC v2 protocol, + // timeout_timestamp must be set. + uint64 timeout_timestamp = 7; + // optional memo + string memo = 8; + // optional encoding + string encoding = 9; +} + +// MsgTransferResponse defines the Msg/Transfer response type. +message MsgTransferResponse { + option (gogoproto.goproto_getters) = false; + + // sequence number of the transfer packet sent + uint64 sequence = 1; +} + +// MsgUpdateParams is the Msg/UpdateParams request type. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address + string signer = 1; + + // params defines the transfer parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [ (gogoproto.nullable) = false ]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} diff --git a/proto/ibc/core/channel/v1/channel.proto b/proto/ibc/core/channel/v1/channel.proto new file mode 100644 index 0000000000..84cab5cf44 --- /dev/null +++ b/proto/ibc/core/channel/v1/channel.proto @@ -0,0 +1,173 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; + +// Channel defines pipeline for exactly-once packet delivery between specific +// modules on separate blockchains, which has at least one end capable of +// sending packets and one end capable of receiving packets. +message Channel { + option (gogoproto.goproto_getters) = false; + + // current state of the channel end + State state = 1; + // whether the channel is ordered or unordered + Order ordering = 2; + // counterparty channel end + Counterparty counterparty = 3 [ (gogoproto.nullable) = false ]; + // list of connection identifiers, in order, along which packets sent on + // this channel will travel + repeated string connection_hops = 4; + // opaque channel version, which is agreed upon during the handshake + string version = 5; +} + +// IdentifiedChannel defines a channel with additional port and channel +// identifier fields. +message IdentifiedChannel { + option (gogoproto.goproto_getters) = false; + + // current state of the channel end + State state = 1; + // whether the channel is ordered or unordered + Order ordering = 2; + // counterparty channel end + Counterparty counterparty = 3 [ (gogoproto.nullable) = false ]; + // list of connection identifiers, in order, along which packets sent on + // this channel will travel + repeated string connection_hops = 4; + // opaque channel version, which is agreed upon during the handshake + string version = 5; + // port identifier + string port_id = 6; + // channel identifier + string channel_id = 7; +} + +// State defines if a channel is in one of the following states: +// CLOSED, INIT, TRYOPEN, OPEN, or UNINITIALIZED. +enum State { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + STATE_UNINITIALIZED_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "UNINITIALIZED" ]; + // A channel has just started the opening handshake. + STATE_INIT = 1 [ (gogoproto.enumvalue_customname) = "INIT" ]; + // A channel has acknowledged the handshake step on the counterparty chain. + STATE_TRYOPEN = 2 [ (gogoproto.enumvalue_customname) = "TRYOPEN" ]; + // A channel has completed the handshake. Open channels are + // ready to send and receive packets. + STATE_OPEN = 3 [ (gogoproto.enumvalue_customname) = "OPEN" ]; + // A channel has been closed and can no longer be used to send or receive + // packets. + STATE_CLOSED = 4 [ (gogoproto.enumvalue_customname) = "CLOSED" ]; +} + +// Order defines if a channel is ORDERED or UNORDERED +enum Order { + option (gogoproto.goproto_enum_prefix) = false; + + // zero-value for channel ordering + ORDER_NONE_UNSPECIFIED = 0 [ (gogoproto.enumvalue_customname) = "NONE" ]; + // packets can be delivered in any order, which may differ from the order in + // which they were sent. + ORDER_UNORDERED = 1 [ (gogoproto.enumvalue_customname) = "UNORDERED" ]; + // packets are delivered exactly in the order which they were sent + ORDER_ORDERED = 2 [ (gogoproto.enumvalue_customname) = "ORDERED" ]; +} + +// Counterparty defines a channel end counterparty +message Counterparty { + option (gogoproto.goproto_getters) = false; + + // port on the counterparty chain which owns the other end of the channel. + string port_id = 1; + // channel end on the counterparty chain + string channel_id = 2; +} + +// Packet defines a type that carries data across different chains through IBC +message Packet { + option (gogoproto.goproto_getters) = false; + + // number corresponds to the order of sends and receives, where a Packet + // with an earlier sequence number must be sent and received before a Packet + // with a later sequence number. + uint64 sequence = 1; + // identifies the port on the sending chain. + string source_port = 2; + // identifies the channel end on the sending chain. + string source_channel = 3; + // identifies the port on the receiving chain. + string destination_port = 4; + // identifies the channel end on the receiving chain. + string destination_channel = 5; + // actual opaque bytes transferred directly to the application module + bytes data = 6; + // block height after which the packet times out + ibc.core.client.v1.Height timeout_height = 7 [ (gogoproto.nullable) = false ]; + // block timestamp (in nanoseconds) after which the packet times out + uint64 timeout_timestamp = 8; +} + +// PacketState defines the generic type necessary to retrieve and store +// packet commitments, acknowledgements, and receipts. +// Caller is responsible for knowing the context necessary to interpret this +// state as a commitment, acknowledgement, or a receipt. +message PacketState { + option (gogoproto.goproto_getters) = false; + + // channel port identifier. + string port_id = 1; + // channel unique identifier. + string channel_id = 2; + // packet sequence. + uint64 sequence = 3; + // embedded data that represents packet state. + bytes data = 4; +} + +// PacketId is an identifier for a unique Packet +// Source chains refer to packets by source port/channel +// Destination chains refer to packets by destination port/channel +message PacketId { + option (gogoproto.goproto_getters) = false; + + // channel port identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// Acknowledgement is the recommended acknowledgement format to be used by +// app-specific protocols. +// NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental +// conflicts with other protobuf message formats used for acknowledgements. +// The first byte of any message with this format will be the non-ASCII values +// `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: +// https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope +message Acknowledgement { + // response contains either a result or an error and must be non-empty + oneof response { + bytes result = 21; + string error = 22; + } +} + +// Timeout defines an execution deadline structure for 04-channel handlers. +// This includes packet lifecycle handlers. +// A valid Timeout contains either one or both of a timestamp and block height +// (sequence). +message Timeout { + // block height after which the packet times out + ibc.core.client.v1.Height height = 1 [ (gogoproto.nullable) = false ]; + // block timestamp (in nanoseconds) after which the packet times out + uint64 timestamp = 2; +} diff --git a/proto/ibc/core/channel/v1/genesis.proto b/proto/ibc/core/channel/v1/genesis.proto new file mode 100644 index 0000000000..1a94b85fd8 --- /dev/null +++ b/proto/ibc/core/channel/v1/genesis.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// GenesisState defines the ibc channel submodule's genesis state. +message GenesisState { + repeated IdentifiedChannel channels = 1 [ + (gogoproto.casttype) = "IdentifiedChannel", + (gogoproto.nullable) = false + ]; + repeated PacketState acknowledgements = 2 [ (gogoproto.nullable) = false ]; + repeated PacketState commitments = 3 [ (gogoproto.nullable) = false ]; + repeated PacketState receipts = 4 [ (gogoproto.nullable) = false ]; + repeated PacketSequence send_sequences = 5 [ (gogoproto.nullable) = false ]; + repeated PacketSequence recv_sequences = 6 [ (gogoproto.nullable) = false ]; + repeated PacketSequence ack_sequences = 7 [ (gogoproto.nullable) = false ]; + // the sequence for the next generated channel identifier + uint64 next_channel_sequence = 8; +} + +// PacketSequence defines the genesis type necessary to retrieve and store +// next send and receive sequences. +message PacketSequence { + string port_id = 1; + string channel_id = 2; + uint64 sequence = 3; +} diff --git a/proto/ibc/core/channel/v1/query.proto b/proto/ibc/core/channel/v1/query.proto new file mode 100644 index 0000000000..a633edec6e --- /dev/null +++ b/proto/ibc/core/channel/v1/query.proto @@ -0,0 +1,418 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types"; + +import "ibc/core/client/v1/client.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; + +// Query provides defines the gRPC querier service +service Query { + // Channel queries an IBC Channel. + rpc Channel(QueryChannelRequest) returns (QueryChannelResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}"; + } + + // Channels queries all the IBC channels of a chain. + rpc Channels(QueryChannelsRequest) returns (QueryChannelsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels"; + } + + // ConnectionChannels queries all the channels associated with a connection + // end. + rpc ConnectionChannels(QueryConnectionChannelsRequest) + returns (QueryConnectionChannelsResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1/connections/{connection}/channels"; + } + + // ChannelClientState queries for the client state for the channel associated + // with the provided channel identifiers. + rpc ChannelClientState(QueryChannelClientStateRequest) + returns (QueryChannelClientStateResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/client_state"; + } + + // ChannelConsensusState queries for the consensus state for the channel + // associated with the provided channel identifiers. + rpc ChannelConsensusState(QueryChannelConsensusStateRequest) + returns (QueryChannelConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/consensus_state/revision/" + "{revision_number}/height/{revision_height}"; + } + + // PacketCommitment queries a stored packet commitment hash. + rpc PacketCommitment(QueryPacketCommitmentRequest) + returns (QueryPacketCommitmentResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/" + "packet_commitments/{sequence}"; + } + + // PacketCommitments returns all the packet commitments hashes associated + // with a channel. + rpc PacketCommitments(QueryPacketCommitmentsRequest) + returns (QueryPacketCommitmentsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_commitments"; + } + + // PacketReceipt queries if a given packet sequence has been received on the + // queried chain + rpc PacketReceipt(QueryPacketReceiptRequest) + returns (QueryPacketReceiptResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_receipts/{sequence}"; + } + + // PacketAcknowledgement queries a stored packet acknowledgement hash. + rpc PacketAcknowledgement(QueryPacketAcknowledgementRequest) + returns (QueryPacketAcknowledgementResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_acks/{sequence}"; + } + + // PacketAcknowledgements returns all the packet acknowledgements associated + // with a channel. + rpc PacketAcknowledgements(QueryPacketAcknowledgementsRequest) + returns (QueryPacketAcknowledgementsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_acknowledgements"; + } + + // UnreceivedPackets returns all the unreceived IBC packets associated with a + // channel and sequences. + rpc UnreceivedPackets(QueryUnreceivedPacketsRequest) + returns (QueryUnreceivedPacketsResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/" + "packet_commitments/" + "{packet_commitment_sequences}/unreceived_packets"; + } + + // UnreceivedAcks returns all the unreceived IBC acknowledgements associated + // with a channel and sequences. + rpc UnreceivedAcks(QueryUnreceivedAcksRequest) + returns (QueryUnreceivedAcksResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_commitments/" + "{packet_ack_sequences}/unreceived_acks"; + } + + // NextSequenceReceive returns the next receive sequence for a given channel. + rpc NextSequenceReceive(QueryNextSequenceReceiveRequest) + returns (QueryNextSequenceReceiveResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/next_sequence"; + } + + // NextSequenceSend returns the next send sequence for a given channel. + rpc NextSequenceSend(QueryNextSequenceSendRequest) + returns (QueryNextSequenceSendResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/next_sequence_send"; + } +} + +// QueryChannelRequest is the request type for the Query/Channel RPC method +message QueryChannelRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryChannelResponse is the response type for the Query/Channel RPC method. +// Besides the Channel end, it includes a proof and the height from which the +// proof was retrieved. +message QueryChannelResponse { + // channel associated with the request identifiers + ibc.core.channel.v1.Channel channel = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryChannelsRequest is the request type for the Query/Channels RPC method +message QueryChannelsRequest { + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryChannelsResponse is the response type for the Query/Channels RPC method. +message QueryChannelsResponse { + // list of stored channels of the chain. + repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryConnectionChannelsRequest is the request type for the +// Query/QueryConnectionChannels RPC method +message QueryConnectionChannelsRequest { + // connection unique identifier + string connection = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConnectionChannelsResponse is the Response type for the +// Query/QueryConnectionChannels RPC method +message QueryConnectionChannelsResponse { + // list of channels associated with a connection. + repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryChannelClientStateRequest is the request type for the Query/ClientState +// RPC method +message QueryChannelClientStateRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryChannelClientStateResponse is the Response type for the +// Query/QueryChannelClientState RPC method +message QueryChannelClientStateResponse { + // client state associated with the channel + ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryChannelConsensusStateRequest is the request type for the +// Query/ConsensusState RPC method +message QueryChannelConsensusStateRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // revision number of the consensus state + uint64 revision_number = 3; + // revision height of the consensus state + uint64 revision_height = 4; +} + +// QueryChannelClientStateResponse is the Response type for the +// Query/QueryChannelClientState RPC method +message QueryChannelConsensusStateResponse { + // consensus state associated with the channel + google.protobuf.Any consensus_state = 1; + // client ID associated with the consensus state + string client_id = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketCommitmentRequest is the request type for the +// Query/PacketCommitment RPC method +message QueryPacketCommitmentRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketCommitmentResponse defines the client query response for a packet +// which also includes a proof and the height from which the proof was +// retrieved +message QueryPacketCommitmentResponse { + // packet associated with the request fields + bytes commitment = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketCommitmentsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketCommitmentsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 3; +} + +// QueryPacketCommitmentsResponse is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketCommitmentsResponse { + repeated ibc.core.channel.v1.PacketState commitments = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketReceiptRequest is the request type for the +// Query/PacketReceipt RPC method +message QueryPacketReceiptRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketReceiptResponse defines the client query response for a packet +// receipt which also includes a proof, and the height from which the proof was +// retrieved +message QueryPacketReceiptResponse { + // success flag for if receipt exists + bool received = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketAcknowledgementRequest is the request type for the +// Query/PacketAcknowledgement RPC method +message QueryPacketAcknowledgementRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketAcknowledgementResponse defines the client query response for a +// packet which also includes a proof and the height from which the +// proof was retrieved +message QueryPacketAcknowledgementResponse { + // packet associated with the request fields + bytes acknowledgement = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketAcknowledgementsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketAcknowledgementsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 3; + // list of packet sequences + repeated uint64 packet_commitment_sequences = 4; +} + +// QueryPacketAcknowledgemetsResponse is the request type for the +// Query/QueryPacketAcknowledgements RPC method +message QueryPacketAcknowledgementsResponse { + repeated ibc.core.channel.v1.PacketState acknowledgements = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryUnreceivedPacketsRequest is the request type for the +// Query/UnreceivedPackets RPC method +message QueryUnreceivedPacketsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // list of packet sequences + repeated uint64 packet_commitment_sequences = 3; +} + +// QueryUnreceivedPacketsResponse is the response type for the +// Query/UnreceivedPacketCommitments RPC method +message QueryUnreceivedPacketsResponse { + // list of unreceived packet sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [ (gogoproto.nullable) = false ]; +} + +// QueryUnreceivedAcks is the request type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // list of acknowledgement sequences + repeated uint64 packet_ack_sequences = 3; +} + +// QueryUnreceivedAcksResponse is the response type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksResponse { + // list of unreceived acknowledgement sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [ (gogoproto.nullable) = false ]; +} + +// QueryNextSequenceReceiveRequest is the request type for the +// Query/QueryNextSequenceReceiveRequest RPC method +message QueryNextSequenceReceiveRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QuerySequenceResponse is the response type for the +// Query/QueryNextSequenceReceiveResponse RPC method +message QueryNextSequenceReceiveResponse { + // next sequence receive number + uint64 next_sequence_receive = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryNextSequenceSendRequest is the request type for the +// Query/QueryNextSequenceSend RPC method +message QueryNextSequenceSendRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryNextSequenceSendResponse is the request type for the +// Query/QueryNextSequenceSend RPC method +message QueryNextSequenceSendResponse { + // next sequence send number + uint64 next_sequence_send = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/core/channel/v1/tx.proto b/proto/ibc/core/channel/v1/tx.proto new file mode 100644 index 0000000000..2081620382 --- /dev/null +++ b/proto/ibc/core/channel/v1/tx.proto @@ -0,0 +1,267 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// Msg defines the ibc/channel Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. + rpc ChannelOpenInit(MsgChannelOpenInit) returns (MsgChannelOpenInitResponse); + + // ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. + rpc ChannelOpenTry(MsgChannelOpenTry) returns (MsgChannelOpenTryResponse); + + // ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. + rpc ChannelOpenAck(MsgChannelOpenAck) returns (MsgChannelOpenAckResponse); + + // ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. + rpc ChannelOpenConfirm(MsgChannelOpenConfirm) + returns (MsgChannelOpenConfirmResponse); + + // ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. + rpc ChannelCloseInit(MsgChannelCloseInit) + returns (MsgChannelCloseInitResponse); + + // ChannelCloseConfirm defines a rpc handler method for + // MsgChannelCloseConfirm. + rpc ChannelCloseConfirm(MsgChannelCloseConfirm) + returns (MsgChannelCloseConfirmResponse); + + // RecvPacket defines a rpc handler method for MsgRecvPacket. + rpc RecvPacket(MsgRecvPacket) returns (MsgRecvPacketResponse); + + // Timeout defines a rpc handler method for MsgTimeout. + rpc Timeout(MsgTimeout) returns (MsgTimeoutResponse); + + // TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. + rpc TimeoutOnClose(MsgTimeoutOnClose) returns (MsgTimeoutOnCloseResponse); + + // Acknowledgement defines a rpc handler method for MsgAcknowledgement. + rpc Acknowledgement(MsgAcknowledgement) returns (MsgAcknowledgementResponse); +} + +// ResponseResultType defines the possible outcomes of the execution of a +// message +enum ResponseResultType { + option (gogoproto.goproto_enum_prefix) = false; + + // Default zero value enumeration + RESPONSE_RESULT_TYPE_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "UNSPECIFIED" ]; + // The message did not call the IBC application callbacks (because, for + // example, the packet had already been relayed) + RESPONSE_RESULT_TYPE_NOOP = 1 [ (gogoproto.enumvalue_customname) = "NOOP" ]; + // The message was executed successfully + RESPONSE_RESULT_TYPE_SUCCESS = 2 + [ (gogoproto.enumvalue_customname) = "SUCCESS" ]; + // The message was executed unsuccessfully + RESPONSE_RESULT_TYPE_FAILURE = 3 + [ (gogoproto.enumvalue_customname) = "FAILURE" ]; +} + +// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It +// is called by a relayer on Chain A. +message MsgChannelOpenInit { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + Channel channel = 2 [ (gogoproto.nullable) = false ]; + string signer = 3; +} + +// MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. +message MsgChannelOpenInitResponse { + option (gogoproto.goproto_getters) = false; + + string channel_id = 1; + string version = 2; +} + +// MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel +// on Chain B. The version field within the Channel field has been deprecated. +// Its value will be ignored by core IBC. +message MsgChannelOpenTry { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + // Deprecated: this field is unused. Crossing hello's are no longer supported + // in core IBC. + string previous_channel_id = 2 [ deprecated = true ]; + // NOTE: the version field within the channel has been deprecated. Its value + // will be ignored by core IBC. + Channel channel = 3 [ (gogoproto.nullable) = false ]; + string counterparty_version = 4; + bytes proof_init = 5; + ibc.core.client.v1.Height proof_height = 6 [ (gogoproto.nullable) = false ]; + string signer = 7; +} + +// MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. +message MsgChannelOpenTryResponse { + option (gogoproto.goproto_getters) = false; + + string version = 1; + string channel_id = 2; +} + +// MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge +// the change of channel state to TRYOPEN on Chain B. +message MsgChannelOpenAck { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + string counterparty_channel_id = 3; + string counterparty_version = 4; + bytes proof_try = 5; + ibc.core.client.v1.Height proof_height = 6 [ (gogoproto.nullable) = false ]; + string signer = 7; +} + +// MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. +message MsgChannelOpenAckResponse {} + +// MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to +// acknowledge the change of channel state to OPEN on Chain A. +message MsgChannelOpenConfirm { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + bytes proof_ack = 3; + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; + string signer = 5; +} + +// MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response +// type. +message MsgChannelOpenConfirmResponse {} + +// MsgChannelCloseInit defines a msg sent by a Relayer to Chain A +// to close a channel with Chain B. +message MsgChannelCloseInit { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + string signer = 3; +} + +// MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. +message MsgChannelCloseInitResponse {} + +// MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B +// to acknowledge the change of channel state to CLOSED on Chain A. +message MsgChannelCloseConfirm { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + bytes proof_init = 3; + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; + string signer = 5; +} + +// MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response +// type. +message MsgChannelCloseConfirmResponse {} + +// MsgRecvPacket receives incoming IBC packet +message MsgRecvPacket { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + bytes proof_commitment = 2; + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; + string signer = 4; +} + +// MsgRecvPacketResponse defines the Msg/RecvPacket response type. +message MsgRecvPacketResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgTimeout receives timed-out packet +message MsgTimeout { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + bytes proof_unreceived = 2; + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; + uint64 next_sequence_recv = 4; + string signer = 5; +} + +// MsgTimeoutResponse defines the Msg/Timeout response type. +message MsgTimeoutResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgTimeoutOnClose timed-out packet upon counterparty channel closure. +message MsgTimeoutOnClose { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + bytes proof_unreceived = 2; + bytes proof_close = 3; + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; + uint64 next_sequence_recv = 5; + string signer = 6; +} + +// MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. +message MsgTimeoutOnCloseResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgAcknowledgement receives incoming IBC acknowledgement +message MsgAcknowledgement { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + bytes acknowledgement = 2; + bytes proof_acked = 3; + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; + string signer = 5; +} + +// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. +message MsgAcknowledgementResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} diff --git a/proto/ibc/core/channel/v2/genesis.proto b/proto/ibc/core/channel/v2/genesis.proto new file mode 100644 index 0000000000..03a22b120c --- /dev/null +++ b/proto/ibc/core/channel/v2/genesis.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; + +package ibc.core.channel.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/v2/types"; + +import "gogoproto/gogo.proto"; + +// GenesisState defines the ibc channel/v2 submodule's genesis state. +message GenesisState { + repeated PacketState acknowledgements = 2 [ (gogoproto.nullable) = false ]; + repeated PacketState commitments = 3 [ (gogoproto.nullable) = false ]; + repeated PacketState receipts = 4 [ (gogoproto.nullable) = false ]; + repeated PacketState async_packets = 5 [ (gogoproto.nullable) = false ]; + repeated PacketSequence send_sequences = 6 [ (gogoproto.nullable) = false ]; +} + +// PacketState defines the generic type necessary to retrieve and store +// packet commitments, acknowledgements, and receipts. +// Caller is responsible for knowing the context necessary to interpret this +// state as a commitment, acknowledgement, or a receipt. +message PacketState { + option (gogoproto.goproto_getters) = false; + + // client unique identifier. + string client_id = 1; + // packet sequence. + uint64 sequence = 2; + // embedded data that represents packet state. + bytes data = 3; +} + +// PacketSequence defines the genesis type necessary to retrieve and store next +// send sequences. +message PacketSequence { + // client unique identifier. + string client_id = 1; + // packet sequence + uint64 sequence = 2; +} diff --git a/proto/ibc/core/channel/v2/packet.proto b/proto/ibc/core/channel/v2/packet.proto new file mode 100644 index 0000000000..d21a2894cb --- /dev/null +++ b/proto/ibc/core/channel/v2/packet.proto @@ -0,0 +1,69 @@ + +syntax = "proto3"; + +package ibc.core.channel.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/v2/types"; + +import "gogoproto/gogo.proto"; + +// Packet defines a type that carries data across different chains through IBC +message Packet { + // number corresponds to the order of sends and receives, where a Packet + // with an earlier sequence number must be sent and received before a Packet + // with a later sequence number. + uint64 sequence = 1; + // identifies the sending client on the sending chain. + string source_client = 2; + // identifies the receiving client on the receiving chain. + string destination_client = 3; + // timeout timestamp in seconds after which the packet times out. + uint64 timeout_timestamp = 4; + // a list of payloads, each one for a specific application. + repeated Payload payloads = 5 [ (gogoproto.nullable) = false ]; +} + +// Payload contains the source and destination ports and payload for the +// application (version, encoding, raw bytes) +message Payload { + // specifies the source port of the packet. + string source_port = 1; + // specifies the destination port of the packet. + string destination_port = 2; + // version of the specified application. + string version = 3; + // the encoding used for the provided value. + string encoding = 4; + // the raw bytes for the payload. + bytes value = 5; +} + +// Acknowledgement contains a list of all ack results associated with a single +// packet. In the case of a successful receive, the acknowledgement will contain +// an app acknowledgement for each application that received a payload in the +// same order that the payloads were sent in the packet. If the receive is not +// successful, the acknowledgement will contain a single app acknowledgment +// which will be a constant error acknowledgment as defined by the IBC v2 +// protocol. +message Acknowledgement { repeated bytes app_acknowledgements = 1; } + +// PacketStatus specifies the status of a RecvPacketResult. +enum PacketStatus { + // PACKET_STATUS_UNSPECIFIED indicates an unknown packet status. + PACKET_STATUS_UNSPECIFIED = 0 [ (gogoproto.enumvalue_customname) = "NONE" ]; + // PACKET_STATUS_SUCCESS indicates a successful packet receipt. + PACKET_STATUS_SUCCESS = 1 [ (gogoproto.enumvalue_customname) = "Success" ]; + // PACKET_STATUS_FAILURE indicates a failed packet receipt. + PACKET_STATUS_FAILURE = 2 [ (gogoproto.enumvalue_customname) = "Failure" ]; + // PACKET_STATUS_ASYNC indicates an async packet receipt. + PACKET_STATUS_ASYNC = 3 [ (gogoproto.enumvalue_customname) = "Async" ]; +} + +// RecvPacketResult speecifies the status of a packet as well as the +// acknowledgement bytes. +message RecvPacketResult { + // status of the packet + PacketStatus status = 1; + // acknowledgement of the packet + bytes acknowledgement = 2; +} diff --git a/proto/ibc/core/channel/v2/query.proto b/proto/ibc/core/channel/v2/query.proto new file mode 100644 index 0000000000..c624c37361 --- /dev/null +++ b/proto/ibc/core/channel/v2/query.proto @@ -0,0 +1,230 @@ +syntax = "proto3"; + +package ibc.core.channel.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/v2/types"; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/channel/v2/genesis.proto"; +import "ibc/core/client/v1/client.proto"; +import "google/api/annotations.proto"; +import "gogoproto/gogo.proto"; + +// Query provides defines the gRPC querier service +service Query { + // NextSequenceSend returns the next send sequence for a given channel. + rpc NextSequenceSend(QueryNextSequenceSendRequest) + returns (QueryNextSequenceSendResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/next_sequence_send"; + } + + // PacketCommitment queries a stored packet commitment hash. + rpc PacketCommitment(QueryPacketCommitmentRequest) + returns (QueryPacketCommitmentResponse) { + option (google.api.http).get = "/ibc/core/channel/v2/clients/{client_id}/" + "packet_commitments/{sequence}"; + } + + // PacketCommitments queries a stored packet commitment hash. + rpc PacketCommitments(QueryPacketCommitmentsRequest) + returns (QueryPacketCommitmentsResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/packet_commitments"; + } + + // PacketAcknowledgement queries a stored acknowledgement commitment hash. + rpc PacketAcknowledgement(QueryPacketAcknowledgementRequest) + returns (QueryPacketAcknowledgementResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/packet_acks/{sequence}"; + } + + // PacketAcknowledgements returns all packet acknowledgements associated with + // a channel. + rpc PacketAcknowledgements(QueryPacketAcknowledgementsRequest) + returns (QueryPacketAcknowledgementsResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/packet_acknowledgements"; + } + + // PacketReceipt queries a stored packet receipt. + rpc PacketReceipt(QueryPacketReceiptRequest) + returns (QueryPacketReceiptResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/packet_receipts/{sequence}"; + } + + // UnreceivedPackets returns all the unreceived IBC packets associated with a + // channel and sequences. + rpc UnreceivedPackets(QueryUnreceivedPacketsRequest) + returns (QueryUnreceivedPacketsResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/packet_commitments/" + "{sequences}/unreceived_packets"; + } + + // UnreceivedAcks returns all the unreceived IBC acknowledgements associated + // with a channel and sequences. + rpc UnreceivedAcks(QueryUnreceivedAcksRequest) + returns (QueryUnreceivedAcksResponse) { + option (google.api.http).get = + "/ibc/core/channel/v2/clients/{client_id}/packet_commitments/" + "{packet_ack_sequences}/unreceived_acks"; + } +} + +// QueryNextSequenceSendRequest is the request type for the +// Query/QueryNextSequenceSend RPC method +message QueryNextSequenceSendRequest { + // client unique identifier + string client_id = 1; +} + +// QueryNextSequenceSendResponse is the response type for the +// Query/QueryNextSequenceSend RPC method +message QueryNextSequenceSendResponse { + // next sequence send number + uint64 next_sequence_send = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketCommitmentRequest is the request type for the +// Query/PacketCommitment RPC method. +message QueryPacketCommitmentRequest { + // client unique identifier + string client_id = 1; + // packet sequence + uint64 sequence = 2; +} + +// QueryPacketCommitmentResponse is the response type for the +// Query/PacketCommitment RPC method. +message QueryPacketCommitmentResponse { + // packet associated with the request fields + bytes commitment = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketCommitmentsRequest is the request type for the +// Query/PacketCommitments RPC method. +message QueryPacketCommitmentsRequest { + // client unique identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryPacketCommitmentResponse is the response type for the +// Query/PacketCommitment RPC method. +message QueryPacketCommitmentsResponse { + // collection of packet commitments for the requested channel identifier. + repeated ibc.core.channel.v2.PacketState commitments = 1; + // pagination response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height. + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketAcknowledgementRequest is the request type for the +// Query/PacketAcknowledgement RPC method. +message QueryPacketAcknowledgementRequest { + // client unique identifier + string client_id = 1; + // packet sequence + uint64 sequence = 2; +} + +// QueryPacketAcknowledgementResponse is the response type for the +// Query/PacketAcknowledgement RPC method. +message QueryPacketAcknowledgementResponse { + // acknowledgement associated with the request fields + bytes acknowledgement = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketAcknowledgementsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketAcknowledgementsRequest { + // client unique identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; + // list of packet sequences + repeated uint64 packet_commitment_sequences = 3; +} + +// QueryPacketAcknowledgemetsResponse is the request type for the +// Query/QueryPacketAcknowledgements RPC method +message QueryPacketAcknowledgementsResponse { + repeated ibc.core.channel.v2.PacketState acknowledgements = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryPacketReceiptRequest is the request type for the Query/PacketReceipt RPC +// method. +message QueryPacketReceiptRequest { + // client unique identifier + string client_id = 1; + // packet sequence + uint64 sequence = 2; +} + +// QueryPacketReceiptResponse is the response type for the Query/PacketReceipt +// RPC method. +message QueryPacketReceiptResponse { + // success flag for if receipt exists + bool received = 2; + // merkle proof of existence or absence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; +} + +// QueryUnreceivedPacketsRequest is the request type for the +// Query/UnreceivedPackets RPC method +message QueryUnreceivedPacketsRequest { + // client unique identifier + string client_id = 1; + // list of packet sequences + repeated uint64 sequences = 2; +} + +// QueryUnreceivedPacketsResponse is the response type for the +// Query/UnreceivedPacketCommitments RPC method +message QueryUnreceivedPacketsResponse { + // list of unreceived packet sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [ (gogoproto.nullable) = false ]; +} + +// QueryUnreceivedAcks is the request type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksRequest { + // client unique identifier + string client_id = 1; + // list of acknowledgement sequences + repeated uint64 packet_ack_sequences = 2; +} + +// QueryUnreceivedAcksResponse is the response type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksResponse { + // list of unreceived acknowledgement sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/core/channel/v2/tx.proto b/proto/ibc/core/channel/v2/tx.proto new file mode 100644 index 0000000000..0ec8cdbe9f --- /dev/null +++ b/proto/ibc/core/channel/v2/tx.proto @@ -0,0 +1,122 @@ +syntax = "proto3"; + +package ibc.core.channel.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/04-channel/v2/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "ibc/core/channel/v2/packet.proto"; +import "ibc/core/client/v1/client.proto"; + +// Msg defines the ibc/channel/v2 Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // SendPacket defines a rpc handler method for MsgSendPacket. + rpc SendPacket(MsgSendPacket) returns (MsgSendPacketResponse); + + // RecvPacket defines a rpc handler method for MsgRecvPacket. + rpc RecvPacket(MsgRecvPacket) returns (MsgRecvPacketResponse); + + // Timeout defines a rpc handler method for MsgTimeout. + rpc Timeout(MsgTimeout) returns (MsgTimeoutResponse); + + // Acknowledgement defines a rpc handler method for MsgAcknowledgement. + rpc Acknowledgement(MsgAcknowledgement) returns (MsgAcknowledgementResponse); +} + +// MsgSendPacket sends an outgoing IBC packet. +message MsgSendPacket { + option (cosmos.msg.v1.signer) = "signer"; + option (gogoproto.goproto_getters) = false; + + string source_client = 1; + uint64 timeout_timestamp = 2; + repeated Payload payloads = 3 [ (gogoproto.nullable) = false ]; + string signer = 4; +} + +// MsgSendPacketResponse defines the Msg/SendPacket response type. +message MsgSendPacketResponse { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; +} + +// MsgRecvPacket receives an incoming IBC packet. +message MsgRecvPacket { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + bytes proof_commitment = 2; + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; + string signer = 4; +} + +// ResponseResultType defines the possible outcomes of the execution of a +// message +enum ResponseResultType { + option (gogoproto.goproto_enum_prefix) = false; + + // Default zero value enumeration + RESPONSE_RESULT_TYPE_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "UNSPECIFIED" ]; + // The message did not call the IBC application callbacks (because, for + // example, the packet had already been relayed) + RESPONSE_RESULT_TYPE_NOOP = 1 [ (gogoproto.enumvalue_customname) = "NOOP" ]; + // The message was executed successfully + RESPONSE_RESULT_TYPE_SUCCESS = 2 + [ (gogoproto.enumvalue_customname) = "SUCCESS" ]; + // The message was executed unsuccessfully + RESPONSE_RESULT_TYPE_FAILURE = 3 + [ (gogoproto.enumvalue_customname) = "FAILURE" ]; +} + +// MsgRecvPacketResponse defines the Msg/RecvPacket response type. +message MsgRecvPacketResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgTimeout receives timed-out packet +message MsgTimeout { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + bytes proof_unreceived = 2; + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; + string signer = 5; +} + +// MsgTimeoutResponse defines the Msg/Timeout response type. +message MsgTimeoutResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgAcknowledgement receives incoming IBC acknowledgement. +message MsgAcknowledgement { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [ (gogoproto.nullable) = false ]; + Acknowledgement acknowledgement = 2 [ (gogoproto.nullable) = false ]; + bytes proof_acked = 3; + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; + string signer = 5; +} + +// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. +message MsgAcknowledgementResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} diff --git a/proto/ibc/core/client/v1/client.proto b/proto/ibc/core/client/v1/client.proto new file mode 100644 index 0000000000..47b75235b4 --- /dev/null +++ b/proto/ibc/core/client/v1/client.proto @@ -0,0 +1,69 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// IdentifiedClientState defines a client state with an additional client +// identifier field. +message IdentifiedClientState { + // client identifier + string client_id = 1; + // client state + google.protobuf.Any client_state = 2; +} + +// ConsensusStateWithHeight defines a consensus state with an additional height +// field. +message ConsensusStateWithHeight { + // consensus state height + Height height = 1 [ (gogoproto.nullable) = false ]; + // consensus state + google.protobuf.Any consensus_state = 2; +} + +// ClientConsensusStates defines all the stored consensus states for a given +// client. +message ClientConsensusStates { + // client identifier + string client_id = 1; + // consensus states and their heights associated with the client + repeated ConsensusStateWithHeight consensus_states = 2 + [ (gogoproto.nullable) = false ]; +} + +// Height is a monotonically increasing data type +// that can be compared against another Height for the purposes of updating and +// freezing clients +// +// Normally the RevisionHeight is incremented at each height while keeping +// RevisionNumber the same. However some consensus algorithms may choose to +// reset the height in certain conditions e.g. hard forks, state-machine +// breaking changes In these cases, the RevisionNumber is incremented so that +// height continues to be monitonically increasing even as the RevisionHeight +// gets reset +// +// Please note that json tags for generated Go code are overridden to explicitly +// exclude the omitempty jsontag. This enforces the Go json marshaller to always +// emit zero values for both revision_number and revision_height. +message Height { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + // the revision that the client is currently on + uint64 revision_number = 1 [ (gogoproto.jsontag) = "revision_number" ]; + // the height within the given revision + uint64 revision_height = 2 [ (gogoproto.jsontag) = "revision_height" ]; +} + +// Params defines the set of IBC light client parameters. +message Params { + // allowed_clients defines the list of allowed client state types which can be + // created and interacted with. If a client type is removed from the allowed + // clients list, usage of this client will be disabled until it is added again + // to the list. + repeated string allowed_clients = 1; +} diff --git a/proto/ibc/core/client/v1/genesis.proto b/proto/ibc/core/client/v1/genesis.proto new file mode 100644 index 0000000000..0e3122b1d6 --- /dev/null +++ b/proto/ibc/core/client/v1/genesis.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/types"; + +import "ibc/core/client/v1/client.proto"; +import "gogoproto/gogo.proto"; + +// GenesisState defines the ibc client submodule's genesis state. +message GenesisState { + // client states with their corresponding identifiers + repeated IdentifiedClientState clients = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "IdentifiedClientStates" + ]; + // consensus states from each client + repeated ClientConsensusStates clients_consensus = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "ClientsConsensusStates" + ]; + // metadata from each client + repeated IdentifiedGenesisMetadata clients_metadata = 3 + [ (gogoproto.nullable) = false ]; + Params params = 4 [ (gogoproto.nullable) = false ]; + // Deprecated: create_localhost has been deprecated. + // The localhost client is automatically created at genesis. + bool create_localhost = 5 [ deprecated = true ]; + // the sequence for the next generated client identifier + uint64 next_client_sequence = 6; +} + +// GenesisMetadata defines the genesis type for metadata that will be used +// to export all client store keys that are not client or consensus states. +message GenesisMetadata { + option (gogoproto.goproto_getters) = false; + + // store key of metadata without clientID-prefix + bytes key = 1; + // metadata value + bytes value = 2; +} + +// IdentifiedGenesisMetadata has the client metadata with the corresponding +// client id. +message IdentifiedGenesisMetadata { + string client_id = 1; + repeated GenesisMetadata client_metadata = 2 [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/core/client/v1/query.proto b/proto/ibc/core/client/v1/query.proto new file mode 100644 index 0000000000..fd3f7d6773 --- /dev/null +++ b/proto/ibc/core/client/v1/query.proto @@ -0,0 +1,285 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/types"; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "cosmos/query/v1/query.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/commitment/v2/commitment.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "gogoproto/gogo.proto"; + +// Query provides defines the gRPC querier service +service Query { + // ClientState queries an IBC light client. + rpc ClientState(QueryClientStateRequest) returns (QueryClientStateResponse) { + option (google.api.http).get = + "/ibc/core/client/v1/client_states/{client_id}"; + } + + // ClientStates queries all the IBC light clients of a chain. + rpc ClientStates(QueryClientStatesRequest) + returns (QueryClientStatesResponse) { + option (google.api.http).get = "/ibc/core/client/v1/client_states"; + } + + // ConsensusState queries a consensus state associated with a client state at + // a given height. + rpc ConsensusState(QueryConsensusStateRequest) + returns (QueryConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/consensus_states/" + "{client_id}/revision/{revision_number}/" + "height/{revision_height}"; + } + + // ConsensusStates queries all the consensus state associated with a given + // client. + rpc ConsensusStates(QueryConsensusStatesRequest) + returns (QueryConsensusStatesResponse) { + option (google.api.http).get = + "/ibc/core/client/v1/consensus_states/{client_id}"; + } + + // ConsensusStateHeights queries the height of every consensus states + // associated with a given client. + rpc ConsensusStateHeights(QueryConsensusStateHeightsRequest) + returns (QueryConsensusStateHeightsResponse) { + option (google.api.http).get = + "/ibc/core/client/v1/consensus_states/{client_id}/heights"; + } + + // Status queries the status of an IBC client. + rpc ClientStatus(QueryClientStatusRequest) + returns (QueryClientStatusResponse) { + option (google.api.http).get = + "/ibc/core/client/v1/client_status/{client_id}"; + } + + // ClientParams queries all parameters of the ibc client submodule. + rpc ClientParams(QueryClientParamsRequest) + returns (QueryClientParamsResponse) { + option (google.api.http).get = "/ibc/core/client/v1/params"; + } + + // ClientCreator queries the creator of a given client. + rpc ClientCreator(QueryClientCreatorRequest) + returns (QueryClientCreatorResponse) { + option (google.api.http).get = + "/ibc/core/client/v1/client_creator/{client_id}"; + } + + // UpgradedClientState queries an Upgraded IBC light client. + rpc UpgradedClientState(QueryUpgradedClientStateRequest) + returns (QueryUpgradedClientStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/upgraded_client_states"; + } + + // UpgradedConsensusState queries an Upgraded IBC consensus state. + rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) + returns (QueryUpgradedConsensusStateResponse) { + option (google.api.http).get = + "/ibc/core/client/v1/upgraded_consensus_states"; + } + + // VerifyMembership queries an IBC light client for proof verification of a + // value at a given key path. + rpc VerifyMembership(QueryVerifyMembershipRequest) + returns (QueryVerifyMembershipResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http) = { + post : "/ibc/core/client/v1/verify_membership" + body : "*" + }; + } +} + +// QueryClientStateRequest is the request type for the Query/ClientState RPC +// method +message QueryClientStateRequest { + // client state unique identifier + string client_id = 1; +} + +// QueryClientStateResponse is the response type for the Query/ClientState RPC +// method. Besides the client state, it includes a proof and the height from +// which the proof was retrieved. +message QueryClientStateResponse { + // client state associated with the request identifier + google.protobuf.Any client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryClientStatesRequest is the request type for the Query/ClientStates RPC +// method +message QueryClientStatesRequest { + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryClientStatesResponse is the response type for the Query/ClientStates RPC +// method. +message QueryClientStatesResponse { + // list of stored ClientStates of the chain. + repeated IdentifiedClientState client_states = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "IdentifiedClientStates" + ]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryConsensusStateRequest is the request type for the Query/ConsensusState +// RPC method. Besides the consensus state, it includes a proof and the height +// from which the proof was retrieved. +message QueryConsensusStateRequest { + // client identifier + string client_id = 1; + // consensus state revision number + uint64 revision_number = 2; + // consensus state revision height + uint64 revision_height = 3; + // latest_height overrides the height field and queries the latest stored + // ConsensusState + bool latest_height = 4; +} + +// QueryConsensusStateResponse is the response type for the Query/ConsensusState +// RPC method +message QueryConsensusStateResponse { + // consensus state associated with the client identifier at the given height + google.protobuf.Any consensus_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryConsensusStatesRequest is the request type for the Query/ConsensusStates +// RPC method. +message QueryConsensusStatesRequest { + // client identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConsensusStatesResponse is the response type for the +// Query/ConsensusStates RPC method +message QueryConsensusStatesResponse { + // consensus states associated with the identifier + repeated ConsensusStateWithHeight consensus_states = 1 + [ (gogoproto.nullable) = false ]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryConsensusStateHeightsRequest is the request type for +// Query/ConsensusStateHeights RPC method. +message QueryConsensusStateHeightsRequest { + // client identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConsensusStateHeightsResponse is the response type for the +// Query/ConsensusStateHeights RPC method +message QueryConsensusStateHeightsResponse { + // consensus state heights + repeated Height consensus_state_heights = 1 [ (gogoproto.nullable) = false ]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryClientStatusRequest is the request type for the Query/ClientStatus RPC +// method +message QueryClientStatusRequest { + // client unique identifier + string client_id = 1; +} + +// QueryClientStatusResponse is the response type for the Query/ClientStatus RPC +// method. It returns the current status of the IBC client. +message QueryClientStatusResponse { string status = 1; } + +// QueryClientParamsRequest is the request type for the Query/ClientParams RPC +// method. +message QueryClientParamsRequest {} + +// QueryClientParamsResponse is the response type for the Query/ClientParams RPC +// method. +message QueryClientParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} + +// QueryClientCreatorRequest is the request type for the Query/ClientCreator RPC +// method. +message QueryClientCreatorRequest { + // client unique identifier + string client_id = 1; +} + +// QueryClientCreatorResponse is the response type for the Query/ClientCreator +// RPC method. +message QueryClientCreatorResponse { + // creator of the client + string creator = 1; +} + +// QueryUpgradedClientStateRequest is the request type for the +// Query/UpgradedClientState RPC method +message QueryUpgradedClientStateRequest {} + +// QueryUpgradedClientStateResponse is the response type for the +// Query/UpgradedClientState RPC method. +message QueryUpgradedClientStateResponse { + // client state associated with the request identifier + google.protobuf.Any upgraded_client_state = 1; +} + +// QueryUpgradedConsensusStateRequest is the request type for the +// Query/UpgradedConsensusState RPC method +message QueryUpgradedConsensusStateRequest {} + +// QueryUpgradedConsensusStateResponse is the response type for the +// Query/UpgradedConsensusState RPC method. +message QueryUpgradedConsensusStateResponse { + // Consensus state associated with the request identifier + google.protobuf.Any upgraded_consensus_state = 1; +} + +// QueryVerifyMembershipRequest is the request type for the +// Query/VerifyMembership RPC method +message QueryVerifyMembershipRequest { + // client unique identifier. + string client_id = 1; + // the proof to be verified by the client. + bytes proof = 2; + // the height of the commitment root at which the proof is verified. + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; + // reserved: deprecated field. + reserved 4; + // the value which is proven. + bytes value = 5; + // optional time delay + uint64 time_delay = 6; + // optional block delay + uint64 block_delay = 7; + // the commitment key path. + ibc.core.commitment.v2.MerklePath merkle_path = 8 + [ (gogoproto.nullable) = false ]; +} + +// QueryVerifyMembershipResponse is the response type for the +// Query/VerifyMembership RPC method +message QueryVerifyMembershipResponse { + // boolean indicating success or failure of proof verification. + bool success = 1; +} diff --git a/proto/ibc/core/client/v1/tx.proto b/proto/ibc/core/client/v1/tx.proto new file mode 100644 index 0000000000..06517657fb --- /dev/null +++ b/proto/ibc/core/client/v1/tx.proto @@ -0,0 +1,208 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/types"; + +import "amino/amino.proto"; +import "cosmos/msg/v1/msg.proto"; +import "cosmos/upgrade/v1beta1/upgrade.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; + +// Msg defines the ibc/client Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // CreateClient defines a rpc handler method for MsgCreateClient. + rpc CreateClient(MsgCreateClient) returns (MsgCreateClientResponse); + + // UpdateClient defines a rpc handler method for MsgUpdateClient. + rpc UpdateClient(MsgUpdateClient) returns (MsgUpdateClientResponse); + + // UpgradeClient defines a rpc handler method for MsgUpgradeClient. + rpc UpgradeClient(MsgUpgradeClient) returns (MsgUpgradeClientResponse); + + // SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. + rpc SubmitMisbehaviour(MsgSubmitMisbehaviour) + returns (MsgSubmitMisbehaviourResponse); + + // RecoverClient defines a rpc handler method for MsgRecoverClient. + rpc RecoverClient(MsgRecoverClient) returns (MsgRecoverClientResponse); + + // IBCSoftwareUpgrade defines a rpc handler method for MsgIBCSoftwareUpgrade. + rpc IBCSoftwareUpgrade(MsgIBCSoftwareUpgrade) + returns (MsgIBCSoftwareUpgradeResponse); + + // UpdateClientParams defines a rpc handler method for MsgUpdateParams. + rpc UpdateClientParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // DeleteClientCreator defines a rpc handler method for + // MsgDeleteClientCreator. + rpc DeleteClientCreator(MsgDeleteClientCreator) + returns (MsgDeleteClientCreatorResponse); +} + +// MsgCreateClient defines a message to create an IBC client +message MsgCreateClient { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // light client state + google.protobuf.Any client_state = 1; + // consensus state associated with the client that corresponds to a given + // height. + google.protobuf.Any consensus_state = 2; + // signer address + string signer = 3; +} + +// MsgCreateClientResponse defines the Msg/CreateClient response type. +message MsgCreateClientResponse { + option (gogoproto.goproto_getters) = false; + + string client_id = 1; +} + +// MsgUpdateClient defines an sdk.Msg to update a IBC client state using +// the given client message. +message MsgUpdateClient { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1; + // client message to update the light client + google.protobuf.Any client_message = 2; + // signer address + string signer = 3; +} + +// MsgUpdateClientResponse defines the Msg/UpdateClient response type. +message MsgUpdateClientResponse {} + +// MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client +// state +message MsgUpgradeClient { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1; + // upgraded client state + google.protobuf.Any client_state = 2; + // upgraded consensus state, only contains enough information to serve as a + // basis of trust in update logic + google.protobuf.Any consensus_state = 3; + // proof that old chain committed to new client + bytes proof_upgrade_client = 4; + // proof that old chain committed to new consensus state + bytes proof_upgrade_consensus_state = 5; + // signer address + string signer = 6; +} + +// MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. +message MsgUpgradeClientResponse {} + +// MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for +// light client misbehaviour. +// This message has been deprecated. Use MsgUpdateClient instead. +message MsgSubmitMisbehaviour { + option deprecated = true; + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1; + // misbehaviour used for freezing the light client + google.protobuf.Any misbehaviour = 2; + // signer address + string signer = 3; +} + +// MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response +// type. +message MsgSubmitMisbehaviourResponse {} + +// MsgRecoverClient defines the message used to recover a frozen or expired +// client. +message MsgRecoverClient { + option (amino.name) = "cosmos-sdk/MsgRecoverClient"; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; + + // the client identifier for the client to be updated if the proposal passes + string subject_client_id = 1; + // the substitute client identifier for the client which will replace the + // subject client + string substitute_client_id = 2; + + // signer address + string signer = 3; +} + +// MsgRecoverClientResponse defines the Msg/RecoverClient response type. +message MsgRecoverClientResponse {} + +// MsgIBCSoftwareUpgrade defines the message used to schedule an upgrade of an +// IBC client using a v1 governance proposal +message MsgIBCSoftwareUpgrade { + option (cosmos.msg.v1.signer) = "signer"; + cosmos.upgrade.v1beta1.Plan plan = 1 [ (gogoproto.nullable) = false ]; + // An UpgradedClientState must be provided to perform an IBC breaking upgrade. + // This will make the chain commit to the correct upgraded (self) client state + // before the upgrade occurs, so that connecting chains can verify that the + // new upgraded client is valid by verifying a proof on the previous version + // of the chain. This will allow IBC connections to persist smoothly across + // planned chain upgrades. Correspondingly, the UpgradedClientState field has + // been deprecated in the Cosmos SDK to allow for this logic to exist solely + // in the 02-client module. + google.protobuf.Any upgraded_client_state = 2; + // signer address + string signer = 3; +} + +// MsgIBCSoftwareUpgradeResponse defines the Msg/IBCSoftwareUpgrade response +// type. +message MsgIBCSoftwareUpgradeResponse {} + +// MsgUpdateParams defines the sdk.Msg type to update the client parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address + string signer = 1; + + // params defines the client parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [ (gogoproto.nullable) = false ]; +} + +// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +message MsgUpdateParamsResponse {} + +// MsgDeleteClientCreator defines a message to delete the client creator of a +// client +message MsgDeleteClientCreator { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client identifier + string client_id = 1; + // signer address + string signer = 2; +} + +// MsgDeleteClientCreatorResponse defines the Msg/DeleteClientCreator response +// type. +message MsgDeleteClientCreatorResponse {} diff --git a/proto/ibc/core/client/v2/config.proto b/proto/ibc/core/client/v2/config.proto new file mode 100644 index 0000000000..969b660b1f --- /dev/null +++ b/proto/ibc/core/client/v2/config.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package ibc.core.client.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/v2/types"; + +// Config is a **per-client** configuration struct that sets which relayers are +// allowed to relay v2 IBC messages for a given client. If it is set, then only +// relayers in the allow list can send v2 messages If it is not set, then the +// client allows permissionless relaying of v2 messages +message Config { + // allowed_relayers defines the set of allowed relayers for IBC V2 protocol + // for the given client + repeated string allowed_relayers = 1; +} \ No newline at end of file diff --git a/proto/ibc/core/client/v2/counterparty.proto b/proto/ibc/core/client/v2/counterparty.proto new file mode 100644 index 0000000000..99cc19e0eb --- /dev/null +++ b/proto/ibc/core/client/v2/counterparty.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package ibc.core.client.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/v2/types"; + +// CounterpartyInfo defines the key that the counterparty will use to message +// our client +message CounterpartyInfo { + // merkle prefix key is the prefix that ics provable keys are stored under + repeated bytes merkle_prefix = 1; + // client identifier is the identifier used to send packet messages to our + // client + string client_id = 2; +} diff --git a/proto/ibc/core/client/v2/genesis.proto b/proto/ibc/core/client/v2/genesis.proto new file mode 100644 index 0000000000..a729ea9b33 --- /dev/null +++ b/proto/ibc/core/client/v2/genesis.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package ibc.core.client.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/v2/types"; + +import "ibc/core/client/v2/counterparty.proto"; +import "gogoproto/gogo.proto"; + +// GenesisCounterpartyInfo defines the state associating a client with a +// counterparty. +message GenesisCounterpartyInfo { + // ClientId is the ID of the given client. + string client_id = 1; + + // CounterpartyInfo is the counterparty info of the given client. + CounterpartyInfo counterparty_info = 2 [ (gogoproto.nullable) = false ]; +} + +// GenesisState defines the ibc client v2 submodule's genesis state. +message GenesisState { + // counterparty info for each client + repeated GenesisCounterpartyInfo counterparty_infos = 1 + [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/core/client/v2/query.proto b/proto/ibc/core/client/v2/query.proto new file mode 100644 index 0000000000..e7e2670a1d --- /dev/null +++ b/proto/ibc/core/client/v2/query.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +package ibc.core.client.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/v2/types"; + +import "ibc/core/client/v2/counterparty.proto"; +import "ibc/core/client/v2/config.proto"; +import "google/api/annotations.proto"; + +// Query provides defines the gRPC querier service +service Query { + // CounterpartyInfo queries an IBC light counter party info. + rpc CounterpartyInfo(QueryCounterpartyInfoRequest) + returns (QueryCounterpartyInfoResponse) { + option (google.api.http).get = + "/ibc/core/client/v2/counterparty_info/{client_id}"; + } + + // Config queries the IBC client v2 configuration for a given client. + rpc Config(QueryConfigRequest) returns (QueryConfigResponse) { + option (google.api.http).get = "/ibc/core/client/v2/config/{client_id}"; + } +} + +// QueryCounterpartyInfoRequest is the request type for the +// Query/CounterpartyInfo RPC method +message QueryCounterpartyInfoRequest { + // client state unique identifier + string client_id = 1; +} + +// QueryCounterpartyInfoResponse is the response type for the +// Query/CounterpartyInfo RPC method. +message QueryCounterpartyInfoResponse { + CounterpartyInfo counterparty_info = 1; +} + +// QueryConfigRequest is the request type for the Query/Config RPC method +message QueryConfigRequest { + // client state unique identifier + string client_id = 1; +} + +// QueryConfigResponse is the response type for the Query/Config RPC method +message QueryConfigResponse { Config config = 1; } diff --git a/proto/ibc/core/client/v2/tx.proto b/proto/ibc/core/client/v2/tx.proto new file mode 100644 index 0000000000..dd005af455 --- /dev/null +++ b/proto/ibc/core/client/v2/tx.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; + +package ibc.core.client.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/v2/types"; + +import "cosmos/msg/v1/msg.proto"; +import "gogoproto/gogo.proto"; +import "ibc/core/client/v2/config.proto"; + +// Msg defines the ibc/client/v2 Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // RegisterCounterparty defines a rpc handler method for + // MsgRegisterCounterparty. + rpc RegisterCounterparty(MsgRegisterCounterparty) + returns (MsgRegisterCounterpartyResponse); + + // UpdateClientConfig defines a rpc handler method for MsgUpdateClientConfig. + rpc UpdateClientConfig(MsgUpdateClientConfig) + returns (MsgUpdateClientConfigResponse); +} + +// MsgRegisterCounterparty defines a message to register a counterparty on a +// client +message MsgRegisterCounterparty { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client identifier + string client_id = 1; + // counterparty merkle prefix + repeated bytes counterparty_merkle_prefix = 2; + // counterparty client identifier + string counterparty_client_id = 3; + // signer address + string signer = 4; +} + +// MsgRegisterCounterpartyResponse defines the Msg/RegisterCounterparty response +// type. +message MsgRegisterCounterpartyResponse {} + +// MsgUpdateClientConfig defines the sdk.Msg type to update the configuration +// for a given client +message MsgUpdateClientConfig { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client identifier + string client_id = 1; + // allowed relayers + // + // NOTE: All fields in the config must be supplied. + Config config = 2 [ (gogoproto.nullable) = false ]; + // signer address + string signer = 3; +} + +// MsgUpdateClientConfigResponse defines the MsgUpdateClientConfig response +// type. +message MsgUpdateClientConfigResponse {} diff --git a/proto/ibc/core/commitment/v1/commitment.proto b/proto/ibc/core/commitment/v1/commitment.proto new file mode 100644 index 0000000000..31adccd167 --- /dev/null +++ b/proto/ibc/core/commitment/v1/commitment.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +package ibc.core.commitment.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/23-commitment/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/ics23/v1/proofs.proto"; + +// MerkleRoot defines a merkle root hash. +// In the Cosmos SDK, the AppHash of a block header becomes the root. +message MerkleRoot { + option (gogoproto.goproto_getters) = false; + + bytes hash = 1; +} + +// MerklePrefix is merkle path prefixed to the key. +// The constructed key from the Path and the key will be append(Path.KeyPath, +// append(Path.KeyPrefix, key...)) +message MerklePrefix { bytes key_prefix = 1; } + +// MerkleProof is a wrapper type over a chain of CommitmentProofs. +// It demonstrates membership or non-membership for an element or set of +// elements, verifiable in conjunction with a known commitment root. Proofs +// should be succinct. +// MerkleProofs are ordered from leaf-to-root +message MerkleProof { repeated cosmos.ics23.v1.CommitmentProof proofs = 1; } diff --git a/proto/ibc/core/commitment/v2/commitment.proto b/proto/ibc/core/commitment/v2/commitment.proto new file mode 100644 index 0000000000..21f624ad1a --- /dev/null +++ b/proto/ibc/core/commitment/v2/commitment.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; + +package ibc.core.commitment.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/23-commitment/types/v2"; + +// MerklePath is the path used to verify commitment proofs, which can be an +// arbitrary structured object (defined by a commitment type). +// ICS-23 verification supports membership proofs for nested merkle trees. +// The ICS-24 standard provable keys MUST be stored in the lowest level tree +// with an optional prefix. The IC24 provable tree may then be stored in a +// higher level tree(s) that hash up to the root hash stored in the consensus +// state of the client. Each element of the path represents the key of a merkle +// tree from the root to the leaf. The elements of the path before the final +// element must be the path to the tree that contains the ICS24 provable store. +// Thus, it should remain constant for all ICS24 proofs. The final element of +// the path is the key of the leaf in the ICS24 provable store, Thus IBC core +// will append the ICS24 path to the final element of the MerklePath stored in +// the counterparty to create the full path to the leaf for proof verification. +// Examples: +// Cosmos SDK: +// The Cosmos SDK commits to a multi-tree where each store is an IAVL tree and +// all store hashes are hashed in a simple merkle tree to get the final root +// hash. Thus, the MerklePath in the counterparty MerklePrefix has the following +// structure: ["ibc", ""] The core IBC handler will append the ICS24 path to the +// final element of the MerklePath like so: ["ibc", "{packetCommitmentPath}"] +// which will then be used for final verification. Ethereum: The Ethereum client +// commits to a single Patricia merkle trie. The ICS24 provable store is managed +// by the smart contract state. Each smart contract has a specific prefix +// reserved within the global trie. Thus the MerklePath in the counterparty is +// the prefix to the smart contract state in the global trie. Since there is +// only one tree in the commitment structure of ethereum the MerklePath in the +// counterparty MerklePrefix has the following structure: +// ["IBCCoreContractAddressStoragePrefix"] The core IBC handler will append the +// ICS24 path to the final element of the MerklePath like so: +// ["IBCCoreContractAddressStoragePrefix{packetCommitmentPath}"] which will then +// be used for final verification. Thus the MerklePath in the counterparty +// MerklePrefix is the nested key path from the root hash of the consensus state +// down to the ICS24 provable store. The IBC handler retrieves the counterparty +// key path to the ICS24 provable store from the MerklePath and appends the +// ICS24 path to get the final key path to the value being verified by the +// client against the root hash in the client's consensus state. +message MerklePath { repeated bytes key_path = 1; } diff --git a/proto/ibc/core/connection/v1/connection.proto b/proto/ibc/core/connection/v1/connection.proto new file mode 100644 index 0000000000..b023e01c74 --- /dev/null +++ b/proto/ibc/core/connection/v1/connection.proto @@ -0,0 +1,117 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/commitment/v1/commitment.proto"; + +// ICS03 - Connection Data Structures as defined in +// https://github.com/cosmos/ibc/blob/master/spec/core/ics-003-connection-semantics#data-structures + +// ConnectionEnd defines a stateful object on a chain connected to another +// separate one. +// NOTE: there must only be 2 defined ConnectionEnds to establish +// a connection between two chains. +message ConnectionEnd { + option (gogoproto.goproto_getters) = false; + // client associated with this connection. + string client_id = 1; + // IBC version which can be utilised to determine encodings or protocols for + // channels or packets utilising this connection. + repeated Version versions = 2; + // current state of the connection end. + State state = 3; + // counterparty chain associated with this connection. + Counterparty counterparty = 4 [ (gogoproto.nullable) = false ]; + // delay period that must pass before a consensus state can be used for + // packet-verification NOTE: delay period logic is only implemented by some + // clients. + uint64 delay_period = 5; +} + +// IdentifiedConnection defines a connection with additional connection +// identifier field. +message IdentifiedConnection { + option (gogoproto.goproto_getters) = false; + // connection identifier. + string id = 1; + // client associated with this connection. + string client_id = 2; + // IBC version which can be utilised to determine encodings or protocols for + // channels or packets utilising this connection + repeated Version versions = 3; + // current state of the connection end. + State state = 4; + // counterparty chain associated with this connection. + Counterparty counterparty = 5 [ (gogoproto.nullable) = false ]; + // delay period associated with this connection. + uint64 delay_period = 6; +} + +// State defines if a connection is in one of the following states: +// INIT, TRYOPEN, OPEN or UNINITIALIZED. +enum State { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + STATE_UNINITIALIZED_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "UNINITIALIZED" ]; + // A connection end has just started the opening handshake. + STATE_INIT = 1 [ (gogoproto.enumvalue_customname) = "INIT" ]; + // A connection end has acknowledged the handshake step on the counterparty + // chain. + STATE_TRYOPEN = 2 [ (gogoproto.enumvalue_customname) = "TRYOPEN" ]; + // A connection end has completed the handshake. + STATE_OPEN = 3 [ (gogoproto.enumvalue_customname) = "OPEN" ]; +} + +// Counterparty defines the counterparty chain associated with a connection end. +message Counterparty { + option (gogoproto.goproto_getters) = false; + + // identifies the client on the counterparty chain associated with a given + // connection. + string client_id = 1; + // identifies the connection end on the counterparty chain associated with a + // given connection. + string connection_id = 2; + // commitment merkle prefix of the counterparty chain. + ibc.core.commitment.v1.MerklePrefix prefix = 3 + [ (gogoproto.nullable) = false ]; +} + +// ClientPaths define all the connection paths for a client state. +message ClientPaths { + // list of connection paths + repeated string paths = 1; +} + +// ConnectionPaths define all the connection paths for a given client state. +message ConnectionPaths { + // client state unique identifier + string client_id = 1; + // list of connection paths + repeated string paths = 2; +} + +// Version defines the versioning scheme used to negotiate the IBC version in +// the connection handshake. +message Version { + option (gogoproto.goproto_getters) = false; + + // unique version identifier + string identifier = 1; + // list of features compatible with the specified identifier + repeated string features = 2; +} + +// Params defines the set of Connection parameters. +message Params { + // maximum expected time per block (in nanoseconds), used to enforce block + // delay. This parameter should reflect the largest amount of time that the + // chain might reasonably take to produce the next block under normal + // operating conditions. A safe choice is 3-5x the expected time per block. + uint64 max_expected_time_per_block = 1; +} diff --git a/proto/ibc/core/connection/v1/genesis.proto b/proto/ibc/core/connection/v1/genesis.proto new file mode 100644 index 0000000000..5708d446d1 --- /dev/null +++ b/proto/ibc/core/connection/v1/genesis.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/connection/v1/connection.proto"; + +// GenesisState defines the ibc connection submodule's genesis state. +message GenesisState { + repeated IdentifiedConnection connections = 1 + [ (gogoproto.nullable) = false ]; + repeated ConnectionPaths client_connection_paths = 2 + [ (gogoproto.nullable) = false ]; + // the sequence for the next generated connection identifier + uint64 next_connection_sequence = 3; + Params params = 4 [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/core/connection/v1/query.proto b/proto/ibc/core/connection/v1/query.proto new file mode 100644 index 0000000000..5449c59dc1 --- /dev/null +++ b/proto/ibc/core/connection/v1/query.proto @@ -0,0 +1,162 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/connection/v1/connection.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/any.proto"; + +// Query provides defines the gRPC querier service +service Query { + // Connection queries an IBC connection end. + rpc Connection(QueryConnectionRequest) returns (QueryConnectionResponse) { + option (google.api.http).get = + "/ibc/core/connection/v1/connections/{connection_id}"; + } + + // Connections queries all the IBC connections of a chain. + rpc Connections(QueryConnectionsRequest) returns (QueryConnectionsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/connections"; + } + + // ClientConnections queries the connection paths associated with a client + // state. + rpc ClientConnections(QueryClientConnectionsRequest) + returns (QueryClientConnectionsResponse) { + option (google.api.http).get = + "/ibc/core/connection/v1/client_connections/{client_id}"; + } + + // ConnectionClientState queries the client state associated with the + // connection. + rpc ConnectionClientState(QueryConnectionClientStateRequest) + returns (QueryConnectionClientStateResponse) { + option (google.api.http).get = + "/ibc/core/connection/v1/connections/{connection_id}/client_state"; + } + + // ConnectionConsensusState queries the consensus state associated with the + // connection. + rpc ConnectionConsensusState(QueryConnectionConsensusStateRequest) + returns (QueryConnectionConsensusStateResponse) { + option (google.api.http).get = + "/ibc/core/connection/v1/connections/{connection_id}/consensus_state/" + "revision/{revision_number}/height/{revision_height}"; + } + + // ConnectionParams queries all parameters of the ibc connection submodule. + rpc ConnectionParams(QueryConnectionParamsRequest) + returns (QueryConnectionParamsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/params"; + } +} + +// QueryConnectionRequest is the request type for the Query/Connection RPC +// method +message QueryConnectionRequest { + // connection unique identifier + string connection_id = 1; +} + +// QueryConnectionResponse is the response type for the Query/Connection RPC +// method. Besides the connection end, it includes a proof and the height from +// which the proof was retrieved. +message QueryConnectionResponse { + // connection associated with the request identifier + ibc.core.connection.v1.ConnectionEnd connection = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryConnectionsRequest is the request type for the Query/Connections RPC +// method +message QueryConnectionsRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryConnectionsResponse is the response type for the Query/Connections RPC +// method. +message QueryConnectionsResponse { + // list of stored connections of the chain. + repeated ibc.core.connection.v1.IdentifiedConnection connections = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryClientConnectionsRequest is the request type for the +// Query/ClientConnections RPC method +message QueryClientConnectionsRequest { + // client identifier associated with a connection + string client_id = 1; +} + +// QueryClientConnectionsResponse is the response type for the +// Query/ClientConnections RPC method +message QueryClientConnectionsResponse { + // slice of all the connection paths associated with a client. + repeated string connection_paths = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was generated + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryConnectionClientStateRequest is the request type for the +// Query/ConnectionClientState RPC method +message QueryConnectionClientStateRequest { + // connection identifier + string connection_id = 1; +} + +// QueryConnectionClientStateResponse is the response type for the +// Query/ConnectionClientState RPC method +message QueryConnectionClientStateResponse { + // client state associated with the channel + ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; +} + +// QueryConnectionConsensusStateRequest is the request type for the +// Query/ConnectionConsensusState RPC method +message QueryConnectionConsensusStateRequest { + // connection identifier + string connection_id = 1; + uint64 revision_number = 2; + uint64 revision_height = 3; +} + +// QueryConnectionConsensusStateResponse is the response type for the +// Query/ConnectionConsensusState RPC method +message QueryConnectionConsensusStateResponse { + // consensus state associated with the channel + google.protobuf.Any consensus_state = 1; + // client ID associated with the consensus state + string client_id = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [ (gogoproto.nullable) = false ]; +} + +// QueryConnectionParamsRequest is the request type for the +// Query/ConnectionParams RPC method. +message QueryConnectionParamsRequest {} + +// QueryConnectionParamsResponse is the response type for the +// Query/ConnectionParams RPC method. +message QueryConnectionParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/proto/ibc/core/connection/v1/tx.proto b/proto/ibc/core/connection/v1/tx.proto new file mode 100644 index 0000000000..8a900c0ee4 --- /dev/null +++ b/proto/ibc/core/connection/v1/tx.proto @@ -0,0 +1,157 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/connection/v1/connection.proto"; + +// Msg defines the ibc/connection Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. + rpc ConnectionOpenInit(MsgConnectionOpenInit) + returns (MsgConnectionOpenInitResponse); + + // ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. + rpc ConnectionOpenTry(MsgConnectionOpenTry) + returns (MsgConnectionOpenTryResponse); + + // ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. + rpc ConnectionOpenAck(MsgConnectionOpenAck) + returns (MsgConnectionOpenAckResponse); + + // ConnectionOpenConfirm defines a rpc handler method for + // MsgConnectionOpenConfirm. + rpc ConnectionOpenConfirm(MsgConnectionOpenConfirm) + returns (MsgConnectionOpenConfirmResponse); + + // UpdateConnectionParams defines a rpc handler method for + // MsgUpdateParams. + rpc UpdateConnectionParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgConnectionOpenInit defines the msg sent by an account on Chain A to +// initialize a connection with Chain B. +message MsgConnectionOpenInit { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string client_id = 1; + Counterparty counterparty = 2 [ (gogoproto.nullable) = false ]; + Version version = 3; + uint64 delay_period = 4; + string signer = 5; +} + +// MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response +// type. +message MsgConnectionOpenInitResponse {} + +// MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a +// connection on Chain B. +message MsgConnectionOpenTry { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string client_id = 1; + // Deprecated: this field is unused. Crossing hellos are no longer supported + // in core IBC. + string previous_connection_id = 2 [ deprecated = true ]; + // Deprecated: this field is unused. + google.protobuf.Any client_state = 3 [ deprecated = true ]; + Counterparty counterparty = 4 [ (gogoproto.nullable) = false ]; + uint64 delay_period = 5; + repeated Version counterparty_versions = 6; + ibc.core.client.v1.Height proof_height = 7 [ (gogoproto.nullable) = false ]; + // proof of the initialization the connection on Chain A: `UNINITIALIZED -> + // INIT` + bytes proof_init = 8; + // Deprecated: this field is unused. + bytes proof_client = 9 [ deprecated = true ]; + // Deprecated: this field is unused. + bytes proof_consensus = 10 [ deprecated = true ]; + // Deprecated: this field is unused. + ibc.core.client.v1.Height consensus_height = 11 + [ deprecated = true, (gogoproto.nullable) = false ]; + string signer = 12; + // Deprecated: this field is unused. + bytes host_consensus_state_proof = 13 [ deprecated = true ]; +} + +// MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. +message MsgConnectionOpenTryResponse {} + +// MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to +// acknowledge the change of connection state to TRYOPEN on Chain B. +message MsgConnectionOpenAck { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string connection_id = 1; + string counterparty_connection_id = 2; + Version version = 3; + // Deprecated: this field is unused. + google.protobuf.Any client_state = 4 [ deprecated = true ]; + ibc.core.client.v1.Height proof_height = 5 [ (gogoproto.nullable) = false ]; + // proof of the initialization the connection on Chain B: `UNINITIALIZED -> + // TRYOPEN` + bytes proof_try = 6; + // Deprecated: this field is unused. + bytes proof_client = 7 [ deprecated = true ]; + // Deprecated: this field is unused. + bytes proof_consensus = 8 [ deprecated = true ]; + // Deprecated: this field is unused. + ibc.core.client.v1.Height consensus_height = 9 + [ deprecated = true, (gogoproto.nullable) = false ]; + string signer = 10; + // Deprecated: this field is unused. + bytes host_consensus_state_proof = 11 [ deprecated = true ]; +} + +// MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. +message MsgConnectionOpenAckResponse {} + +// MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to +// acknowledge the change of connection state to OPEN on Chain A. +message MsgConnectionOpenConfirm { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string connection_id = 1; + // proof for the change of the connection state on Chain A: `INIT -> OPEN` + bytes proof_ack = 2; + ibc.core.client.v1.Height proof_height = 3 [ (gogoproto.nullable) = false ]; + string signer = 4; +} + +// MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm +// response type. +message MsgConnectionOpenConfirmResponse {} + +// MsgUpdateParams defines the sdk.Msg type to update the connection parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address + string signer = 1; + + // params defines the connection parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [ (gogoproto.nullable) = false ]; +} + +// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +message MsgUpdateParamsResponse {} diff --git a/proto/ibc/core/types/v1/genesis.proto b/proto/ibc/core/types/v1/genesis.proto new file mode 100644 index 0000000000..ed33aecedc --- /dev/null +++ b/proto/ibc/core/types/v1/genesis.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package ibc.core.types.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/genesis.proto"; +import "ibc/core/client/v2/genesis.proto"; +import "ibc/core/connection/v1/genesis.proto"; +import "ibc/core/channel/v1/genesis.proto"; +import "ibc/core/channel/v2/genesis.proto"; + +// GenesisState defines the ibc module's genesis state. +message GenesisState { + // ICS002 - Clients genesis state + ibc.core.client.v1.GenesisState client_genesis = 1 + [ (gogoproto.nullable) = false ]; + // ICS003 - Connections genesis state + ibc.core.connection.v1.GenesisState connection_genesis = 2 + [ (gogoproto.nullable) = false ]; + // ICS004 - Channel genesis state + ibc.core.channel.v1.GenesisState channel_genesis = 3 + [ (gogoproto.nullable) = false ]; + // ICS002 - Clients/v2 genesis state + ibc.core.client.v2.GenesisState client_v2_genesis = 4 + [ (gogoproto.nullable) = false ]; + // ICS004 - Channel/v2 genesis state + ibc.core.channel.v2.GenesisState channel_v2_genesis = 5 + [ (gogoproto.nullable) = false ]; +} diff --git a/proto/ibc/lightclients/solomachine/v2/solomachine.proto b/proto/ibc/lightclients/solomachine/v2/solomachine.proto new file mode 100644 index 0000000000..b5b5fe8555 --- /dev/null +++ b/proto/ibc/lightclients/solomachine/v2/solomachine.proto @@ -0,0 +1,194 @@ +syntax = "proto3"; + +package ibc.lightclients.solomachine.v2; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/core/02-client/migrations/v7"; + +import "ibc/core/connection/v1/connection.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// ClientState defines a solo machine client that tracks the current consensus +// state and if the client is frozen. +message ClientState { + option (gogoproto.goproto_getters) = false; + // latest sequence of the client state + uint64 sequence = 1; + // frozen sequence of the solo machine + bool is_frozen = 2; + ConsensusState consensus_state = 3; + // when set to true, will allow governance to update a solo machine client. + // The client will be unfrozen if it is frozen. + bool allow_update_after_proposal = 4; +} + +// ConsensusState defines a solo machine consensus state. The sequence of a +// consensus state is contained in the "height" key used in storing the +// consensus state. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + // public key of the solo machine + google.protobuf.Any public_key = 1; + // diversifier allows the same public key to be reused across different solo + // machine clients (potentially on different chains) without being considered + // misbehaviour. + string diversifier = 2; + uint64 timestamp = 3; +} + +// Header defines a solo machine consensus header +message Header { + option (gogoproto.goproto_getters) = false; + // sequence to update solo machine public key at + uint64 sequence = 1; + uint64 timestamp = 2; + bytes signature = 3; + google.protobuf.Any new_public_key = 4; + string new_diversifier = 5; +} + +// Misbehaviour defines misbehaviour for a solo machine which consists +// of a sequence and two signatures over different messages at that sequence. +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + string client_id = 1; + uint64 sequence = 2; + SignatureAndData signature_one = 3; + SignatureAndData signature_two = 4; +} + +// SignatureAndData contains a signature and the data signed over to create that +// signature. +message SignatureAndData { + option (gogoproto.goproto_getters) = false; + bytes signature = 1; + DataType data_type = 2; + bytes data = 3; + uint64 timestamp = 4; +} + +// TimestampedSignatureData contains the signature data and the timestamp of the +// signature. +message TimestampedSignatureData { + option (gogoproto.goproto_getters) = false; + bytes signature_data = 1; + uint64 timestamp = 2; +} + +// SignBytes defines the signed bytes used for signature verification. +message SignBytes { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; + uint64 timestamp = 2; + string diversifier = 3; + // type of the data used + DataType data_type = 4; + // marshaled data + bytes data = 5; +} + +// DataType defines the type of solo machine proof being created. This is done +// to preserve uniqueness of different data sign byte encodings. +enum DataType { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "UNSPECIFIED" ]; + // Data type for client state verification + DATA_TYPE_CLIENT_STATE = 1 [ (gogoproto.enumvalue_customname) = "CLIENT" ]; + // Data type for consensus state verification + DATA_TYPE_CONSENSUS_STATE = 2 + [ (gogoproto.enumvalue_customname) = "CONSENSUS" ]; + // Data type for connection state verification + DATA_TYPE_CONNECTION_STATE = 3 + [ (gogoproto.enumvalue_customname) = "CONNECTION" ]; + // Data type for channel state verification + DATA_TYPE_CHANNEL_STATE = 4 [ (gogoproto.enumvalue_customname) = "CHANNEL" ]; + // Data type for packet commitment verification + DATA_TYPE_PACKET_COMMITMENT = 5 + [ (gogoproto.enumvalue_customname) = "PACKETCOMMITMENT" ]; + // Data type for packet acknowledgement verification + DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6 + [ (gogoproto.enumvalue_customname) = "PACKETACKNOWLEDGEMENT" ]; + // Data type for packet receipt absence verification + DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7 + [ (gogoproto.enumvalue_customname) = "PACKETRECEIPTABSENCE" ]; + // Data type for next sequence recv verification + DATA_TYPE_NEXT_SEQUENCE_RECV = 8 + [ (gogoproto.enumvalue_customname) = "NEXTSEQUENCERECV" ]; + // Data type for header verification + DATA_TYPE_HEADER = 9 [ (gogoproto.enumvalue_customname) = "HEADER" ]; +} + +// HeaderData returns the SignBytes data for update verification. +message HeaderData { + option (gogoproto.goproto_getters) = false; + + // header public key + google.protobuf.Any new_pub_key = 1; + // header diversifier + string new_diversifier = 2; +} + +// ClientStateData returns the SignBytes data for client state verification. +message ClientStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + google.protobuf.Any client_state = 2; +} + +// ConsensusStateData returns the SignBytes data for consensus state +// verification. +message ConsensusStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + google.protobuf.Any consensus_state = 2; +} + +// ConnectionStateData returns the SignBytes data for connection state +// verification. +message ConnectionStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + ibc.core.connection.v1.ConnectionEnd connection = 2; +} + +// ChannelStateData returns the SignBytes data for channel state +// verification. +message ChannelStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + ibc.core.channel.v1.Channel channel = 2; +} + +// PacketCommitmentData returns the SignBytes data for packet commitment +// verification. +message PacketCommitmentData { + bytes path = 1; + bytes commitment = 2; +} + +// PacketAcknowledgementData returns the SignBytes data for acknowledgement +// verification. +message PacketAcknowledgementData { + bytes path = 1; + bytes acknowledgement = 2; +} + +// PacketReceiptAbsenceData returns the SignBytes data for +// packet receipt absence verification. +message PacketReceiptAbsenceData { bytes path = 1; } + +// NextSequenceRecvData returns the SignBytes data for verification of the next +// sequence to be received. +message NextSequenceRecvData { + bytes path = 1; + uint64 next_seq_recv = 2; +} diff --git a/proto/ibc/lightclients/solomachine/v3/solomachine.proto b/proto/ibc/lightclients/solomachine/v3/solomachine.proto new file mode 100644 index 0000000000..8d0f71b3d9 --- /dev/null +++ b/proto/ibc/lightclients/solomachine/v3/solomachine.proto @@ -0,0 +1,99 @@ +syntax = "proto3"; + +package ibc.lightclients.solomachine.v3; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/light-clients/06-solomachine;solomachine"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// ClientState defines a solo machine client that tracks the current consensus +// state and if the client is frozen. +message ClientState { + option (gogoproto.goproto_getters) = false; + // latest sequence of the client state + uint64 sequence = 1; + // frozen sequence of the solo machine + bool is_frozen = 2; + ConsensusState consensus_state = 3; +} + +// ConsensusState defines a solo machine consensus state. The sequence of a +// consensus state is contained in the "height" key used in storing the +// consensus state. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + // public key of the solo machine + google.protobuf.Any public_key = 1; + // diversifier allows the same public key to be reused across different solo + // machine clients (potentially on different chains) without being considered + // misbehaviour. + string diversifier = 2; + uint64 timestamp = 3; +} + +// Header defines a solo machine consensus header +message Header { + option (gogoproto.goproto_getters) = false; + + uint64 timestamp = 1; + bytes signature = 2; + google.protobuf.Any new_public_key = 3; + string new_diversifier = 4; +} + +// Misbehaviour defines misbehaviour for a solo machine which consists +// of a sequence and two signatures over different messages at that sequence. +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; + SignatureAndData signature_one = 2; + SignatureAndData signature_two = 3; +} + +// SignatureAndData contains a signature and the data signed over to create that +// signature. +message SignatureAndData { + option (gogoproto.goproto_getters) = false; + + bytes signature = 1; + bytes path = 2; + bytes data = 3; + uint64 timestamp = 4; +} + +// TimestampedSignatureData contains the signature data and the timestamp of the +// signature. +message TimestampedSignatureData { + option (gogoproto.goproto_getters) = false; + + bytes signature_data = 1; + uint64 timestamp = 2; +} + +// SignBytes defines the signed bytes used for signature verification. +message SignBytes { + option (gogoproto.goproto_getters) = false; + + // the sequence number + uint64 sequence = 1; + // the proof timestamp + uint64 timestamp = 2; + // the public key diversifier + string diversifier = 3; + // the standardised path bytes + bytes path = 4; + // the marshaled data bytes + bytes data = 5; +} + +// HeaderData returns the SignBytes data for update verification. +message HeaderData { + option (gogoproto.goproto_getters) = false; + + // header public key + google.protobuf.Any new_pub_key = 1; + // header diversifier + string new_diversifier = 2; +} diff --git a/proto/ibc/lightclients/tendermint/v1/tendermint.proto b/proto/ibc/lightclients/tendermint/v1/tendermint.proto new file mode 100644 index 0000000000..f4248e5a3c --- /dev/null +++ b/proto/ibc/lightclients/tendermint/v1/tendermint.proto @@ -0,0 +1,108 @@ +syntax = "proto3"; + +package ibc.lightclients.tendermint.v1; + +option go_package = "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint;tendermint"; + +import "cometbft/types/v2/validator.proto"; +import "cometbft/types/v2/types.proto"; +import "cosmos/ics23/v1/proofs.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/commitment/v1/commitment.proto"; +import "gogoproto/gogo.proto"; + +// ClientState from Tendermint tracks the current validator set, latest height, +// and a possible frozen height. +message ClientState { + option (gogoproto.goproto_getters) = false; + + string chain_id = 1; + Fraction trust_level = 2 [ (gogoproto.nullable) = false ]; + // duration of the period since the LatestTimestamp during which the + // submitted headers are valid for upgrade + google.protobuf.Duration trusting_period = 3 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + // duration of the staking unbonding period + google.protobuf.Duration unbonding_period = 4 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + // defines how much new (untrusted) header's Time can drift into the future. + google.protobuf.Duration max_clock_drift = 5 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + // Block height when the client was frozen due to a misbehaviour + ibc.core.client.v1.Height frozen_height = 6 [ (gogoproto.nullable) = false ]; + // Latest height the client was updated to + ibc.core.client.v1.Height latest_height = 7 [ (gogoproto.nullable) = false ]; + + // Proof specifications used in verifying counterparty state + repeated cosmos.ics23.v1.ProofSpec proof_specs = 8; + + // Path at which next upgraded client will be committed. + // Each element corresponds to the key for a single CommitmentProof in the + // chained proof. NOTE: ClientState must stored under + // `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored + // under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using + // the default upgrade module, upgrade_path should be []string{"upgrade", + // "upgradedIBCState"}` + repeated string upgrade_path = 9; + + // allow_update_after_expiry is deprecated + bool allow_update_after_expiry = 10 [ deprecated = true ]; + // allow_update_after_misbehaviour is deprecated + bool allow_update_after_misbehaviour = 11 [ deprecated = true ]; +} + +// ConsensusState defines the consensus state from Tendermint. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + + // timestamp that corresponds to the block height in which the ConsensusState + // was stored. + google.protobuf.Timestamp timestamp = 1 + [ (gogoproto.nullable) = false, (gogoproto.stdtime) = true ]; + // commitment root (i.e app hash) + ibc.core.commitment.v1.MerkleRoot root = 2 [ (gogoproto.nullable) = false ]; + bytes next_validators_hash = 3 + [ (gogoproto.casttype) = + "github.com/cometbft/cometbft/libs/bytes.HexBytes" ]; +} + +// Misbehaviour is a wrapper over two conflicting Headers +// that implements Misbehaviour interface expected by ICS-02 +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + + // ClientID is deprecated + string client_id = 1 [ deprecated = true ]; + Header header_1 = 2 [ (gogoproto.customname) = "Header1" ]; + Header header_2 = 3 [ (gogoproto.customname) = "Header2" ]; +} + +// Header defines the Tendermint client consensus Header. +// It encapsulates all the information necessary to update from a trusted +// Tendermint ConsensusState. The inclusion of TrustedHeight and +// TrustedValidators allows this update to process correctly, so long as the +// ConsensusState for the TrustedHeight exists, this removes race conditions +// among relayers The SignedHeader and ValidatorSet are the new untrusted update +// fields for the client. The TrustedHeight is the height of a stored +// ConsensusState on the client that will be used to verify the new untrusted +// header. The Trusted ConsensusState must be within the unbonding period of +// current time in order to correctly verify, and the TrustedValidators must +// hash to TrustedConsensusState.NextValidatorsHash since that is the last +// trusted validator set at the TrustedHeight. +message Header { + .cometbft.types.v2.SignedHeader signed_header = 1 + [ (gogoproto.embed) = true ]; + + .cometbft.types.v2.ValidatorSet validator_set = 2; + ibc.core.client.v1.Height trusted_height = 3 [ (gogoproto.nullable) = false ]; + .cometbft.types.v2.ValidatorSet trusted_validators = 4; +} + +// Fraction defines the protobuf message type for tmmath.Fraction that only +// supports positive values. +message Fraction { + uint64 numerator = 1; + uint64 denominator = 2; +} diff --git a/proto/ibc/lightclients/wasm/v1/genesis.proto b/proto/ibc/lightclients/wasm/v1/genesis.proto new file mode 100644 index 0000000000..f7295d7579 --- /dev/null +++ b/proto/ibc/lightclients/wasm/v1/genesis.proto @@ -0,0 +1,20 @@ + +syntax = "proto3"; +package ibc.lightclients.wasm.v1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types"; + +// GenesisState defines 08-wasm's keeper genesis state +message GenesisState { + // uploaded light client wasm contracts + repeated Contract contracts = 1 [ (gogoproto.nullable) = false ]; +} + +// Contract stores contract code +message Contract { + option (gogoproto.goproto_getters) = false; + // contract byte code + bytes code_bytes = 1; +} diff --git a/proto/ibc/lightclients/wasm/v1/query.proto b/proto/ibc/lightclients/wasm/v1/query.proto new file mode 100644 index 0000000000..c288844efc --- /dev/null +++ b/proto/ibc/lightclients/wasm/v1/query.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; +package ibc.lightclients.wasm.v1; + +import "google/api/annotations.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; + +option go_package = "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types"; + +// Query service for wasm module +service Query { + // Get all Wasm checksums + rpc Checksums(QueryChecksumsRequest) returns (QueryChecksumsResponse) { + option (google.api.http).get = "/ibc/lightclients/wasm/v1/checksums"; + } + + // Get Wasm code for given checksum + rpc Code(QueryCodeRequest) returns (QueryCodeResponse) { + option (google.api.http).get = + "/ibc/lightclients/wasm/v1/checksums/{checksum}/code"; + } +} + +// QueryChecksumsRequest is the request type for the Query/Checksums RPC method. +message QueryChecksumsRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryChecksumsResponse is the response type for the Query/Checksums RPC +// method. +message QueryChecksumsResponse { + // checksums is a list of the hex encoded checksums of all wasm codes stored. + repeated string checksums = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryCodeRequest is the request type for the Query/Code RPC method. +message QueryCodeRequest { + // checksum is a hex encoded string of the code stored. + string checksum = 1; +} + +// QueryCodeResponse is the response type for the Query/Code RPC method. +message QueryCodeResponse { bytes data = 1; } diff --git a/proto/ibc/lightclients/wasm/v1/tx.proto b/proto/ibc/lightclients/wasm/v1/tx.proto new file mode 100644 index 0000000000..2af3d2232f --- /dev/null +++ b/proto/ibc/lightclients/wasm/v1/tx.proto @@ -0,0 +1,67 @@ +syntax = "proto3"; +package ibc.lightclients.wasm.v1; + +option go_package = "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types"; + +import "cosmos/msg/v1/msg.proto"; + +// Msg defines the ibc/08-wasm Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // StoreCode defines a rpc handler method for MsgStoreCode. + rpc StoreCode(MsgStoreCode) returns (MsgStoreCodeResponse); + + // RemoveChecksum defines a rpc handler method for MsgRemoveChecksum. + rpc RemoveChecksum(MsgRemoveChecksum) returns (MsgRemoveChecksumResponse); + + // MigrateContract defines a rpc handler method for MsgMigrateContract. + rpc MigrateContract(MsgMigrateContract) returns (MsgMigrateContractResponse); +} + +// MsgStoreCode defines the request type for the StoreCode rpc. +message MsgStoreCode { + option (cosmos.msg.v1.signer) = "signer"; + + // signer address + string signer = 1; + // wasm byte code of light client contract. It can be raw or gzip compressed + bytes wasm_byte_code = 2; +} + +// MsgStoreCodeResponse defines the response type for the StoreCode rpc +message MsgStoreCodeResponse { + // checksum is the sha256 hash of the stored code + bytes checksum = 1; +} + +// MsgRemoveChecksum defines the request type for the MsgRemoveChecksum rpc. +message MsgRemoveChecksum { + option (cosmos.msg.v1.signer) = "signer"; + + // signer address + string signer = 1; + // checksum is the sha256 hash to be removed from the store + bytes checksum = 2; +} + +// MsgStoreChecksumResponse defines the response type for the StoreCode rpc +message MsgRemoveChecksumResponse {} + +// MsgMigrateContract defines the request type for the MigrateContract rpc. +message MsgMigrateContract { + option (cosmos.msg.v1.signer) = "signer"; + + // signer address + string signer = 1; + // the client id of the contract + string client_id = 2; + // checksum is the sha256 hash of the new wasm byte code for the contract + bytes checksum = 3; + // the json encoded message to be passed to the contract on migration + bytes msg = 4; +} + +// MsgMigrateContractResponse defines the response type for the MigrateContract +// rpc +message MsgMigrateContractResponse {} diff --git a/proto/ibc/lightclients/wasm/v1/wasm.proto b/proto/ibc/lightclients/wasm/v1/wasm.proto new file mode 100644 index 0000000000..2655e979ba --- /dev/null +++ b/proto/ibc/lightclients/wasm/v1/wasm.proto @@ -0,0 +1,43 @@ + +syntax = "proto3"; +package ibc.lightclients.wasm.v1; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; + +option go_package = "github.com/cosmos/ibc-go/modules/light-clients/08-wasm/v10/types"; + +// Wasm light client's Client state +message ClientState { + option (gogoproto.goproto_getters) = false; + // bytes encoding the client state of the underlying light client + // implemented as a Wasm contract. + bytes data = 1; + bytes checksum = 2; + ibc.core.client.v1.Height latest_height = 3 [ (gogoproto.nullable) = false ]; +} + +// Wasm light client's ConsensusState +message ConsensusState { + option (gogoproto.goproto_getters) = false; + // bytes encoding the consensus state of the underlying light client + // implemented as a Wasm contract. + bytes data = 1; +} + +// Wasm light client message (either header(s) or misbehaviour) +message ClientMessage { + option (gogoproto.goproto_getters) = false; + + bytes data = 1; +} + +// Checksums defines a list of all checksums that are stored +// +// Deprecated: This message is deprecated in favor of storing the checksums +// using a Collections.KeySet. +message Checksums { + option deprecated = true; + + repeated bytes checksums = 1; +} diff --git a/proto/interchain_security/ccv/consumer/v1/consumer.proto b/proto/interchain_security/ccv/consumer/v1/consumer.proto index 435331d7b0..b3ce84bac9 100644 --- a/proto/interchain_security/ccv/consumer/v1/consumer.proto +++ b/proto/interchain_security/ccv/consumer/v1/consumer.proto @@ -28,9 +28,9 @@ message CrossChainValidator { (gogoproto.moretags) = "yaml:\"consensus_pubkey\"" ]; - // !!! DEPRECATED !!! opted_out is deprecated because after the introduction of Partial Set Security (PSS) - // we removed the soft opt-out feature. - bool opted_out = 4 [deprecated = true]; + // !!! DEPRECATED !!! opted_out is deprecated because after the introduction + // of Partial Set Security (PSS) we removed the soft opt-out feature. + bool opted_out = 4 [ deprecated = true ]; } // A record storing the state of a slash packet sent to the provider chain diff --git a/proto/interchain_security/ccv/consumer/v1/genesis.proto b/proto/interchain_security/ccv/consumer/v1/genesis.proto index ce7870057d..c1d7cc8281 100644 --- a/proto/interchain_security/ccv/consumer/v1/genesis.proto +++ b/proto/interchain_security/ccv/consumer/v1/genesis.proto @@ -10,19 +10,16 @@ import "ibc/lightclients/tendermint/v1/tendermint.proto"; import "gogoproto/gogo.proto"; import "interchain_security/ccv/v1/wire.proto"; import "google/protobuf/timestamp.proto"; -import "tendermint/abci/types.proto"; - - - +import "cometbft/abci/v2/types.proto"; // GenesisState defines the CCV consumer genesis state // -// Note: this type is only used on consumer side and references shared types with -// provider +// Note: this type is only used on consumer side and references shared types +// with provider message GenesisState { // Reserve 5th slot for removed provider_client_state field reserved 5; - + // Reserve 6th slot for removed provider_consensus_state field reserved 6; @@ -57,10 +54,11 @@ message GenesisState { bool preCCV = 13; interchain_security.ccv.v1.ProviderInfo provider = 14 [ (gogoproto.nullable) = false ]; - // The ID of the connection end on the consumer chain on top of which the - // CCV channel will be established. If connection_id == "", a new client of + // The ID of the connection end on the consumer chain on top of which the + // CCV channel will be established. If connection_id == "", a new client of // the provider chain and a new connection on top of this client are created. - // The new client is initialized using provider.client_state and provider.consensus_state. + // The new client is initialized using provider.client_state and + // provider.consensus_state. string connection_id = 15; } diff --git a/proto/interchain_security/ccv/consumer/v1/query.proto b/proto/interchain_security/ccv/consumer/v1/query.proto index df861c37f1..b41957b93b 100644 --- a/proto/interchain_security/ccv/consumer/v1/query.proto +++ b/proto/interchain_security/ccv/consumer/v1/query.proto @@ -22,13 +22,18 @@ service Query { option (google.api.http).get = "/interchain_security/ccv/consumer/params"; } - rpc QueryProviderInfo(QueryProviderInfoRequest) returns (QueryProviderInfoResponse) { - option (google.api.http).get = "/interchain_security/ccv/consumer/provider-info"; + rpc QueryProviderInfo(QueryProviderInfoRequest) + returns (QueryProviderInfoResponse) { + option (google.api.http).get = + "/interchain_security/ccv/consumer/provider-info"; } - // QueryThrottleState returns on-chain state relevant to throttled consumer packets - rpc QueryThrottleState(QueryThrottleStateRequest) returns (QueryThrottleStateResponse) { - option (google.api.http).get = "/interchain_security/ccv/consumer/throttle_state"; + // QueryThrottleState returns on-chain state relevant to throttled consumer + // packets + rpc QueryThrottleState(QueryThrottleStateRequest) + returns (QueryThrottleStateResponse) { + option (google.api.http).get = + "/interchain_security/ccv/consumer/throttle_state"; } } @@ -61,7 +66,8 @@ message QueryParamsRequest {} // QueryParamsResponse is response type for the Query/Params RPC method. message QueryParamsResponse { // params holds all the parameters of this module. - interchain_security.ccv.v1.ConsumerParams params = 1 [ (gogoproto.nullable) = false ]; + interchain_security.ccv.v1.ConsumerParams params = 1 + [ (gogoproto.nullable) = false ]; } message QueryProviderInfoRequest {} @@ -75,10 +81,10 @@ message QueryThrottleStateRequest {} message QueryThrottleStateResponse { SlashRecord slash_record = 1 [ (gogoproto.nullable) = true ]; - repeated interchain_security.ccv.v1.ConsumerPacketData packet_data_queue = 2 [ (gogoproto.nullable) = false ]; + repeated interchain_security.ccv.v1.ConsumerPacketData packet_data_queue = 2 + [ (gogoproto.nullable) = false ]; } - message ChainInfo { string chainID = 1; string clientID = 2; diff --git a/proto/interchain_security/ccv/consumer/v1/tx.proto b/proto/interchain_security/ccv/consumer/v1/tx.proto index 0c729e7385..931c59b302 100644 --- a/proto/interchain_security/ccv/consumer/v1/tx.proto +++ b/proto/interchain_security/ccv/consumer/v1/tx.proto @@ -20,10 +20,11 @@ message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; // signer is the address of the governance account. - string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // params defines the x/provider parameters to update. - interchain_security.ccv.v1.ConsumerParams params = 2 [(gogoproto.nullable) = false]; + interchain_security.ccv.v1.ConsumerParams params = 2 + [ (gogoproto.nullable) = false ]; } message MsgUpdateParamsResponse {} diff --git a/proto/interchain_security/ccv/provider/v1/genesis.proto b/proto/interchain_security/ccv/provider/v1/genesis.proto index 84a49737a5..8c43080706 100644 --- a/proto/interchain_security/ccv/provider/v1/genesis.proto +++ b/proto/interchain_security/ccv/provider/v1/genesis.proto @@ -11,26 +11,26 @@ import "interchain_security/ccv/provider/v1/provider.proto"; // GenesisState defines the CCV provider chain genesis state message GenesisState { - // Reserve 3rd slot for removed unbonding_ops field - reserved 3; + // Reserve 3rd slot for removed unbonding_ops field + reserved 3; - // Reserve 4th slot for removed mature_unbonding_ops field - reserved 4; + // Reserve 4th slot for removed mature_unbonding_ops field + reserved 4; - // Reserve 6th slot for removed consumer_addition_proposals field - reserved 6; + // Reserve 6th slot for removed consumer_addition_proposals field + reserved 6; - // Reserve 7th slot for removed consumer_removal_proposals field - reserved 7; + // Reserve 7th slot for removed consumer_removal_proposals field + reserved 7; - // Reserve 11th slot for consumer_addrs_to_prune field - reserved 11; + // Reserve 11th slot for consumer_addrs_to_prune field + reserved 11; - // Reserve 12th slot for removed init_timeout_timestamps field - reserved 12; + // Reserve 12th slot for removed init_timeout_timestamps field + reserved 12; - // Reserve 13th slot for removed exported_vsc_send_timestamps field - reserved 13; + // Reserve 13th slot for removed exported_vsc_send_timestamps field + reserved 13; // strictly positive and set to 1 (DefaultValsetUpdateID) for a new chain uint64 valset_update_id = 1; @@ -55,12 +55,12 @@ message GenesisState { [ (gogoproto.nullable) = false ]; } -// The provider CCV module's knowledge of consumer state. +// The provider CCV module's knowledge of consumer state. // // Note this type is only used internally to the provider CCV module. message ConsumerState { - // Reserve 8th slot for removed unbonding_ops_index field - reserved 8; + // Reserve 8th slot for removed unbonding_ops_index field + reserved 8; // ChainID defines the chain ID for the consumer chain string chain_id = 1; diff --git a/proto/interchain_security/ccv/provider/v1/provider.proto b/proto/interchain_security/ccv/provider/v1/provider.proto index e190b27243..16bfb2adbe 100644 --- a/proto/interchain_security/ccv/provider/v1/provider.proto +++ b/proto/interchain_security/ccv/provider/v1/provider.proto @@ -12,13 +12,14 @@ import "google/protobuf/timestamp.proto"; import "ibc/core/client/v1/client.proto"; import "ibc/lightclients/tendermint/v1/tendermint.proto"; import "interchain_security/ccv/v1/wire.proto"; -import "tendermint/crypto/keys.proto"; +import "cometbft/crypto/v1/keys.proto"; option go_package = "github.com/cosmos/interchain-security/v7/x/ccv/provider/types"; // -// Note any type defined in this file is ONLY used internally to the provider CCV module. -// These schemas can change with proper consideration of compatibility or migration. +// Note any type defined in this file is ONLY used internally to the provider +// CCV module. These schemas can change with proper consideration of +// compatibility or migration. // // WARNING: This message is deprecated in favor of `MsgCreateConsumer`. @@ -44,7 +45,7 @@ message ConsumerAdditionProposal { // the proposed initial height of new consumer chain. // For a completely new chain, this will be {0,1}. However, it may be // different if this is a chain that is converting to a consumer chain. - ibc.core.client.v1.Height initial_height = 4 [(gogoproto.nullable) = false]; + ibc.core.client.v1.Height initial_height = 4 [ (gogoproto.nullable) = false ]; // The hash of the consumer chain genesis state without the consumer CCV // module genesis params. It is used for off-chain confirmation of // genesis.json validity by validators and other parties. @@ -56,27 +57,19 @@ message ConsumerAdditionProposal { // spawn time is the time on the provider chain at which the consumer chain // genesis is finalized and all validators will be responsible for starting // their consumer chain validator node. - google.protobuf.Timestamp spawn_time = 7 [ - (gogoproto.stdtime) = true, - (gogoproto.nullable) = false - ]; + google.protobuf.Timestamp spawn_time = 7 + [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; // Unbonding period for the consumer, // which should be smaller than that of the provider in general. - google.protobuf.Duration unbonding_period = 8 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration unbonding_period = 8 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // Sent CCV related IBC packets will timeout after this duration - google.protobuf.Duration ccv_timeout_period = 9 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration ccv_timeout_period = 9 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // Sent transfer related IBC packets will timeout after this duration - google.protobuf.Duration transfer_timeout_period = 10 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration transfer_timeout_period = 10 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // The fraction of tokens allocated to the consumer redistribution address // during distribution events. The fraction is a string representing a // decimal number. For example "0.75" would represent 75%. @@ -97,28 +90,37 @@ message ConsumerAdditionProposal { // chain. It is most relevant for chains performing a standalone to consumer // changeover in order to maintain the existing ibc transfer channel string distribution_transmission_channel = 14; - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. uint32 top_N = 15; - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. uint32 validators_power_cap = 16; - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. uint32 validator_set_cap = 17; - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. repeated string allowlist = 18; - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. repeated string denylist = 19; - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. uint64 min_stake = 20; - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. bool allow_inactive_vals = 21; } @@ -140,15 +142,14 @@ message ConsumerRemovalProposal { string chain_id = 3; // the time on the provider chain at which all validators are responsible to // stop their consumer chain validator node - google.protobuf.Timestamp stop_time = 4 [ - (gogoproto.stdtime) = true, - (gogoproto.nullable) = false - ]; + google.protobuf.Timestamp stop_time = 4 + [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; } // WARNING: This message is deprecated in favor of `MsgUpdateConsumer`. -// ConsumerModificationProposal is a governance proposal on the provider chain to modify parameters of a running -// consumer chain. If it passes, the consumer chain's state is updated to take into account the newest params. +// ConsumerModificationProposal is a governance proposal on the provider chain +// to modify parameters of a running consumer chain. If it passes, the consumer +// chain's state is updated to take into account the newest params. message ConsumerModificationProposal { option deprecated = true; @@ -158,28 +159,37 @@ message ConsumerModificationProposal { string description = 2; // the chain-id of the consumer chain to be modified string chain_id = 3; - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. uint32 top_N = 4; - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. uint32 validators_power_cap = 5; - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. uint32 validator_set_cap = 6; - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. repeated string allowlist = 7; - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. repeated string denylist = 8; - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. uint64 min_stake = 9; - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. bool allow_inactive_vals = 10; } @@ -188,7 +198,8 @@ message ConsumerModificationProposal { // // This type is only used internally to the consumer CCV module. // WARNING: This message is deprecated now that equivocations can be submitted -// and verified automatically on the provider. (see SubmitConsumerDoubleVoting in proto/interchain-security/ccv/provider/v1/tx.proto). +// and verified automatically on the provider. (see SubmitConsumerDoubleVoting +// in proto/interchain-security/ccv/provider/v1/tx.proto). message EquivocationProposal { option deprecated = true; // the title of the proposal @@ -221,12 +232,10 @@ message ChangeRewardDenomsProposal { message GlobalSlashEntry { // Block time that slash packet was received by provider chain. // This field is used for store key iteration ordering. - google.protobuf.Timestamp recv_time = 1 [ - (gogoproto.stdtime) = true, - (gogoproto.nullable) = false - ]; + google.protobuf.Timestamp recv_time = 1 + [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; // The consumer that sent a slash packet. - string consumer_chain_id = 2 [(gogoproto.customname) = "ConsumerChainID"]; + string consumer_chain_id = 2 [ (gogoproto.customname) = "ConsumerChainID" ]; // The IBC sequence number of the recv packet. // This field is used in the store key to ensure uniqueness. uint64 ibc_seq_num = 3; @@ -254,16 +263,12 @@ message Params { // client's TrustingPeriod from the chain defined UnbondingPeriod string trusting_period_fraction = 2; // Sent IBC packets will timeout after this duration - google.protobuf.Duration ccv_timeout_period = 3 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration ccv_timeout_period = 3 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // The period for which the slash meter is replenished - google.protobuf.Duration slash_meter_replenish_period = 6 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration slash_meter_replenish_period = 6 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // The fraction of total voting power that is replenished to the slash meter // every replenish period. This param also serves as a maximum fraction of @@ -271,12 +276,14 @@ message Params { string slash_meter_replenish_fraction = 7; // The fee required to be paid to add a reward denom - cosmos.base.v1beta1.Coin consumer_reward_denom_registration_fee = 9 [(gogoproto.nullable) = false]; + cosmos.base.v1beta1.Coin consumer_reward_denom_registration_fee = 9 + [ (gogoproto.nullable) = false ]; // The number of blocks that comprise an epoch. int64 blocks_per_epoch = 10; - // The number of epochs a validator has to validate a consumer chain in order to start receiving rewards from that chain. + // The number of epochs a validator has to validate a consumer chain in order + // to start receiving rewards from that chain. int64 number_of_epochs_to_start_receiving_rewards = 11; // The maximal number of validators that will be passed @@ -286,9 +293,7 @@ message Params { // SlashAcks contains cons addresses of consumer chain validators // successfully slashed on the provider chain. -message SlashAcks { - repeated string addresses = 1; -} +message SlashAcks { repeated string addresses = 1; } // ConsumerAdditionProposals holds pending governance proposals on the provider // chain to spawn a new chain. @@ -305,9 +310,7 @@ message ConsumerRemovalProposals { } // AddressList contains a list of consensus addresses -message AddressList { - repeated bytes addresses = 1; -} +message AddressList { repeated bytes addresses = 1; } // WARNING: This message is deprecated and is not used. // ChannelToChain is used to map a CCV channel ID to the consumer chainID @@ -320,7 +323,8 @@ message ChannelToChain { // ValidatorSetChangePackets is a pb list of ccv.ValidatorSetChangePacketData. message ValidatorSetChangePackets { - repeated interchain_security.ccv.v1.ValidatorSetChangePacketData list = 1 [(gogoproto.nullable) = false]; + repeated interchain_security.ccv.v1.ValidatorSetChangePacketData list = 1 + [ (gogoproto.nullable) = false ]; } // @@ -329,7 +333,7 @@ message ValidatorSetChangePackets { message KeyAssignmentReplacement { bytes provider_addr = 1; - tendermint.crypto.PublicKey prev_c_key = 2; + cometbft.crypto.v1.PublicKey prev_c_key = 2; int64 power = 3; } @@ -339,7 +343,7 @@ message KeyAssignmentReplacement { message ValidatorConsumerPubKey { string chain_id = 1; bytes provider_addr = 2; - tendermint.crypto.PublicKey consumer_key = 3; + cometbft.crypto.v1.PublicKey consumer_key = 3; } // Used to serialize the ValidatorConsumerAddr index from key assignment @@ -352,13 +356,12 @@ message ValidatorByConsumerAddr { } // Used to serialize the ConsumerAddrsToPruneV2 index from key assignment -// ConsumerAddrsToPruneV2: (chainID, pruneTs time.Time) -> consumerAddrs AddressList +// ConsumerAddrsToPruneV2: (chainID, pruneTs time.Time) -> consumerAddrs +// AddressList message ConsumerAddrsToPruneV2 { string chain_id = 1; - google.protobuf.Timestamp prune_ts = 2 [ - (gogoproto.stdtime) = true, - (gogoproto.nullable) = false - ]; + google.protobuf.Timestamp prune_ts = 2 + [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; AddressList consumer_addrs = 3; } @@ -373,17 +376,19 @@ message ConsensusValidator { // voting power the validator has during this epoch int64 power = 2; // public key the validator uses on the consumer chain during this epoch - tendermint.crypto.PublicKey public_key = 3; + cometbft.crypto.v1.PublicKey public_key = 3; // height the validator had when it FIRST became a consumer validator - // If a validator becomes a consumer validator at height `H` and is continuously a consumer validator for all the upcoming - // epochs, then the height of the validator SHOULD remain `H`. This height only resets to a different height if a validator - // stops being a consumer validator during an epoch and later becomes again a consumer validator. + // If a validator becomes a consumer validator at height `H` and is + // continuously a consumer validator for all the upcoming epochs, then the + // height of the validator SHOULD remain `H`. This height only resets to a + // different height if a validator stops being a consumer validator during an + // epoch and later becomes again a consumer validator. int64 join_height = 4; } // ConsumerRewardsAllocation stores the rewards allocated by a consumer chain -// to the consumer rewards pool. It is used to allocate the tokens to the consumer -// opted-in validators and the community pool during BeginBlock. +// to the consumer rewards pool. It is used to allocate the tokens to the +// consumer opted-in validators and the community pool during BeginBlock. message ConsumerRewardsAllocation { repeated cosmos.base.v1beta1.DecCoin rewards = 1 [ (gogoproto.nullable) = false, @@ -405,13 +410,14 @@ message ConsumerMetadata { // ConsumerInitializationParameters are the parameters needed to launch a chain message ConsumerInitializationParameters { // ---------- ---------- ---------- - // Following fields are used when the consumer chain launches and are not needed by the provider afterwards. + // Following fields are used when the consumer chain launches and are not + // needed by the provider afterwards. // ---------- ---------- ---------- // the proposed initial height of new consumer chain. // For a completely new chain, this will be {0,1}. However, it may be // different if this is a chain that is converting to a consumer chain. - ibc.core.client.v1.Height initial_height = 1 [(gogoproto.nullable) = false]; + ibc.core.client.v1.Height initial_height = 1 [ (gogoproto.nullable) = false ]; // The hash of the consumer chain genesis state without the consumer CCV // module genesis params. It is used for off-chain confirmation of // genesis.json validity by validators and other parties. @@ -423,32 +429,25 @@ message ConsumerInitializationParameters { // spawn time is the time on the provider chain at which the consumer chain // genesis is finalized and all validators will be responsible for starting // their consumer chain validator node. - google.protobuf.Timestamp spawn_time = 4 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; + google.protobuf.Timestamp spawn_time = 4 + [ (gogoproto.nullable) = false, (gogoproto.stdtime) = true ]; // Unbonding period for the consumer, // which should be smaller than that of the provider in general. - google.protobuf.Duration unbonding_period = 5 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration unbonding_period = 5 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // ---------- ---------- ---------- - // Following fields are used to construct the consumer genesis of the to-be-launched consumer chain - // and are set up as params on the consumer chain. Those params can then be directly modified by the consumer chain. + // Following fields are used to construct the consumer genesis of the + // to-be-launched consumer chain and are set up as params on the consumer + // chain. Those params can then be directly modified by the consumer chain. // ---------- ---------- ---------- // Sent CCV related IBC packets will timeout after this duration - google.protobuf.Duration ccv_timeout_period = 6 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration ccv_timeout_period = 6 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // Sent transfer related IBC packets will timeout after this duration - google.protobuf.Duration transfer_timeout_period = 7 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true - ]; + google.protobuf.Duration transfer_timeout_period = 7 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // The fraction of tokens allocated to the consumer redistribution address // during distribution events. The fraction is a string representing a // decimal number. For example "0.75" would represent 75%. @@ -469,73 +468,97 @@ message ConsumerInitializationParameters { // chain. It is most relevant for chains performing a standalone to consumer // changeover in order to maintain the existing ibc transfer channel string distribution_transmission_channel = 11; - // The ID of the connection end on the provider chain on top of which the CCV - // channel will be established. If connection_id == "", a new client of the - // consumer chain and a new connection on top of this client are created. - // Note that a standalone chain can transition to a consumer chain while - // maintaining existing IBC channels to other chains by providing a valid connection_id. + // The ID of the connection end on the provider chain on top of which the CCV + // channel will be established. If connection_id == "", a new client of the + // consumer chain and a new connection on top of this client are created. + // Note that a standalone chain can transition to a consumer chain while + // maintaining existing IBC channels to other chains by providing a valid + // connection_id. string connection_id = 12; } -// PowerShapingParameters contains parameters that shape the validator set that we send to the consumer chain +// PowerShapingParameters contains parameters that shape the validator set that +// we send to the consumer chain message PowerShapingParameters { - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. uint32 top_N = 1; - // `validators_power_cap` corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. - // For instance, if `validators_power_cap` is set to 32, no validator can have more than 32% of the total voting power of the - // consumer chain. The power cap is intended as a safeguard against a validator having too much power on the consumer - // chain and hence "taking over" the consumer chain. + // `validators_power_cap` corresponds to the maximum power (percentage-wise) a + // validator can have on the consumer chain. For instance, if + // `validators_power_cap` is set to 32, no validator can have more than 32% of + // the total voting power of the consumer chain. The power cap is intended as + // a safeguard against a validator having too much power on the consumer chain + // and hence "taking over" the consumer chain. // - // To respect this power cap, the voting powers of the validators that run the consumer chain are decremented or - // incremented accordingly. It is important to note that the voting powers of validators on the provider do **not** change. - // For example, assume that the provider chain has among others, validators `A`, `B`, `C`, and `D` with voting powers - // 100, 1, 1, 1 respectively. Assume that only those 4 validators opt in on a consumer chain. Without a power cap set, - // validator `A` would have 100 / (100 + 1 + 1 + 1) = ~97% of the total voting power on the consumer chain, while - // validators `B`, `C`, and `D` would have 1 /(100 + 1 + 1 + 1) = ~1% of the total voting power on the consumer chain. - // If `validators_power_cap` is set to 30%, then the voting power of `A` would be reduced from 100 to 30 on the consumer - // chain, the voting power of `B` would be increased from 1 to 25, and the power of `C` and `D` would be increased from - // 1 to 24. After those modifications, `A` would have 30 / (30 + 25 + 24 + 24) = ~29% of the total voting power of the - // consumer chain, `B` would have 25 / (30 + 25 + 24 + 24) = ~25%, and `C` and `D` would both have 24 / (30 + 25 + 24 + 24) = ~23%. - // Naturally, there are many ways to change the voting powers of validators to respect the power cap, and ICS chooses - // one of them (see the `NoMoreThanPercentOfTheSum` function). + // To respect this power cap, the voting powers of the validators that run the + // consumer chain are decremented or incremented accordingly. It is important + // to note that the voting powers of validators on the provider do **not** + // change. For example, assume that the provider chain has among others, + // validators `A`, `B`, `C`, and `D` with voting powers 100, 1, 1, 1 + // respectively. Assume that only those 4 validators opt in on a consumer + // chain. Without a power cap set, validator `A` would have 100 / (100 + 1 + 1 + // + 1) = ~97% of the total voting power on the consumer chain, while + // validators `B`, `C`, and `D` would have 1 /(100 + 1 + 1 + 1) = ~1% of the + // total voting power on the consumer chain. If `validators_power_cap` is set + // to 30%, then the voting power of `A` would be reduced from 100 to 30 on the + // consumer chain, the voting power of `B` would be increased from 1 to 25, + // and the power of `C` and `D` would be increased from 1 to 24. After those + // modifications, `A` would have 30 / (30 + 25 + 24 + 24) = ~29% of the total + // voting power of the consumer chain, `B` would have 25 / (30 + 25 + 24 + 24) + // = ~25%, and `C` and `D` would both have 24 / (30 + 25 + 24 + 24) = ~23%. + // Naturally, there are many ways to change the voting powers of validators to + // respect the power cap, and ICS chooses one of them (see the + // `NoMoreThanPercentOfTheSum` function). // - // Note that respecting `validators_power_cap` might NOT always be possible. For example, if we have a consumer - // chain with only 5 validators and `validators_power_cap` is set to 10%, then it is not possible to respect the - // `validators_power_cap`. If the voting power of each validator is capped to a maximum of 10% of the total consumer - // chain's voting power, then the total voting power of the consumer chain would add up to 50% which obviously does not - // make sense (percentages should add up to 100%). In cases where it is not feasible to respect the power cap, all - // validators on the consumer chain will have equal voting power in order to minimize the power of a single validator. - // Thus, in the example of 5 validators and a `validators_power_cap` set to 10%, all validators would end up having 20% - // of the total voting power on the consumer chain. Therefore, `validators_power_cap` operates on a best-effort basis. - // For more information on the power cap and other power-shaping parameters, please refer to the ICS docs and - // specifically `interchain-security/docs/docs/features/power-shaping.md`. + // Note that respecting `validators_power_cap` might NOT always be possible. + // For example, if we have a consumer chain with only 5 validators and + // `validators_power_cap` is set to 10%, then it is not possible to respect + // the `validators_power_cap`. If the voting power of each validator is capped + // to a maximum of 10% of the total consumer chain's voting power, then the + // total voting power of the consumer chain would add up to 50% which + // obviously does not make sense (percentages should add up to 100%). In cases + // where it is not feasible to respect the power cap, all validators on the + // consumer chain will have equal voting power in order to minimize the power + // of a single validator. Thus, in the example of 5 validators and a + // `validators_power_cap` set to 10%, all validators would end up having 20% + // of the total voting power on the consumer chain. Therefore, + // `validators_power_cap` operates on a best-effort basis. For more + // information on the power cap and other power-shaping parameters, please + // refer to the ICS docs and specifically + // `interchain-security/docs/docs/features/power-shaping.md`. uint32 validators_power_cap = 2; - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. uint32 validator_set_cap = 3; - // corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate the consumer chain + // corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain repeated string allowlist = 4; - // corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain + // corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain repeated string denylist = 5; - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. uint64 min_stake = 6; - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. bool allow_inactive_vals = 7; - // Corresponds to a list of provider consensus addresses of validators that should have PRIORITY to validate on the consumer chain, - // meaning as long as they are eligible/opted in to validate on the consumer chain, the validator set will be - // filled with these validators first, and other validators will be added to the validator set only if there are - // not enough eligible priority validators. + // Corresponds to a list of provider consensus addresses of validators that + // should have PRIORITY to validate on the consumer chain, meaning as long as + // they are eligible/opted in to validate on the consumer chain, the validator + // set will be filled with these validators first, and other validators will + // be added to the validator set only if there are not enough eligible + // priority validators. repeated string prioritylist = 8; } // ConsumerIds contains consumer ids of chains // Used so we can easily (de)serialize slices of strings -message ConsumerIds { - repeated string ids = 1; -} +message ConsumerIds { repeated string ids = 1; } // ConsumerPhase indicates the phases of a consumer chain according to ADR 019 enum ConsumerPhase { @@ -543,25 +566,26 @@ enum ConsumerPhase { // UNSPECIFIED defines an empty phase. CONSUMER_PHASE_UNSPECIFIED = 0; - // REGISTERED defines the phase in which a consumer chain has been assigned a unique consumer id. - // A chain in this phase cannot yet launch. + // REGISTERED defines the phase in which a consumer chain has been assigned a + // unique consumer id. A chain in this phase cannot yet launch. CONSUMER_PHASE_REGISTERED = 1; - // INITIALIZED defines the phase in which a consumer chain has set all the needed parameters to launch but - // has not yet launched (e.g., because the `spawnTime` of the consumer chain has not yet been reached). + // INITIALIZED defines the phase in which a consumer chain has set all the + // needed parameters to launch but has not yet launched (e.g., because the + // `spawnTime` of the consumer chain has not yet been reached). CONSUMER_PHASE_INITIALIZED = 2; - // LAUNCHED defines the phase in which a consumer chain is running and consuming a subset of the validator - // set of the provider. + // LAUNCHED defines the phase in which a consumer chain is running and + // consuming a subset of the validator set of the provider. CONSUMER_PHASE_LAUNCHED = 3; // STOPPED defines the phase in which a previously-launched chain has stopped. CONSUMER_PHASE_STOPPED = 4; - // DELETED defines the phase in which the state of a stopped chain has been deleted. + // DELETED defines the phase in which the state of a stopped chain has been + // deleted. CONSUMER_PHASE_DELETED = 5; } -// AllowlistedRewardDenoms corresponds to the denoms allowlisted by a specific consumer id -message AllowlistedRewardDenoms { - repeated string denoms = 1; -} +// AllowlistedRewardDenoms corresponds to the denoms allowlisted by a specific +// consumer id +message AllowlistedRewardDenoms { repeated string denoms = 1; } // message InfractionParameters { @@ -577,7 +601,8 @@ message SlashJailParameters { (gogoproto.nullable) = false, (amino.dont_omitempty) = true ]; - // for permanent jailing use 9223372036854775807 which is the largest value a time.Duration can hold (approximately 292 years) + // for permanent jailing use 9223372036854775807 which is the largest value a + // time.Duration can hold (approximately 292 years) google.protobuf.Duration jail_duration = 2 [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; // Indicates whether the validator should be tombstoned when slashed diff --git a/proto/interchain_security/ccv/provider/v1/query.proto b/proto/interchain_security/ccv/provider/v1/query.proto index a272e513bf..f5f27fe1fd 100644 --- a/proto/interchain_security/ccv/provider/v1/query.proto +++ b/proto/interchain_security/ccv/provider/v1/query.proto @@ -9,7 +9,7 @@ import "google/protobuf/timestamp.proto"; import "interchain_security/ccv/provider/v1/provider.proto"; import "interchain_security/ccv/v1/shared_consumer.proto"; import "interchain_security/ccv/v1/wire.proto"; -import "tendermint/crypto/keys.proto"; +import "cometbft/crypto/v1/keys.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/staking/v1beta1/staking.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; @@ -20,144 +20,145 @@ service Query { rpc QueryConsumerGenesis(QueryConsumerGenesisRequest) returns (QueryConsumerGenesisResponse) { option (google.api.http) = { - get: "/interchain_security/ccv/provider/consumer_genesis/{consumer_id}"; - }; - } - - // ConsumerChains queries active consumer chains supported by the provider - // chain - rpc QueryConsumerChains(QueryConsumerChainsRequest) - returns (QueryConsumerChainsResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/consumer_chains/{phase}"; - } - - // QueryValidatorConsumerAddr queries the address - // assigned by a validator for a consumer chain. - rpc QueryValidatorConsumerAddr(QueryValidatorConsumerAddrRequest) - returns (QueryValidatorConsumerAddrResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/validator_consumer_addr/{consumer_id}/{provider_address}"; - } - - // QueryProviderAddr returns the provider chain validator - // given a consumer chain validator address - rpc QueryValidatorProviderAddr(QueryValidatorProviderAddrRequest) - returns (QueryValidatorProviderAddrResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/validator_provider_addr/{consumer_id}/{consumer_address}"; - } - - // QueryThrottleState returns the main on-chain state relevant to currently - // throttled slash packets - rpc QueryThrottleState(QueryThrottleStateRequest) - returns (QueryThrottleStateResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/throttle_state"; - } - - // QueryRegisteredConsumerRewardDenoms returns a list of consumer reward - // denoms that are registered - rpc QueryRegisteredConsumerRewardDenoms( - QueryRegisteredConsumerRewardDenomsRequest) - returns (QueryRegisteredConsumerRewardDenomsResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/registered_consumer_reward_denoms"; - } - - // QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus address - // between provider and consumer chain - rpc QueryAllPairsValConsAddrByConsumer ( + get : "/interchain_security/ccv/provider/consumer_genesis/{consumer_id}"; + }; +} + +// ConsumerChains queries active consumer chains supported by the provider +// chain +rpc QueryConsumerChains(QueryConsumerChainsRequest) + returns (QueryConsumerChainsResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/consumer_chains/{phase}"; +} + +// QueryValidatorConsumerAddr queries the address +// assigned by a validator for a consumer chain. +rpc QueryValidatorConsumerAddr(QueryValidatorConsumerAddrRequest) + returns (QueryValidatorConsumerAddrResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/validator_consumer_addr/{consumer_id}/" + "{provider_address}"; +} + +// QueryProviderAddr returns the provider chain validator +// given a consumer chain validator address +rpc QueryValidatorProviderAddr(QueryValidatorProviderAddrRequest) + returns (QueryValidatorProviderAddrResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/validator_provider_addr/{consumer_id}/" + "{consumer_address}"; +} + +// QueryThrottleState returns the main on-chain state relevant to currently +// throttled slash packets +rpc QueryThrottleState(QueryThrottleStateRequest) + returns (QueryThrottleStateResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/throttle_state"; +} + +// QueryRegisteredConsumerRewardDenoms returns a list of consumer reward +// denoms that are registered +rpc QueryRegisteredConsumerRewardDenoms( + QueryRegisteredConsumerRewardDenomsRequest) + returns (QueryRegisteredConsumerRewardDenomsResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/registered_consumer_reward_denoms"; +} + +// QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus +// address between provider and consumer chain +rpc QueryAllPairsValConsAddrByConsumer( QueryAllPairsValConsAddrByConsumerRequest) returns (QueryAllPairsValConsAddrByConsumerResponse) { - option (google.api.http) = { - get: "/interchain_security/ccv/provider/address_pairs/{consumer_id}"; - }; - } - - // QueryParams returns all current values of provider parameters - rpc QueryParams(QueryParamsRequest) - returns (QueryParamsResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/params"; - } - - // QueryConsumerChainOptedInValidators returns a list of validators consensus addresses - // that opted-in to the given consumer chain - rpc QueryConsumerChainOptedInValidators( + option (google.api.http) = { + get : "/interchain_security/ccv/provider/address_pairs/{consumer_id}"; +}; +} + +// QueryParams returns all current values of provider parameters +rpc QueryParams(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/interchain_security/ccv/provider/params"; +} + +// QueryConsumerChainOptedInValidators returns a list of validators consensus +// addresses that opted-in to the given consumer chain +rpc QueryConsumerChainOptedInValidators( QueryConsumerChainOptedInValidatorsRequest) returns (QueryConsumerChainOptedInValidatorsResponse) { - option (google.api.http) = { - get: "/interchain_security/ccv/provider/opted_in_validators/{consumer_id}"; - }; - } - - // QueryConsumerChainsValidatorHasToValidate returns a list of consumer chains - // that a given validator must validate - rpc QueryConsumerChainsValidatorHasToValidate( + option (google.api.http) = { + get : "/interchain_security/ccv/provider/opted_in_validators/{consumer_id}"; +}; +} + +// QueryConsumerChainsValidatorHasToValidate returns a list of consumer chains +// that a given validator must validate +rpc QueryConsumerChainsValidatorHasToValidate( QueryConsumerChainsValidatorHasToValidateRequest) returns (QueryConsumerChainsValidatorHasToValidateResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/consumer_chains_per_validator/{provider_address}"; - } + option (google.api.http).get = + "/interchain_security/ccv/provider/consumer_chains_per_validator/" + "{provider_address}"; +} - // QueryValidatorConsumerCommissionRate returns the commission rate a given - // validator charges on a given consumer chain - rpc QueryValidatorConsumerCommissionRate( +// QueryValidatorConsumerCommissionRate returns the commission rate a given +// validator charges on a given consumer chain +rpc QueryValidatorConsumerCommissionRate( QueryValidatorConsumerCommissionRateRequest) returns (QueryValidatorConsumerCommissionRateResponse) { - option (google.api.http) = { - get: "/interchain_security/ccv/provider/consumer_commission_rate/{consumer_id}/{provider_address}"; - }; - } - - // QueryConsumerValidators returns the latest set consumer-validator set for a given consumer ID - // Note that this does not necessarily mean that the consumer chain is using this validator set at this exact moment - // because a VSCPacket could be delayed to be delivered on the consumer chain. - rpc QueryConsumerValidators(QueryConsumerValidatorsRequest) - returns (QueryConsumerValidatorsResponse) { - option (google.api.http) = { - get: "/interchain_security/ccv/provider/consumer_validators/{consumer_id}"; - }; - } - - // QueryBlocksUntilNextEpoch returns the number of blocks until the next epoch - // starts and validator updates are sent to the consumer chains - rpc QueryBlocksUntilNextEpoch(QueryBlocksUntilNextEpochRequest) - returns (QueryBlocksUntilNextEpochResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/blocks_until_next_epoch"; - } - - // QueryConsumerIdFromClientId returns the consumer id of the chain - // associated with the provided client id - rpc QueryConsumerIdFromClientId(QueryConsumerIdFromClientIdRequest) - returns (QueryConsumerIdFromClientIdResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/consumer_id/{client_id}"; - } - - // QueryConsumerChain returns the consumer chain - // associated with the provided consumer id - rpc QueryConsumerChain(QueryConsumerChainRequest) - returns (QueryConsumerChainResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/consumer_chain/{consumer_id}"; - } - - // QueryConsumerGenesisTime returns the genesis time - // of the consumer chain associated with the provided consumer id - rpc QueryConsumerGenesisTime(QueryConsumerGenesisTimeRequest) - returns (QueryConsumerGenesisTimeResponse) { - option (google.api.http).get = - "/interchain_security/ccv/provider/consumer_genesis_time/{consumer_id}"; - } -} - -message QueryConsumerGenesisRequest { - string consumer_id = 1; + option (google.api.http) = { + get : "/interchain_security/ccv/provider/consumer_commission_rate/" + "{consumer_id}/{provider_address}"; +}; } +// QueryConsumerValidators returns the latest set consumer-validator set for a +// given consumer ID Note that this does not necessarily mean that the consumer +// chain is using this validator set at this exact moment because a VSCPacket +// could be delayed to be delivered on the consumer chain. +rpc QueryConsumerValidators(QueryConsumerValidatorsRequest) + returns (QueryConsumerValidatorsResponse) { + option (google.api.http) = { + get : "/interchain_security/ccv/provider/consumer_validators/{consumer_id}"; +}; +} + +// QueryBlocksUntilNextEpoch returns the number of blocks until the next epoch +// starts and validator updates are sent to the consumer chains +rpc QueryBlocksUntilNextEpoch(QueryBlocksUntilNextEpochRequest) + returns (QueryBlocksUntilNextEpochResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/blocks_until_next_epoch"; +} + +// QueryConsumerIdFromClientId returns the consumer id of the chain +// associated with the provided client id +rpc QueryConsumerIdFromClientId(QueryConsumerIdFromClientIdRequest) + returns (QueryConsumerIdFromClientIdResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/consumer_id/{client_id}"; +} + +// QueryConsumerChain returns the consumer chain +// associated with the provided consumer id +rpc QueryConsumerChain(QueryConsumerChainRequest) + returns (QueryConsumerChainResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/consumer_chain/{consumer_id}"; +} + +// QueryConsumerGenesisTime returns the genesis time +// of the consumer chain associated with the provided consumer id +rpc QueryConsumerGenesisTime(QueryConsumerGenesisTimeRequest) + returns (QueryConsumerGenesisTimeResponse) { + option (google.api.http).get = + "/interchain_security/ccv/provider/consumer_genesis_time/{consumer_id}"; +} +} + +message QueryConsumerGenesisRequest { string consumer_id = 1; } + message QueryConsumerGenesisResponse { interchain_security.ccv.v1.ConsumerGenesisState genesis_state = 1 [ (gogoproto.nullable) = false ]; @@ -180,37 +181,44 @@ message Chain { string chain_id = 1; string client_id = 2; uint32 top_N = 3; - // If the chain is a Top-N chain, this is the minimum power required to be in the top N. - // Otherwise, this is -1. + // If the chain is a Top-N chain, this is the minimum power required to be in + // the top N. Otherwise, this is -1. int64 min_power_in_top_N = 4; - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. uint32 validators_power_cap = 5; - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. uint32 validator_set_cap = 6; - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. repeated string allowlist = 7; - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. repeated string denylist = 8; // The phase the consumer chain string phase = 9; // The metadata of the consumer chain - ConsumerMetadata metadata = 10 [(gogoproto.nullable) = false ]; - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + ConsumerMetadata metadata = 10 [ (gogoproto.nullable) = false ]; + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. uint64 min_stake = 11; - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. bool allow_inactive_vals = 12; string consumer_id = 13; // the reward denoms allowlisted by this consumer chain AllowlistedRewardDenoms allowlisted_reward_denoms = 14; - // Corresponds to a list of provider consensus addresses of validators that should have PRIORITY to validate on the consumer chain, - // meaning as long as they are eligible/opted in to validate on the consumer chain, the validator set will be - // filled with these validators first, and other validators will be added to the validator set only if there are - // not enough eligible priority validators. + // Corresponds to a list of provider consensus addresses of validators that + // should have PRIORITY to validate on the consumer chain, meaning as long as + // they are eligible/opted in to validate on the consumer chain, the validator + // set will be filled with these validators first, and other validators will + // be added to the validator set only if there are not enough eligible + // priority validators. repeated string prioritylist = 15; - // Infraction parameters for slashing and jailing - InfractionParameters infraction_parameters = 16; + // Infraction parameters for slashing and jailing + InfractionParameters infraction_parameters = 16; } message QueryValidatorConsumerAddrRequest { @@ -272,73 +280,76 @@ message QueryAllPairsValConsAddrByConsumerResponse { message PairValConAddrProviderAndConsumer { // The consensus address of the validator on the provider chain - string provider_address = 1 [ (gogoproto.moretags) = "yaml:\"provider_address\"" ]; + string provider_address = 1 + [ (gogoproto.moretags) = "yaml:\"provider_address\"" ]; // The consensus address of the validator on the consumer chain - string consumer_address = 2 [ (gogoproto.moretags) = "yaml:\"consumer_address\"" ]; - tendermint.crypto.PublicKey consumer_key = 3; + string consumer_address = 2 + [ (gogoproto.moretags) = "yaml:\"consumer_address\"" ]; + cometbft.crypto.v1.PublicKey consumer_key = 3; } message QueryParamsRequest {} message QueryParamsResponse { - Params params = 1 [(gogoproto.nullable) = false]; + Params params = 1 [ (gogoproto.nullable) = false ]; } -message QueryConsumerChainOptedInValidatorsRequest { - string consumer_id = 1; -} +message QueryConsumerChainOptedInValidatorsRequest { string consumer_id = 1; } message QueryConsumerChainOptedInValidatorsResponse { // The consensus addresses of the validators on the provider chain repeated string validators_provider_addresses = 1; } -message QueryConsumerValidatorsRequest { - string consumer_id = 1; -} +message QueryConsumerValidatorsRequest { string consumer_id = 1; } message QueryConsumerValidatorsValidator { // The consensus address of the validator on the provider chain string provider_address = 1 [ (gogoproto.moretags) = "yaml:\"address\"" ]; // The consumer public key of the validator used on the consumer chain - tendermint.crypto.PublicKey consumer_key = 2; + cometbft.crypto.v1.PublicKey consumer_key = 2; // [DEPRECATED] use `consumer_power` instead - int64 power = 3 [deprecated = true]; + int64 power = 3 [ deprecated = true ]; // [DEPRECATED] use `consumer_commission_rate` instead - string rate = 4 [ deprecated = true, + string rate = 4 [ + deprecated = true, (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false ]; // The power of the validator used on the consumer chain int64 consumer_power = 5; // The rate to charge delegators on the consumer chain, as a fraction string consumer_commission_rate = 6 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; + (gogoproto.nullable) = false + ]; // The rate to charge delegators on the provider chain, as a fraction string provider_commission_rate = 7 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; + (gogoproto.nullable) = false + ]; // description defines the description terms for the validator - cosmos.staking.v1beta1.Description description = 8 [(gogoproto.nullable) = false]; + cosmos.staking.v1beta1.Description description = 8 + [ (gogoproto.nullable) = false ]; // provider_operator_address defines the address of the validator's operator - string provider_operator_address = 9 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; - // jailed defined whether the validator has been jailed from bonded status or not. + string provider_operator_address = 9 + [ (cosmos_proto.scalar) = "cosmos.ValidatorAddressString" ]; + // jailed defined whether the validator has been jailed from bonded status or + // not. bool jailed = 10; // status is the validator status (bonded/unbonding/unbonded). cosmos.staking.v1beta1.BondStatus status = 11; // provider_tokens defines the delegated tokens (incl. self-delegation). string provider_tokens = 12 [ - (cosmos_proto.scalar) = "cosmos.Int", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "cosmossdk.io/math.Int", - (gogoproto.nullable) = false + (gogoproto.nullable) = false ]; // The power of the validator used on the provider chain int64 provider_power = 13; - // validates_current_epoch defines whether the validator has to validate for the current epoch or not + // validates_current_epoch defines whether the validator has to validate for + // the current epoch or not bool validates_current_epoch = 14; } @@ -365,11 +376,11 @@ message QueryValidatorConsumerCommissionRateResponse { // The rate to charge delegators on the consumer chain, as a fraction string rate = 1 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; + (gogoproto.nullable) = false + ]; } -message QueryBlocksUntilNextEpochRequest { } +message QueryBlocksUntilNextEpochRequest {} message QueryBlocksUntilNextEpochResponse { // The number of blocks until the next epoch starts @@ -378,7 +389,8 @@ message QueryBlocksUntilNextEpochResponse { message QueryConsumerIdFromClientIdRequest { // the client id (on the provider) that is tracking the consumer chain - // the client id can be found from the consumer chain by querying (i.e., `query ccvconsumer provider-info`) + // the client id can be found from the consumer chain by querying (i.e., + // `query ccvconsumer provider-info`) string client_id = 1; } @@ -387,9 +399,7 @@ message QueryConsumerIdFromClientIdResponse { string consumer_id = 1; } -message QueryConsumerChainRequest { - string consumer_id = 1; -} +message QueryConsumerChainRequest { string consumer_id = 1; } message QueryConsumerChainResponse { string consumer_id = 1; @@ -405,11 +415,9 @@ message QueryConsumerChainResponse { string client_id = 9; } -message QueryConsumerGenesisTimeRequest { - string consumer_id = 1; -} +message QueryConsumerGenesisTimeRequest { string consumer_id = 1; } message QueryConsumerGenesisTimeResponse { google.protobuf.Timestamp genesis_time = 1 - [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; + [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; } diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index aa5383f79f..2adb0c7d53 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -14,34 +14,37 @@ import "cosmos/msg/v1/msg.proto"; import "ibc/core/client/v1/client.proto"; import "interchain_security/ccv/provider/v1/provider.proto"; import "ibc/lightclients/tendermint/v1/tendermint.proto"; -import "tendermint/types/evidence.proto"; +import "cometbft/types/v2/evidence.proto"; // Msg defines the Msg service. service Msg { option (cosmos.msg.v1.service) = true; - rpc AssignConsumerKey(MsgAssignConsumerKey) returns (MsgAssignConsumerKeyResponse); - rpc SubmitConsumerMisbehaviour(MsgSubmitConsumerMisbehaviour) returns (MsgSubmitConsumerMisbehaviourResponse); - rpc SubmitConsumerDoubleVoting(MsgSubmitConsumerDoubleVoting) returns (MsgSubmitConsumerDoubleVotingResponse); + rpc AssignConsumerKey(MsgAssignConsumerKey) + returns (MsgAssignConsumerKeyResponse); + rpc SubmitConsumerMisbehaviour(MsgSubmitConsumerMisbehaviour) + returns (MsgSubmitConsumerMisbehaviourResponse); + rpc SubmitConsumerDoubleVoting(MsgSubmitConsumerDoubleVoting) + returns (MsgSubmitConsumerDoubleVotingResponse); rpc CreateConsumer(MsgCreateConsumer) returns (MsgCreateConsumerResponse); rpc UpdateConsumer(MsgUpdateConsumer) returns (MsgUpdateConsumerResponse); rpc RemoveConsumer(MsgRemoveConsumer) returns (MsgRemoveConsumerResponse); rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); rpc OptIn(MsgOptIn) returns (MsgOptInResponse); rpc OptOut(MsgOptOut) returns (MsgOptOutResponse); - rpc SetConsumerCommissionRate(MsgSetConsumerCommissionRate) returns (MsgSetConsumerCommissionRateResponse); - rpc ChangeRewardDenoms(MsgChangeRewardDenoms) returns (MsgChangeRewardDenomsResponse); + rpc SetConsumerCommissionRate(MsgSetConsumerCommissionRate) + returns (MsgSetConsumerCommissionRateResponse); + rpc ChangeRewardDenoms(MsgChangeRewardDenoms) + returns (MsgChangeRewardDenomsResponse); } - message MsgAssignConsumerKey { option (cosmos.msg.v1.signer) = "signer"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; - // [DEPRECATED] use `consumer_id` instead - string chain_id = 1 [deprecated = true]; + string chain_id = 1 [ deprecated = true ]; // The validator address on the provider string provider_addr = 2 [ (gogoproto.moretags) = "yaml:\"address\"" ]; // The consensus public key to use on the consumer. @@ -49,7 +52,7 @@ message MsgAssignConsumerKey { // `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}` string consumer_key = 3; - string signer = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string signer = 4 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the consumer id of the consumer chain to assign a consensus public key to string consumer_id = 5; @@ -57,15 +60,14 @@ message MsgAssignConsumerKey { message MsgAssignConsumerKeyResponse {} - -// MsgSubmitConsumerMisbehaviour defines a message that reports a light client attack, -// also known as a misbehaviour, observed on a consumer chain +// MsgSubmitConsumerMisbehaviour defines a message that reports a light client +// attack, also known as a misbehaviour, observed on a consumer chain message MsgSubmitConsumerMisbehaviour { option (cosmos.msg.v1.signer) = "submitter"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; - string submitter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string submitter = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // The Misbehaviour of the consumer chain wrapping // two conflicting IBC headers ibc.lightclients.tendermint.v1.Misbehaviour misbehaviour = 2; @@ -75,7 +77,6 @@ message MsgSubmitConsumerMisbehaviour { message MsgSubmitConsumerMisbehaviourResponse {} - // MsgSubmitConsumerDoubleVoting defines a message that reports // a double signing infraction observed on a consumer chain message MsgSubmitConsumerDoubleVoting { @@ -83,10 +84,10 @@ message MsgSubmitConsumerDoubleVoting { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; - string submitter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string submitter = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // The equivocation of the consumer chain wrapping // an evidence of a validator that signed two conflicting votes - tendermint.types.DuplicateVoteEvidence duplicate_vote_evidence = 2; + cometbft.types.v2.DuplicateVoteEvidence duplicate_vote_evidence = 2; // The light client header of the infraction block ibc.lightclients.tendermint.v1.Header infraction_block_header = 3; // the consumer id of the consumer chain where the double-voting took place @@ -100,10 +101,10 @@ message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. - string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // params defines the x/provider parameters to update. - Params params = 2 [(gogoproto.nullable) = false]; + Params params = 2 [ (gogoproto.nullable) = false ]; } message MsgUpdateParamsResponse {} @@ -113,7 +114,7 @@ message MsgConsumerAddition { option deprecated = true; option (cosmos.msg.v1.signer) = "authority"; - // the proposed chain-id of the new consumer chain, must be different from all + // the proposed chain-id of the new consumer chain, must be different from all // other consumer chain ids of the executing provider chain. string chain_id = 1; // the proposed initial height of new consumer chain. @@ -164,34 +165,42 @@ message MsgConsumerAddition { // chain. it is most relevant for chains performing a sovereign to consumer // changeover in order to maintain the existing ibc transfer channel string distribution_transmission_channel = 12; - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. uint32 top_N = 13; - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. uint32 validators_power_cap = 14; - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. uint32 validator_set_cap = 15; - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. repeated string allowlist = 16; - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. repeated string denylist = 17; // signer address - string authority = 18 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + string authority = 18 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. uint64 min_stake = 19; - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. bool allow_inactive_vals = 20; } - // [DEPRECATED] Use `MsgRemoveConsumer` instead message MsgConsumerRemoval { option deprecated = true; @@ -203,28 +212,30 @@ message MsgConsumerRemoval { google.protobuf.Timestamp stop_time = 2 [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; // signer address - string authority = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 3 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; } - -// MsgRemoveConsumer defines the message used to remove (and stop) a consumer chain. -// If it passes, all the consumer chain's state is eventually removed from the provider chain. +// MsgRemoveConsumer defines the message used to remove (and stop) a consumer +// chain. If it passes, all the consumer chain's state is eventually removed +// from the provider chain. message MsgRemoveConsumer { option (cosmos.msg.v1.signer) = "owner"; // the consumer id of the consumer chain to be stopped string consumer_id = 1; // the address of the owner of the consumer chain to be stopped - string owner = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string owner = 2 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; } -// MsgRemoveConsumerResponse defines response type for MsgRemoveConsumer messages +// MsgRemoveConsumerResponse defines response type for MsgRemoveConsumer +// messages message MsgRemoveConsumerResponse {} // ChangeRewardDenomsProposal is a governance proposal on the provider chain to // mutate the set of denoms accepted by the provider as rewards. // -// Note: this replaces ChangeRewardDenomsProposal which is deprecated and will be removed soon +// Note: this replaces ChangeRewardDenomsProposal which is deprecated and will +// be removed soon message MsgChangeRewardDenoms { option (cosmos.msg.v1.signer) = "authority"; @@ -233,11 +244,11 @@ message MsgChangeRewardDenoms { // the list of consumer reward denoms to remove repeated string denoms_to_remove = 2; // authority is the address of the governance account - string authority = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - + string authority = 3 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; } -// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms messages +// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms +// messages message MsgChangeRewardDenomsResponse {} message MsgOptIn { @@ -245,16 +256,18 @@ message MsgOptIn { option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "signer"; // [DEPRECATED] use `consumer_id` instead - string chain_id = 1 [deprecated = true]; + string chain_id = 1 [ deprecated = true ]; // the validator address on the provider string provider_addr = 2 [ (gogoproto.moretags) = "yaml:\"address\"" ]; - // (optional) The consensus public key to use on the consumer in json string format corresponding to proto-any, - // for example `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}`. - // This field is optional and can remain empty (i.e., `consumer_key = ""`). A validator can always change the - // consumer public key at a later stage by issuing a `MsgAssignConsumerKey` message. + // (optional) The consensus public key to use on the consumer in json string + // format corresponding to proto-any, for example + // `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}`. + // This field is optional and can remain empty (i.e., `consumer_key = ""`). A + // validator can always change the consumer public key at a later stage by + // issuing a `MsgAssignConsumerKey` message. string consumer_key = 3; // submitter address - string signer = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string signer = 4 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the consumer id of the consumer chain to opt in to string consumer_id = 5; } @@ -266,11 +279,11 @@ message MsgOptOut { option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "signer"; // [DEPRECATED] use `consumer_id` instead - string chain_id = 1 [deprecated = true]; + string chain_id = 1 [ deprecated = true ]; // the validator address on the provider string provider_addr = 2 [ (gogoproto.moretags) = "yaml:\"address\"" ]; // submitter address - string signer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string signer = 3 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the consumer id of the consumer chain to opt out from string consumer_id = 4; } @@ -287,21 +300,20 @@ message MsgSetConsumerCommissionRate { // The validator address on the provider string provider_addr = 1 [ (gogoproto.moretags) = "yaml:\"address\"" ]; // [DEPRECATED] use `consumer_id` instead - string chain_id = 2 [deprecated = true]; + string chain_id = 2 [ deprecated = true ]; // The rate to charge delegators on the consumer chain, as a fraction // TODO: migrate rate from sdk.Dec to math.LegacyDec string rate = 3 [ - (cosmos_proto.scalar) = "cosmos.Dec", + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false - ]; + (gogoproto.nullable) = false + ]; // submitter address - string signer = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string signer = 4 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the consumer id of the consumer chain to set the commission rate string consumer_id = 5; } - message MsgSetConsumerCommissionRateResponse {} // [DEPRECATED] Use `MsgUpdateConsumer` instead @@ -315,30 +327,39 @@ message MsgConsumerModification { string description = 2; // the chain-id of the consumer chain to be modified string chain_id = 3; - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. uint32 top_N = 4; - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. uint32 validators_power_cap = 5; - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. uint32 validator_set_cap = 6; - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. repeated string allowlist = 7; - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. repeated string denylist = 8; // signer address - string authority = 9 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + string authority = 9 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. uint64 min_stake = 10; - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. bool allow_inactive_vals = 11; } @@ -348,9 +369,9 @@ message MsgConsumerModificationResponse {} message MsgCreateConsumer { option (cosmos.msg.v1.signer) = "submitter"; - // Submitter address. If the message is successfully handled, the ownership of + // Submitter address. If the message is successfully handled, the ownership of // the consumer chain will given to this address. - string submitter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string submitter = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the chain id of the new consumer chain string chain_id = 2; @@ -369,22 +390,21 @@ message MsgCreateConsumer { } // MsgCreateConsumerResponse defines response type for MsgCreateConsumer -message MsgCreateConsumerResponse { - string consumer_id = 1; -} +message MsgCreateConsumerResponse { string consumer_id = 1; } // MsgUpdateConsumer defines the message used to modify a consumer chain. message MsgUpdateConsumer { option (cosmos.msg.v1.signer) = "owner"; // the address of the owner of the consumer chain to be updated - string owner = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string owner = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the consumer id of the consumer chain to be updated string consumer_id = 2; // the new owner of the consumer when updated - string new_owner_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string new_owner_address = 3 + [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; // the metadata of the consumer when updated ConsumerMetadata metadata = 4; @@ -395,17 +415,20 @@ message MsgUpdateConsumer { // the power-shaping parameters of the consumer when updated PowerShapingParameters power_shaping_parameters = 6; - // allowlisted reward denoms of the consumer (if provided they overwrite previously set reward denoms) + // allowlisted reward denoms of the consumer (if provided they overwrite + // previously set reward denoms) AllowlistedRewardDenoms allowlisted_reward_denoms = 7; - // (optional) If the consumer chain has NOT yet launched, the chain id can be updated. After a chain has launched - // the chain id CANNOT be updated. - // This field is optional and can remain empty (i.e., `new_chain_id = ""`) or correspond to the chain id the chain already has. + // (optional) If the consumer chain has NOT yet launched, the chain id can be + // updated. After a chain has launched the chain id CANNOT be updated. This + // field is optional and can remain empty (i.e., `new_chain_id = ""`) or + // correspond to the chain id the chain already has. string new_chain_id = 8; // infraction parameters for slashing and jailing InfractionParameters infraction_parameters = 9; } -// MsgUpdateConsumerResponse defines response type for MsgUpdateConsumer messages +// MsgUpdateConsumerResponse defines response type for MsgUpdateConsumer +// messages message MsgUpdateConsumerResponse {} \ No newline at end of file diff --git a/proto/interchain_security/ccv/v1/shared_consumer.proto b/proto/interchain_security/ccv/v1/shared_consumer.proto index 941c104f7f..04d0e43ba3 100644 --- a/proto/interchain_security/ccv/v1/shared_consumer.proto +++ b/proto/interchain_security/ccv/v1/shared_consumer.proto @@ -4,7 +4,7 @@ package interchain_security.ccv.v1; option go_package = "github.com/cosmos/interchain-security/v7/x/ccv/types"; -import "tendermint/abci/types.proto"; +import "cometbft/abci/v2/types.proto"; import "ibc/lightclients/tendermint/v1/tendermint.proto"; import "google/protobuf/duration.proto"; import "gogoproto/gogo.proto"; @@ -22,64 +22,65 @@ import "gogoproto/gogo.proto"; // SetConsumerGenesis. // message ConsumerParams { - // TODO: Remove enabled flag and find a better way to setup integration tests - // See: https://github.com/cosmos/interchain-security/issues/339 - bool enabled = 1; - - /////////////////////// - // Distribution Params - // Number of blocks between ibc-token-transfers from the consumer chain to - // the provider chain. Note that at this transmission event a fraction of - // the accumulated tokens are divided and sent consumer redistribution - // address. - int64 blocks_per_distribution_transmission = 2; - - // Channel, and provider-chain receiving address to send distribution token - // transfers over. These parameters is auto-set during the consumer <-> - // provider handshake procedure. - string distribution_transmission_channel = 3; - string provider_fee_pool_addr_str = 4; - // Sent CCV related IBC packets will timeout after this duration - google.protobuf.Duration ccv_timeout_period = 5 - [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; - - // Sent transfer related IBC packets will timeout after this duration - google.protobuf.Duration transfer_timeout_period = 6 - [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; - - // The fraction of tokens allocated to the consumer redistribution address - // during distribution events. The fraction is a string representing a - // decimal number. For example "0.75" would represent 75%. - string consumer_redistribution_fraction = 7; - - // The number of historical info entries to persist in store. - // This param is a part of the cosmos sdk staking module. In the case of - // a ccv enabled consumer chain, the ccv module acts as the staking module. - int64 historical_entries = 8; - - // Unbonding period for the consumer, - // which should be smaller than that of the provider in general. - google.protobuf.Duration unbonding_period = 9 - [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; - - // !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see docs/docs/adrs/adr-015-partial-set-security.md - string soft_opt_out_threshold = 10 [deprecated = true]; - - // Reward denoms. These are the denominations which are allowed to be sent to - // the provider as rewards. - repeated string reward_denoms = 11; - - // Provider-originated reward denoms. These are denoms coming from the - // provider which are allowed to be used as rewards. e.g. "uatom" - repeated string provider_reward_denoms = 12; - - // The period after which a consumer can retry sending a throttled packet. - google.protobuf.Duration retry_delay_period = 13 - [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; - - // The consumer ID of this consumer chain. Used by the consumer module to send - // ICS rewards. - string consumer_id = 14; + // TODO: Remove enabled flag and find a better way to setup integration tests + // See: https://github.com/cosmos/interchain-security/issues/339 + bool enabled = 1; + + /////////////////////// + // Distribution Params + // Number of blocks between ibc-token-transfers from the consumer chain to + // the provider chain. Note that at this transmission event a fraction of + // the accumulated tokens are divided and sent consumer redistribution + // address. + int64 blocks_per_distribution_transmission = 2; + + // Channel, and provider-chain receiving address to send distribution token + // transfers over. These parameters is auto-set during the consumer <-> + // provider handshake procedure. + string distribution_transmission_channel = 3; + string provider_fee_pool_addr_str = 4; + // Sent CCV related IBC packets will timeout after this duration + google.protobuf.Duration ccv_timeout_period = 5 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + + // Sent transfer related IBC packets will timeout after this duration + google.protobuf.Duration transfer_timeout_period = 6 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + + // The fraction of tokens allocated to the consumer redistribution address + // during distribution events. The fraction is a string representing a + // decimal number. For example "0.75" would represent 75%. + string consumer_redistribution_fraction = 7; + + // The number of historical info entries to persist in store. + // This param is a part of the cosmos sdk staking module. In the case of + // a ccv enabled consumer chain, the ccv module acts as the staking module. + int64 historical_entries = 8; + + // Unbonding period for the consumer, + // which should be smaller than that of the provider in general. + google.protobuf.Duration unbonding_period = 9 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + + // !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see + // docs/docs/adrs/adr-015-partial-set-security.md + string soft_opt_out_threshold = 10 [ deprecated = true ]; + + // Reward denoms. These are the denominations which are allowed to be sent to + // the provider as rewards. + repeated string reward_denoms = 11; + + // Provider-originated reward denoms. These are denoms coming from the + // provider which are allowed to be used as rewards. e.g. "uatom" + repeated string provider_reward_denoms = 12; + + // The period after which a consumer can retry sending a throttled packet. + google.protobuf.Duration retry_delay_period = 13 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + + // The consumer ID of this consumer chain. Used by the consumer module to send + // ICS rewards. + string consumer_id = 14; } // ConsumerGenesisState defines shared genesis information between provider and @@ -88,13 +89,13 @@ message ConsumerGenesisState { ConsumerParams params = 1 [ (gogoproto.nullable) = false ]; ProviderInfo provider = 2 [ (gogoproto.nullable) = false ]; // True for new chain, false for chain restart. - // This is needed and always set to true; otherwise, new_chain in the consumer + // This is needed and always set to true; otherwise, new_chain in the consumer // genesis state will default to false bool new_chain = 3; // Flag indicating whether the consumer CCV module starts in pre-CCV state bool preCCV = 4; - // The ID of the connection end on the consumer chain on top of which the - // CCV channel will be established. If connection_id == "", a new client of + // The ID of the connection end on the consumer chain on top of which the + // CCV channel will be established. If connection_id == "", a new client of // the provider chain and a new connection on top of this client are created. // The new client is initialized using client_state and consensus_state. string connection_id = 5; @@ -103,13 +104,13 @@ message ConsumerGenesisState { // ProviderInfo defines all information a consumer needs from a provider // Shared data type between provider and consumer message ProviderInfo { - // The client state for the provider client filled in on new chain, nil on restart. - // If connection_id != "", then client_state is ignored. + // The client state for the provider client filled in on new chain, nil on + // restart. If connection_id != "", then client_state is ignored. ibc.lightclients.tendermint.v1.ClientState client_state = 1; - // The consensus state for the provider client filled in on new chain, nil on restart. - // If connection_id != "", then consensus_state is ignored. + // The consensus state for the provider client filled in on new chain, nil on + // restart. If connection_id != "", then consensus_state is ignored. ibc.lightclients.tendermint.v1.ConsensusState consensus_state = 2; // InitialValset filled in on new chain and on restart. - repeated .tendermint.abci.ValidatorUpdate initial_val_set = 3 + repeated .cometbft.abci.v2.ValidatorUpdate initial_val_set = 3 [ (gogoproto.nullable) = false ]; } diff --git a/proto/interchain_security/ccv/v1/wire.proto b/proto/interchain_security/ccv/v1/wire.proto index afd31b4b99..aca0aa8cde 100644 --- a/proto/interchain_security/ccv/v1/wire.proto +++ b/proto/interchain_security/ccv/v1/wire.proto @@ -7,13 +7,13 @@ option go_package = "github.com/cosmos/interchain-security/v7/x/ccv/types"; import "cosmos/staking/v1beta1/staking.proto"; import "gogoproto/gogo.proto"; -import "tendermint/abci/types.proto"; +import "cometbft/abci/v2/types.proto"; // // Note any type defined in this file is used by both the consumer and provider -// AND SENT OVER THE WIRE via a ccv channel. Ideally these schemas should never change, or at least -// be backwards compatible if ever changed. -// +// AND SENT OVER THE WIRE via a ccv channel. Ideally these schemas should never +// change, or at least be backwards compatible if ever changed. +// // This packet is sent from provider chain to consumer chain if the validator // set for consumer chain changes (due to new bonding/unbonding messages or @@ -21,7 +21,7 @@ import "tendermint/abci/types.proto"; // asynchronously once unbonding period is over, and this will function as // `UnbondingOver` message for this packet. message ValidatorSetChangePacketData { - repeated .tendermint.abci.ValidatorUpdate validator_updates = 1 [ + repeated .cometbft.abci.v2.ValidatorUpdate validator_updates = 1 [ (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_updates\"" ]; @@ -42,7 +42,7 @@ message VSCMaturedPacketData { // to request the slashing of a validator as a result of an infraction // committed on the consumer chain. message SlashPacketData { - tendermint.abci.Validator validator = 1 [ + cometbft.abci.v2.Validator validator = 1 [ (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator\"" ]; @@ -77,14 +77,16 @@ enum ConsumerPacketDataType { [ (gogoproto.enumvalue_customname) = "VscMaturedPacket" ]; } -// Note this type is used during IBC handshake methods for both the consumer and provider +// Note this type is used during IBC handshake methods for both the consumer and +// provider message HandshakeMetadata { string provider_fee_pool_addr = 1; string version = 2; } // ConsumerPacketData contains a consumer packet data and a type tag -// that is compatible with ICS v1 and v2 over the wire. It is not used for internal storage. +// that is compatible with ICS v1 and v2 over the wire. It is not used for +// internal storage. message ConsumerPacketDataV1 { ConsumerPacketDataType type = 1; @@ -97,7 +99,7 @@ message ConsumerPacketDataV1 { // This packet is sent from the consumer chain to the provider chain // It is backward compatible with the ICS v1 and v2 version of the packet. message SlashPacketDataV1 { - tendermint.abci.Validator validator = 1 [ + cometbft.abci.v2.Validator validator = 1 [ (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator\"" ]; @@ -114,9 +116,12 @@ enum InfractionType { option (gogoproto.goproto_enum_prefix) = false; // UNSPECIFIED defines an empty infraction type. - INFRACTION_TYPE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "InfractionEmpty"]; + INFRACTION_TYPE_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "InfractionEmpty" ]; // DOUBLE_SIGN defines a validator that double-signs a block. - INFRACTION_TYPE_DOUBLE_SIGN = 1 [(gogoproto.enumvalue_customname) = "DoubleSign"]; + INFRACTION_TYPE_DOUBLE_SIGN = 1 + [ (gogoproto.enumvalue_customname) = "DoubleSign" ]; // DOWNTIME defines a validator that missed signing too many blocks. - INFRACTION_TYPE_DOWNTIME = 2 [(gogoproto.enumvalue_customname) = "Downtime"]; + INFRACTION_TYPE_DOWNTIME = 2 + [ (gogoproto.enumvalue_customname) = "Downtime" ]; } diff --git a/scripts/test_doc/test_documentation.md b/scripts/test_doc/test_documentation.md index 20f05c41f7..2921a1397b 100644 --- a/scripts/test_doc/test_documentation.md +++ b/scripts/test_doc/test_documentation.md @@ -83,13 +83,13 @@ | Function | Short Description | |----------|-------------------| - [TestRelayAndApplyDowntimePacket](../../tests/integration/slashing.go#L46) | TestRelayAndApplyDowntimePacket tests that downtime slash packets can be properly relayed from consumer to provider, handled by provider, with a VSC and jailing eventually effective on consumer and provider.
Details* Set up CCV channels and retrieve consumer validators.
* Select a validator and create its consensus address.
* Retrieve the provider consensus address that corresponds to the consumer consensus address of the validator.
* The validator's current state is also retrieved, including its token balance,
* Set validator's signing information is to ensure it will be jailed for downtime.
* Create the slashing packet and send it from the consumer chain to the provider chain with a specified timeout.
* Receive the packet and verify that the validator was removed from the provider validator set.
* Relay VSC packets from the provider chain to each consumer chain and verify that the consumer chains correctly process these packets.
* Check the validator's balance and status on the provider chain to ensure it was jailed correctly but not slashed,
and its unjailing time is updated.
* Reset the outstanding downtime flag on the consumer chain, and ensure that the consumer
chain acknowledges receipt of the packet from the provider chain.

Note: This method does not test the actual slash packet sending logic for downtime
and double-signing, see TestValidatorDowntime and TestValidatorDoubleSigning for
those types of tests.
| - [TestSlashPacketAcknowledgement](../../tests/integration/slashing.go#L181) | TestSlashPacketAcknowledgement tests the handling of a slash packet acknowledgement.
Details* Set up a provider and consumer chain, with channel initialization between them performed.
* Send a slash packet with randomized fields from the consumer to the provider.
* The provider processes the packet
| - [TestHandleSlashPacketDowntime](../../tests/integration/slashing.go#L232) | TestHandleSlashPacketDowntime tests the handling of a downtime related slash packet, with integration tests.
Details* Retrieve a validator from provider chain's validators and checks if it's bonded.
* Set the signing information for the validator.
* The provider processes the downtime slashing packet from the consumer.
* Check that the validator has been jailed as a result of the downtime slashing packet being processed.
* Verify that the validator’s signing information is updated and that the jailing duration is set correctly.

Note that only downtime slash packets are processed by HandleSlashPacket.
| - [TestOnRecvSlashPacketErrors](../../tests/integration/slashing.go#L279) | TestOnRecvSlashPacketErrors tests errors for the OnRecvSlashPacket method in an integration testing setting.
Details* Set up all CCV channels and expect panic if the channel is not established via dest channel of packet.
* After the correct channelID is added to the packet, a panic shouldn't occur anymore.
* Create an instance of SlashPacketData and then verify correct processing and error handling
for slashing packets received by the provider chain.
TODO: Move to unit tests.
| - [TestValidatorDowntime](../../tests/integration/slashing.go#L410) | TestValidatorDowntime tests if a slash packet is sent and if the outstanding slashing flag is switched when a validator has downtime on the slashing module.
Details* Set up all CCV channel and send an empty VSC packet, then retrieve the address of a validator.
* Validator signs blocks for the duration of the signedBlocksWindow and a slash packet is constructed to be sent and committed.
* Simulate the validator missing blocks and then verify that the validator is jailed and the jailed time is correctly updated.
* Ensure that the missed block counters are reset.
* Check that there is a pending slash packet in the queue, and then send the pending packets.
* Check if slash record is created and verify that the consumer queue still contains the packet since no
acknowledgment has been received from the provider.
* Verify that the slash packet was sent and check that the outstanding slashing flag prevents the jailed validator to keep missing block.
| - [TestQueueAndSendSlashPacket](../../tests/integration/slashing.go#L531) | TestQueueAndSendSlashPacket tests the integration of QueueSlashPacket with SendPackets. In normal operation slash packets are queued in BeginBlock and sent in EndBlock.
Details* Set up all CCV channels and then queue slash packets for both downtime and double-signing infractions.
* Check that the correct number of slash requests are stored in the queue, including duplicates for downtime infractions.
* Prepare the CCV channel for sending actual slash packets.
* Send the slash packets and check that the outstanding downtime flags are correctly set for validators that were slashed
for downtime infractions.
* Ensure that the pending data packets queue is empty.
TODO: Move to unit tests.
| - [TestCISBeforeCCVEstablished](../../tests/integration/slashing.go#L616) | TestCISBeforeCCVEstablished tests that the consumer chain doesn't panic or have any undesired behavior when a slash packet is queued before the CCV channel is established. Then once the CCV channel is established, the slash packet should be sent soon after.
Details* Check that no pending packets exist and that there's no slash record found.
* Triggers a slashing event which queues a slash packet.
* The slash packet should be queued but not sent, and it should stay like that until the CCV channel is established and the packet is sent.
*Verify that a slashing record now exists, indicating that the slashing packet has been successfully sent.
| + [TestRelayAndApplyDowntimePacket](../../tests/integration/slashing.go#L47) | TestRelayAndApplyDowntimePacket tests that downtime slash packets can be properly relayed from consumer to provider, handled by provider, with a VSC and jailing eventually effective on consumer and provider.
Details* Set up CCV channels and retrieve consumer validators.
* Select a validator and create its consensus address.
* Retrieve the provider consensus address that corresponds to the consumer consensus address of the validator.
* The validator's current state is also retrieved, including its token balance,
* Set validator's signing information is to ensure it will be jailed for downtime.
* Create the slashing packet and send it from the consumer chain to the provider chain with a specified timeout.
* Receive the packet and verify that the validator was removed from the provider validator set.
* Relay VSC packets from the provider chain to each consumer chain and verify that the consumer chains correctly process these packets.
* Check the validator's balance and status on the provider chain to ensure it was jailed correctly but not slashed,
and its unjailing time is updated.
* Reset the outstanding downtime flag on the consumer chain, and ensure that the consumer
chain acknowledges receipt of the packet from the provider chain.

Note: This method does not test the actual slash packet sending logic for downtime
and double-signing, see TestValidatorDowntime and TestValidatorDoubleSigning for
those types of tests.
| + [TestSlashPacketAcknowledgement](../../tests/integration/slashing.go#L182) | TestSlashPacketAcknowledgement tests the handling of a slash packet acknowledgement.
Details* Set up a provider and consumer chain, with channel initialization between them performed.
* Send a slash packet with randomized fields from the consumer to the provider.
* The provider processes the packet
| + [TestHandleSlashPacketDowntime](../../tests/integration/slashing.go#L233) | TestHandleSlashPacketDowntime tests the handling of a downtime related slash packet, with integration tests.
Details* Retrieve a validator from provider chain's validators and checks if it's bonded.
* Set the signing information for the validator.
* The provider processes the downtime slashing packet from the consumer.
* Check that the validator has been jailed as a result of the downtime slashing packet being processed.
* Verify that the validator’s signing information is updated and that the jailing duration is set correctly.

Note that only downtime slash packets are processed by HandleSlashPacket.
| + [TestOnRecvSlashPacketErrors](../../tests/integration/slashing.go#L280) | TestOnRecvSlashPacketErrors tests errors for the OnRecvSlashPacket method in an integration testing setting.
Details* Set up all CCV channels and expect panic if the channel is not established via dest channel of packet.
* After the correct channelID is added to the packet, a panic shouldn't occur anymore.
* Create an instance of SlashPacketData and then verify correct processing and error handling
for slashing packets received by the provider chain.
TODO: Move to unit tests.
| + [TestValidatorDowntime](../../tests/integration/slashing.go#L411) | TestValidatorDowntime tests if a slash packet is sent and if the outstanding slashing flag is switched when a validator has downtime on the slashing module.
Details* Set up all CCV channel and send an empty VSC packet, then retrieve the address of a validator.
* Validator signs blocks for the duration of the signedBlocksWindow and a slash packet is constructed to be sent and committed.
* Simulate the validator missing blocks and then verify that the validator is jailed and the jailed time is correctly updated.
* Ensure that the missed block counters are reset.
* Check that there is a pending slash packet in the queue, and then send the pending packets.
* Check if slash record is created and verify that the consumer queue still contains the packet since no
acknowledgment has been received from the provider.
* Verify that the slash packet was sent and check that the outstanding slashing flag prevents the jailed validator to keep missing block.
| + [TestQueueAndSendSlashPacket](../../tests/integration/slashing.go#L532) | TestQueueAndSendSlashPacket tests the integration of QueueSlashPacket with SendPackets. In normal operation slash packets are queued in BeginBlock and sent in EndBlock.
Details* Set up all CCV channels and then queue slash packets for both downtime and double-signing infractions.
* Check that the correct number of slash requests are stored in the queue, including duplicates for downtime infractions.
* Prepare the CCV channel for sending actual slash packets.
* Send the slash packets and check that the outstanding downtime flags are correctly set for validators that were slashed
for downtime infractions.
* Ensure that the pending data packets queue is empty.
TODO: Move to unit tests.
| + [TestCISBeforeCCVEstablished](../../tests/integration/slashing.go#L617) | TestCISBeforeCCVEstablished tests that the consumer chain doesn't panic or have any undesired behavior when a slash packet is queued before the CCV channel is established. Then once the CCV channel is established, the slash packet should be sent soon after.
Details* Check that no pending packets exist and that there's no slash record found.
* Triggers a slashing event which queues a slash packet.
* The slash packet should be queued but not sent, and it should stay like that until the CCV channel is established and the packet is sent.
*Verify that a slashing record now exists, indicating that the slashing packet has been successfully sent.
| # [stop_consumer.go](../../tests/integration/stop_consumer.go) diff --git a/tests/e2e/actions.go b/tests/e2e/actions.go index 7f0bf37000..5a95e96357 100644 --- a/tests/e2e/actions.go +++ b/tests/e2e/actions.go @@ -97,19 +97,19 @@ func (tr Chain) sendTokens( `-o`, `json`, `-y`, ) - if verbose { - fmt.Println("sendTokens cmd:", cmd.String()) - } + fmt.Println("sendTokens cmd:", cmd.String()) bz, err := cmd.CombinedOutput() - if err != nil { - log.Fatal(err, "\n", string(bz)) - } - if action.ExpectErr { - if e2e.GetTxResponse(bz).Code == 0 { + // TODO(technicallyty): this might not be the right soln, but it seems to be working. In previous versions of + // sdk/comet, errors from CheckTx would be returned in a TxResponse, but now they're given in the error object. + // I am not sure if other types of errors are possible here - if we want to guard against specific ones or not. + if err == nil { log.Fatalf("`tx bank send` did not fail as expected: %v", string(bz)) } } else { + if err != nil { + log.Fatalf(`expected "tx bank send" to succeed, but failed: %s:%s`, err.Error(), string(bz)) + } // wait for inclusion in a block -> '--broadcast-mode block' is deprecated tr.waitForTx(action.Chain, bz, 30*time.Second) } @@ -1323,8 +1323,8 @@ func (tr Chain) addIbcConnectionHermes( for scanner.Scan() { out := scanner.Text() - if verbose { - fmt.Println("addIbcConnection: " + out) + if strings.Contains(out, "error after maximum retry of") { + log.Fatal("failed to add ibc connection with hermes: " + out) } if out == done { break diff --git a/tests/e2e/testlib/config.go b/tests/e2e/testlib/config.go index 11405c0472..a94d7d6dfe 100644 --- a/tests/e2e/testlib/config.go +++ b/tests/e2e/testlib/config.go @@ -20,7 +20,8 @@ var hermesTemplates = map[string]string{ grpc_addr = "%s" id = "%s" key_name = "%s" - max_gas = 20000000 + compat_mode = "0.38" + max_gas = 10000000 rpc_addr = "%s" rpc_timeout = "10s" store_prefix = "ibc" @@ -44,8 +45,9 @@ var hermesTemplates = map[string]string{ gas_multiplier = 1.1 grpc_addr = "%s" id = "%s" + compat_mode = "0.38" key_name = "%s" - max_gas = 20000000 + max_gas = 10000000 rpc_addr = "%s" rpc_timeout = "10s" store_prefix = "ibc" diff --git a/tests/e2e/testnet-scripts/fork-consumer.sh b/tests/e2e/testnet-scripts/fork-consumer.sh index db8199d192..876b7af2a3 100644 --- a/tests/e2e/testnet-scripts/fork-consumer.sh +++ b/tests/e2e/testnet-scripts/fork-consumer.sh @@ -56,6 +56,7 @@ ccv_consumer_chain = true account_prefix = "consumer" clock_drift = "5s" gas_multiplier = 1.1 +compat_mode = "0.38" grpc_addr = "tcp://$CONS_CHAIN_PREFIX.252:9091" key_name = "query" max_gas = 2000000 @@ -82,6 +83,7 @@ grpc_addr = "tcp://$PROV_CHAIN_PREFIX.4:9091" key_name = "query" max_gas = 2000000 rpc_addr = "http://$PROV_CHAIN_PREFIX.4:26658" +compat_mode = "0.38" rpc_timeout = "10s" store_prefix = "ibc" trusting_period = "2days" diff --git a/tests/integration/common.go b/tests/integration/common.go index ecb53b1cdf..e8ef5c06d7 100644 --- a/tests/integration/common.go +++ b/tests/integration/common.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + "github.com/cosmos/cosmos-sdk/crypto/keys" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" commitmenttypes "github.com/cosmos/ibc-go/v10/modules/core/23-commitment/types" @@ -14,13 +15,12 @@ import ( "cosmossdk.io/math" - cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/types" icstestingutils "github.com/cosmos/interchain-security/v7/testutil/ibc_testing" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -75,8 +75,8 @@ func (s *CCVTestSuite) getVal(ctx sdk.Context, valAddr sdk.ValAddress) stakingty func (s *CCVTestSuite) getValConsAddr(tmVal tmtypes.Validator) sdk.ConsAddress { val, err := tmVal.ToProto() s.Require().NoError(err) - pubkey, err := cryptocodec.FromCmtProtoPublicKey(val.GetPubKey()) - s.Require().Nil(err) + pubkey, err := keys.PubKeyFromCometTypeAndBytes(val.GetPubKeyType(), val.GetPubKeyBytes()) + s.Require().NoError(err) return sdk.GetConsAddress(pubkey) } diff --git a/tests/integration/double_vote.go b/tests/integration/double_vote.go index 534e046113..a31a0067db 100644 --- a/tests/integration/double_vote.go +++ b/tests/integration/double_vote.go @@ -6,8 +6,8 @@ import ( cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" - tmcrypto "github.com/cometbft/cometbft/crypto" - tmtypes "github.com/cometbft/cometbft/types" + tmcrypto "github.com/cometbft/cometbft/v2/crypto" + tmtypes "github.com/cometbft/cometbft/v2/types" testutil "github.com/cosmos/interchain-security/v7/testutil/crypto" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/tests/integration/expired_client.go b/tests/integration/expired_client.go index e41ae4176a..172ba4e3a3 100644 --- a/tests/integration/expired_client.go +++ b/tests/integration/expired_client.go @@ -13,7 +13,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" ) diff --git a/tests/integration/key_assignment.go b/tests/integration/key_assignment.go index 3b129efd3c..02d08167a6 100644 --- a/tests/integration/key_assignment.go +++ b/tests/integration/key_assignment.go @@ -6,8 +6,8 @@ import ( "github.com/cosmos/cosmos-sdk/testutil/mock" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmencoding "github.com/cometbft/cometbft/crypto/encoding" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + tmprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + tmencoding "github.com/cometbft/cometbft/v2/crypto/encoding" providerkeeper "github.com/cosmos/interchain-security/v7/x/ccv/provider/keeper" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/tests/integration/misbehaviour.go b/tests/integration/misbehaviour.go index 6f83d714f8..47314a8e3e 100644 --- a/tests/integration/misbehaviour.go +++ b/tests/integration/misbehaviour.go @@ -9,7 +9,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" testutil "github.com/cosmos/interchain-security/v7/testutil/crypto" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/tests/integration/normal_operations.go b/tests/integration/normal_operations.go index a3f36ecef0..c992bec94c 100644 --- a/tests/integration/normal_operations.go +++ b/tests/integration/normal_operations.go @@ -3,7 +3,7 @@ package integration import ( "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmproto "github.com/cometbft/cometbft/api/cometbft/types/v2" consumertypes "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" ccvtypes "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/tests/integration/setup.go b/tests/integration/setup.go index e667f36332..ae97cd012d 100644 --- a/tests/integration/setup.go +++ b/tests/integration/setup.go @@ -13,7 +13,7 @@ import ( store "cosmossdk.io/store/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" icstestingutils "github.com/cosmos/interchain-security/v7/testutil/ibc_testing" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -399,7 +399,7 @@ func newPacketSniffer() *packetSniffer { } } -func (ps *packetSniffer) ListenFinalizeBlock(ctx context.Context, req abci.RequestFinalizeBlock, res abci.ResponseFinalizeBlock) error { +func (ps *packetSniffer) ListenFinalizeBlock(ctx context.Context, req abci.FinalizeBlockRequest, res abci.FinalizeBlockResponse) error { packets := ParsePacketsFromEvents(res.GetEvents()) for _, packet := range packets { ps.packets[getSentPacketKey(packet.Sequence, packet.SourceChannel)] = packet @@ -413,7 +413,7 @@ func getSentPacketKey(sequence uint64, channelID string) string { return fmt.Sprintf("%s-%d", channelID, sequence) } -func (*packetSniffer) ListenCommit(ctx context.Context, res abci.ResponseCommit, cs []*store.StoreKVPair) error { +func (*packetSniffer) ListenCommit(ctx context.Context, res abci.CommitResponse, cs []*store.StoreKVPair) error { return nil } diff --git a/tests/integration/slashing.go b/tests/integration/slashing.go index 5ce1a6b5a5..268ba93854 100644 --- a/tests/integration/slashing.go +++ b/tests/integration/slashing.go @@ -3,6 +3,7 @@ package integration import ( "fmt" + "github.com/cosmos/cosmos-sdk/crypto/keys" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" @@ -15,9 +16,9 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/crypto/ed25519" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + "github.com/cometbft/cometbft/v2/crypto/ed25519" + tmtypes "github.com/cometbft/cometbft/v2/types" keepertestutil "github.com/cosmos/interchain-security/v7/testutil/keeper" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" @@ -58,7 +59,7 @@ func (s *CCVTestSuite) TestRelayAndApplyDowntimePacket() { tmVal := s.consumerChain.Vals.Validators[0] val, err := tmVal.ToProto() s.Require().NoError(err) - pubkey, err := cryptocodec.FromCmtProtoPublicKey(val.GetPubKey()) + pubkey, err := keys.PubKeyFromCometTypeAndBytes(val.PubKeyType, val.PubKeyBytes) s.Require().Nil(err) consumerConsAddr := providertypes.NewConsumerConsAddress(sdk.GetConsAddress(pubkey)) // map consumer consensus address to provider consensus address diff --git a/tests/integration/throttle.go b/tests/integration/throttle.go index fa8c0526ce..b3cfd91fe1 100644 --- a/tests/integration/throttle.go +++ b/tests/integration/throttle.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" icstestingutils "github.com/cosmos/interchain-security/v7/testutil/ibc_testing" "github.com/cosmos/interchain-security/v7/x/ccv/provider" diff --git a/tests/interchain/chainsuite/chain.go b/tests/interchain/chainsuite/chain.go index d9af36b741..4f68847a66 100644 --- a/tests/interchain/chainsuite/chain.go +++ b/tests/interchain/chainsuite/chain.go @@ -13,12 +13,12 @@ import ( "time" sdkmath "cosmossdk.io/math" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" - "github.com/strangelove-ventures/interchaintest/v8" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/cosmos/interchaintest/v10" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/ibc" "github.com/tidwall/gjson" "golang.org/x/sync/errgroup" ) diff --git a/tests/interchain/chainsuite/chain_spec_consumer.go b/tests/interchain/chainsuite/chain_spec_consumer.go index 5351d125ce..9ff5516f85 100644 --- a/tests/interchain/chainsuite/chain_spec_consumer.go +++ b/tests/interchain/chainsuite/chain_spec_consumer.go @@ -7,10 +7,10 @@ import ( "time" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" - "github.com/strangelove-ventures/interchaintest/v8" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/ibc" - "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/cosmos/interchaintest/v10" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/ibc" + "github.com/cosmos/interchaintest/v10/testutil" ) func GetConsumerSpec(ctx context.Context, providerChain *Chain, proposalMsg *providertypes.MsgCreateConsumer) *interchaintest.ChainSpec { diff --git a/tests/interchain/chainsuite/chain_spec_provider.go b/tests/interchain/chainsuite/chain_spec_provider.go index b6018e028c..9f5933e56e 100644 --- a/tests/interchain/chainsuite/chain_spec_provider.go +++ b/tests/interchain/chainsuite/chain_spec_provider.go @@ -1,10 +1,10 @@ package chainsuite import ( - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/ibc" - "github.com/strangelove-ventures/interchaintest/v8" + "github.com/cosmos/interchaintest/v10" ) func GetProviderSpec(validatorCount int, modifiedGenesis []cosmos.GenesisKV) *interchaintest.ChainSpec { diff --git a/tests/interchain/chainsuite/chain_spec_sovereign.go b/tests/interchain/chainsuite/chain_spec_sovereign.go index be396f6678..d3266f54a8 100644 --- a/tests/interchain/chainsuite/chain_spec_sovereign.go +++ b/tests/interchain/chainsuite/chain_spec_sovereign.go @@ -3,9 +3,9 @@ package chainsuite import ( "strconv" - "github.com/strangelove-ventures/interchaintest/v8" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/cosmos/interchaintest/v10" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/ibc" ) func GetSovereignSpec() *interchaintest.ChainSpec { diff --git a/tests/interchain/chainsuite/config.go b/tests/interchain/chainsuite/config.go index ea42399ec7..b51c83af9a 100644 --- a/tests/interchain/chainsuite/config.go +++ b/tests/interchain/chainsuite/config.go @@ -4,7 +4,7 @@ import ( "os" "time" - "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/cosmos/interchaintest/v10/testutil" sdkmath "cosmossdk.io/math" sdktypes "github.com/cosmos/cosmos-sdk/types" diff --git a/tests/interchain/chainsuite/context.go b/tests/interchain/chainsuite/context.go index 9980077be3..b34cbef35a 100644 --- a/tests/interchain/chainsuite/context.go +++ b/tests/interchain/chainsuite/context.go @@ -5,9 +5,9 @@ import ( "fmt" "time" + "github.com/cosmos/interchaintest/v10" + "github.com/cosmos/interchaintest/v10/testreporter" "github.com/docker/docker/client" - "github.com/strangelove-ventures/interchaintest/v8" - "github.com/strangelove-ventures/interchaintest/v8/testreporter" "github.com/stretchr/testify/suite" "go.uber.org/zap" "go.uber.org/zap/zaptest" diff --git a/tests/interchain/chainsuite/relayer.go b/tests/interchain/chainsuite/relayer.go index 6880f9e423..0c54397f23 100644 --- a/tests/interchain/chainsuite/relayer.go +++ b/tests/interchain/chainsuite/relayer.go @@ -7,9 +7,9 @@ import ( "sort" "time" - "github.com/strangelove-ventures/interchaintest/v8" - "github.com/strangelove-ventures/interchaintest/v8/ibc" - "github.com/strangelove-ventures/interchaintest/v8/relayer" + "github.com/cosmos/interchaintest/v10" + "github.com/cosmos/interchaintest/v10/ibc" + "github.com/cosmos/interchaintest/v10/relayer" "github.com/tidwall/gjson" ) diff --git a/tests/interchain/go.mod b/tests/interchain/go.mod index 870ae4f060..6564004a6d 100644 --- a/tests/interchain/go.mod +++ b/tests/interchain/go.mod @@ -1,25 +1,37 @@ module cosmos/interchain-security/tests/interchain -go 1.23.6 +go 1.24.3 + +toolchain go1.24.4 require ( - cosmossdk.io/math v1.5.2 - cosmossdk.io/x/upgrade v0.2.0-rc.2 - github.com/cometbft/cometbft v0.38.17 - github.com/cosmos/cosmos-sdk v0.53.0-rc.2 - github.com/cosmos/ibc-go/v10 v10.1.1 - github.com/cosmos/interchain-security/v7 v7.0.0-20250220171855-c39340d2cf4c + cosmossdk.io/math v1.5.4-0.20250604174653-810d15dd6d16 + github.com/cosmos/cosmos-sdk v0.54.0-alpha.0.0.20250610171936-b482ce4a740c + github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611193252-a9170dcac535 + github.com/cosmos/interchain-security/v7 v7.0.0-20250611213438-69983c82a4ff + github.com/cosmos/interchaintest/v10 v10.0.0-alpha.2.0.20250611214850-18ae5efdcf7a github.com/docker/docker v28.0.0+incompatible - github.com/strangelove-ventures/interchaintest/v8 v8.7.1 github.com/stretchr/testify v1.10.0 github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.12.0 + golang.org/x/sync v0.15.0 +) + +require ( + github.com/crate-crypto/go-eth-kzg v1.3.0 // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/dgraph-io/ristretto/v2 v2.1.0 // indirect + github.com/ethereum/c-kzg-4844/v2 v2.1.0 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect + github.com/lmittmann/tint v1.0.7 // indirect + github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect + github.com/zeebo/errs v1.4.0 // indirect ) require ( - cel.dev/expr v0.19.1 // indirect + cel.dev/expr v0.23.0 // indirect cloud.google.com/go v0.116.0 // indirect cloud.google.com/go/auth v0.14.1 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect @@ -27,86 +39,81 @@ require ( cloud.google.com/go/iam v1.2.2 // indirect cloud.google.com/go/monitoring v1.21.2 // indirect cloud.google.com/go/storage v1.49.0 // indirect - cosmossdk.io/api v0.9.0 // indirect - cosmossdk.io/collections v1.2.0 // indirect - cosmossdk.io/core v0.11.3 // indirect - cosmossdk.io/depinject v1.2.0-rc.1 // indirect - cosmossdk.io/errors v1.0.2 // indirect - cosmossdk.io/log v1.5.1 // indirect - cosmossdk.io/schema v1.0.0 // indirect - cosmossdk.io/store v1.1.2 // indirect - cosmossdk.io/x/evidence v0.2.0-rc.2 // indirect - cosmossdk.io/x/feegrant v0.2.0-rc.2 // indirect - cosmossdk.io/x/tx v0.14.0-rc.1 // indirect + cosmossdk.io/api v1.0.0-alpha.0.0.20250604174653-810d15dd6d16 // indirect + cosmossdk.io/collections v1.3.0 // indirect + cosmossdk.io/core v1.1.0-alpha.1.0.20250604174653-810d15dd6d16 // indirect + cosmossdk.io/depinject v1.2.1 // indirect + cosmossdk.io/errors v1.0.3-0.20250604174653-810d15dd6d16 // indirect + cosmossdk.io/log v1.6.1-0.20250604174653-810d15dd6d16 // indirect + cosmossdk.io/schema v1.1.0 // indirect + cosmossdk.io/store v1.10.0-rc.1.0.20250609200650-1521447c77da // indirect + cosmossdk.io/x/tx v1.2.0-alpha.0.0.20250604174653-810d15dd6d16 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/DataDog/datadog-go v4.8.3+incompatible // indirect - github.com/DataDog/zstd v1.5.6 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect + github.com/DataDog/zstd v1.5.7 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/avast/retry-go/v4 v4.5.1 // indirect - github.com/aws/aws-sdk-go v1.44.224 // indirect + github.com/aws/aws-sdk-go v1.49.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.2.0 // indirect github.com/bits-and-blooms/bitset v1.22.0 // indirect github.com/btcsuite/btcd v0.22.1 // indirect - github.com/bytedance/sonic v1.13.1 // indirect + github.com/bytedance/sonic v1.13.2 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect - github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 // indirect - github.com/cockroachdb/apd/v3 v3.2.1 // indirect - github.com/cockroachdb/errors v1.11.3 // indirect - github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a // indirect - github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v1.1.2 // 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.14.1 // indirect - github.com/consensys/bavard v0.1.22 // indirect - github.com/consensys/gnark-crypto v0.14.0 // indirect + github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect + github.com/cockroachdb/errors v1.12.0 // indirect + github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect + github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect + github.com/cockroachdb/pebble v1.1.5 // indirect + github.com/cockroachdb/redact v1.1.6 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb // indirect + github.com/cometbft/cometbft-db v1.0.4 // indirect + github.com/cometbft/cometbft/api v1.1.0-alpha.1 // indirect + github.com/cometbft/cometbft/v2 v2.0.0-main + github.com/consensys/bavard v0.1.27 // indirect + github.com/consensys/gnark-crypto v0.16.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-db v1.1.1 // indirect + github.com/cosmos/cosmos-db v1.1.3 // indirect github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/gogoproto v1.7.0 // indirect - github.com/cosmos/iavl v1.2.4 // indirect - github.com/cosmos/ibc-go/modules/capability v1.0.1 // indirect + github.com/cosmos/iavl v1.2.6 // indirect github.com/cosmos/ics23/go v0.11.0 // indirect github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect - github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect github.com/danieljoos/wincred v1.2.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/desertbit/timer v1.0.1 // indirect - github.com/dgraph-io/badger/v4 v4.2.0 // indirect - github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/dgraph-io/badger/v4 v4.6.0 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.7.0 // indirect - github.com/emicklei/dot v1.6.2 // indirect + github.com/emicklei/dot v1.8.0 // indirect github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect - github.com/ethereum/c-kzg-4844 v1.0.0 // indirect - github.com/ethereum/go-ethereum v1.15.5 // indirect + github.com/ethereum/go-ethereum v1.15.11 // indirect github.com/ethereum/go-verkle v0.2.2 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/getsentry/sentry-go v0.28.1 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/getsentry/sentry-go v0.33.0 // indirect github.com/go-kit/kit v0.13.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect @@ -117,17 +124,16 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.3 // indirect - github.com/golang/glog v1.2.4 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/golang/snappy v1.0.0 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/flatbuffers v24.3.25+incompatible // indirect + github.com/google/flatbuffers v25.2.10+incompatible // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/orderedcode v0.0.1 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect @@ -146,7 +152,7 @@ require ( github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/yamux v0.1.1 // indirect + github.com/hashicorp/yamux v0.1.2 // indirect github.com/hdevalence/ed25519consensus v0.2.0 // indirect github.com/holiman/uint256 v1.3.2 // indirect github.com/huandu/skiplist v1.2.1 // indirect @@ -162,7 +168,7 @@ require ( github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.9.2 // indirect + github.com/linxGnu/grocksdb v1.10.1 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -178,17 +184,17 @@ require ( github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.21.1 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.63.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_golang v1.22.0 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.64.0 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect @@ -199,7 +205,7 @@ require ( github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.12.0 // indirect - github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/cast v1.9.2 // indirect github.com/spf13/cobra v1.9.1 // indirect github.com/spf13/pflag v1.0.6 // indirect github.com/spf13/viper v1.20.1 // indirect @@ -217,37 +223,37 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.4.0-alpha.1 // indirect + go.etcd.io/bbolt v1.4.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/detectors/gcp v1.34.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.34.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.34.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.34.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.35.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect - go.uber.org/mock v0.5.0 // indirect + go.uber.org/mock v0.5.2 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/arch v0.15.0 // indirect - golang.org/x/crypto v0.36.0 // indirect - golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect + golang.org/x/arch v0.17.0 // indirect + golang.org/x/crypto v0.39.0 // indirect + golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect + golang.org/x/mod v0.25.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/text v0.26.0 // indirect golang.org/x/time v0.10.0 // indirect - golang.org/x/tools v0.31.0 // indirect + golang.org/x/tools v0.33.0 // indirect google.golang.org/api v0.222.0 // indirect google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect - google.golang.org/grpc v1.71.1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/grpc v1.73.0 // indirect google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect @@ -272,6 +278,9 @@ replace ( github.com/cosmos/interchain-security/v7 => ../../ github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 // Remove this when strangelove-ventures updates the interchain tests to support ibc-go v10 - github.com/strangelove-ventures/interchaintest/v8 => github.com/cosmos/interchaintest/v8 v8.8.2-0.20250224162529-535379c62c73 github.com/vedhavyas/go-subkey => github.com/strangelove-ventures/go-subkey v1.0.7 ) + +replace github.com/cometbft/cometbft/v2 => github.com/cometbft/cometbft/v2 v2.0.0-alpha.1 + +replace github.com/cometbft/cometbft/api => github.com/cometbft/cometbft/api v1.1.0-alpha.1 diff --git a/tests/interchain/go.sum b/tests/interchain/go.sum index 18875ecc24..6e4d8572b7 100644 --- a/tests/interchain/go.sum +++ b/tests/interchain/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4= -cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cel.dev/expr v0.23.0 h1:wUb94w6OYQS4uXraxo9U+wUAs9jT47Xvl4iPgAwM2ss= +cel.dev/expr v0.23.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -614,32 +614,26 @@ cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoIS cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= -cosmossdk.io/api v0.9.0 h1:QYs9APeSlDNGbsBOBFjp3jXgGd4hnEPnnku3+W3tT4Y= -cosmossdk.io/api v0.9.0/go.mod h1:pLkU/NSqYHWxyN7XftVt8iD7oldKJzqMZgzeiOmT2nk= -cosmossdk.io/collections v1.2.0 h1:IesfVG8G/+FYCMVMP01frS/Cw99Omk5vBh3cHbO01Gg= -cosmossdk.io/collections v1.2.0/go.mod h1:4NkMoYw6qRA8fnSH/yn1D/MOutr8qyQnwsO50Mz9ItU= -cosmossdk.io/core v0.11.3 h1:mei+MVDJOwIjIniaKelE3jPDqShCc/F4LkNNHh+4yfo= -cosmossdk.io/core v0.11.3/go.mod h1:9rL4RE1uDt5AJ4Tg55sYyHWXA16VmpHgbe0PbJc6N2Y= -cosmossdk.io/depinject v1.2.0-rc.1 h1:Q7qfs+j8MuFPpogx4ohiSXmFvw0Ns2wcBAYU8wIZRbg= -cosmossdk.io/depinject v1.2.0-rc.1/go.mod h1:SMffgggZXkCAbLbJ65pHELkB1Z6cpFbY4CNohGojAz4= -cosmossdk.io/errors v1.0.2 h1:wcYiJz08HThbWxd/L4jObeLaLySopyyuUFB5w4AGpCo= -cosmossdk.io/errors v1.0.2/go.mod h1:0rjgiHkftRYPj//3DrD6y8hcm40HcPv/dR4R/4efr0k= -cosmossdk.io/log v1.5.1 h1:wLwiYXmfrort/O+j6EkjF+HvbdrRQd+4cYCPKFSm+zM= -cosmossdk.io/log v1.5.1/go.mod h1:5cXXBvfBkR2/BcXmosdCSLXllvgSjphrrDVdfVRmBGM= -cosmossdk.io/math v1.5.2 h1:PIhyy1JzmgPA712ewaYRjs+Hhh0iNuM8+fH18WPSejU= -cosmossdk.io/math v1.5.2/go.mod h1:ToembcWID/wR94cucsMD+2gq6xrlBBOfWcGwC7ZdwZA= -cosmossdk.io/schema v1.0.0 h1:/diH4XJjpV1JQwuIozwr+A4uFuuwanFdnw2kKeiXwwQ= -cosmossdk.io/schema v1.0.0/go.mod h1:RDAhxIeNB4bYqAlF4NBJwRrgtnciMcyyg0DOKnhNZQQ= -cosmossdk.io/store v1.1.2 h1:3HOZG8+CuThREKv6cn3WSohAc6yccxO3hLzwK6rBC7o= -cosmossdk.io/store v1.1.2/go.mod h1:60rAGzTHevGm592kFhiUVkNC9w7gooSEn5iUBPzHQ6A= -cosmossdk.io/x/evidence v0.2.0-rc.2 h1:cLTCebjHTye/QoehLM8WJG4xZTFE6ET0WRY108aF/Yk= -cosmossdk.io/x/evidence v0.2.0-rc.2/go.mod h1:FH9n6k1oCDoVk4hSd1JOiVpKO3HrFsBAL6kzfrVqagc= -cosmossdk.io/x/feegrant v0.2.0-rc.2 h1:yA7a+wF0ax0p5d0L19KYAwaLBLawtc5woZgF0R2zzcA= -cosmossdk.io/x/feegrant v0.2.0-rc.2/go.mod h1:Z1daRnKKiqdJqwc5+Iq8jrI2tJn2c0IKT3PwPmGpPdY= -cosmossdk.io/x/tx v0.14.0-rc.1 h1:EEYTknUALt7PEK7b3Q8RVDQ2vDA5A+DGFlEvVcUWjqA= -cosmossdk.io/x/tx v0.14.0-rc.1/go.mod h1:MKYHaI9c1PVM3Qns4c/7PfdbO4OaGvtaP9BmAbv8APo= -cosmossdk.io/x/upgrade v0.2.0-rc.2 h1:JYxl0qAEaIPG/bYfuNkJVd9blAgr2fPaCxquf1S6AXI= -cosmossdk.io/x/upgrade v0.2.0-rc.2/go.mod h1:Rq6Rl6Z9m4SNbnMutNZs+p/n9SF6Ku1FwTrnoWMHxM8= +cosmossdk.io/api v1.0.0-alpha.0.0.20250604174653-810d15dd6d16 h1:1SCEjCYrFvDXjwXFsyLrcxtlGdiCRBkquT/pdojpVRU= +cosmossdk.io/api v1.0.0-alpha.0.0.20250604174653-810d15dd6d16/go.mod h1:8YOT+XjVFb9eZJk62YqjFILOm8MlLhbnkC9/jxIYri8= +cosmossdk.io/collections v1.3.0 h1:RUY23xXBy/bu5oSHZ5y+mkJRyA4ZboKDO4Yvx4+g2uc= +cosmossdk.io/collections v1.3.0/go.mod h1:cqVpBMDGEYhuNmNSXIOmqpnQ7Eav43hpJIetzLuEkns= +cosmossdk.io/core v1.1.0-alpha.1.0.20250604174653-810d15dd6d16 h1:31g2+fzwP8d3MN8fwUeISlB1BzZjvjM2BtkvBsNQbSU= +cosmossdk.io/core v1.1.0-alpha.1.0.20250604174653-810d15dd6d16/go.mod h1:khCddkNZORH+yooiug3m0DWRacoBfqQOYBXs0DcoX+E= +cosmossdk.io/depinject v1.2.1 h1:eD6FxkIjlVaNZT+dXTQuwQTKZrFZ4UrfCq1RKgzyhMw= +cosmossdk.io/depinject v1.2.1/go.mod h1:lqQEycz0H2JXqvOgVwTsjEdMI0plswI7p6KX+MVqFOM= +cosmossdk.io/errors v1.0.3-0.20250604174653-810d15dd6d16 h1:4W9JA+neVf0rmkUBbq2ZNe59FBkDpuWeWtj+zU6t+3o= +cosmossdk.io/errors v1.0.3-0.20250604174653-810d15dd6d16/go.mod h1:JO+8ZRK9iZO/HXaxlFVmkuDa+Nr0nEynFC3aW6VI6mI= +cosmossdk.io/log v1.6.1-0.20250604174653-810d15dd6d16 h1:CJ5o9q/CWYTaWKhBLNsHJxXgJX7ocnKnl+5reLi4WK4= +cosmossdk.io/log v1.6.1-0.20250604174653-810d15dd6d16/go.mod h1:ufFlbOhCjTbifqc1ZpCO3Tom+7avB125JAcmwjFKHCI= +cosmossdk.io/math v1.5.4-0.20250604174653-810d15dd6d16 h1:Nzz0Ez0z6lddgvn/bqkfuOmY/SRVqlCoO25xsVRNVZI= +cosmossdk.io/math v1.5.4-0.20250604174653-810d15dd6d16/go.mod h1:uqcZv7vexnhMFJF+6zh9EWdm/+Ylyln34IvPnBauPCQ= +cosmossdk.io/schema v1.1.0 h1:mmpuz3dzouCoyjjcMcA/xHBEmMChN+EHh8EHxHRHhzE= +cosmossdk.io/schema v1.1.0/go.mod h1:Gb7pqO+tpR+jLW5qDcNOSv0KtppYs7881kfzakguhhI= +cosmossdk.io/store v1.10.0-rc.1.0.20250609200650-1521447c77da h1:osbgMTzJOGEJdwJCkNTgPHE32wx+TBk6xbD7NoxC4sw= +cosmossdk.io/store v1.10.0-rc.1.0.20250609200650-1521447c77da/go.mod h1:ekEjYEq7zBHpKBbFRMZUQVY7/kUDPx0SD0gnDQpbFi0= +cosmossdk.io/x/tx v1.2.0-alpha.0.0.20250604174653-810d15dd6d16 h1:kCG3DmQEBHJuAfJ2PTDQpj+igPWPwwjOWREX45uwsIs= +cosmossdk.io/x/tx v1.2.0-alpha.0.0.20250604174653-810d15dd6d16/go.mod h1:C3OqJcbX4/IuTYMSGnG8eTEMySIrQEC3Bwgipqbwt1Y= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= @@ -660,10 +654,10 @@ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1: github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bpDIRRV4/gUtIBjh8Q= github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY= -github.com/DataDog/zstd v1.5.6/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= +github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 h1:ErKg/3iS1AKcTkf3yixlZ54f9U1rljCkQyEXWUnIUxc= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0/go.mod h1:yAZHSGnqScoU556rBOVkwLze6WP5N+U11RHuWaGVxwY= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1 h1:UQ0AhxogsIRZDkElkblfnwjc3IaltCm2HUMvezQaL7s= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.48.1 h1:oTX4vsorBZo/Zdum6OKPA4o7544hm6smoRv1QjpTwGo= @@ -705,6 +699,7 @@ github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= @@ -714,8 +709,8 @@ github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3 github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.224 h1:09CiaaF35nRmxrzWZ2uRq5v6Ghg/d2RiPjZnSgtt+RQ= -github.com/aws/aws-sdk-go v1.44.224/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= +github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -743,8 +738,8 @@ github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce h1:YtWJF7RHm2pY github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw= github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c= -github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g= -github.com/bytedance/sonic v1.13.1/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= +github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= @@ -793,52 +788,54 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 h1:boJj011Hh+874zpIySeApCX4GeOjPl9qhRF3QuIZq+Q= -github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k= +github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/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/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= -github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877 h1:1MLK4YpFtIEo3ZtMA5C795Wtv5VuUnrXX7mQG+aHg6o= github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= -github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= -github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a h1:f52TdbU4D5nozMAhO9TvTJ2ZMCXtN4VIAmfrrZ0JXQ4= -github.com/cockroachdb/fifo v0.0.0-20240616162244-4768e80dfb9a/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA= -github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= -github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= -github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -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/cockroachdb/errors v1.12.0 h1:d7oCs6vuIMUQRVbi6jWWWEJZahLCfJpnJSVobd1/sUo= +github.com/cockroachdb/errors v1.12.0/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 h1:pU88SPhIFid6/k0egdR5V6eALQYq2qbSmukrkgIh/0A= +github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILMqgNeV5jiqR4j+sTuvQNHdf2chuKj1M5k= +github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= +github.com/cockroachdb/pebble v1.1.5 h1:5AAWCBWbat0uE0blr8qzufZP5tBjkRyy/jWe1QWLnvw= +github.com/cockroachdb/pebble v1.1.5/go.mod h1:17wO9el1YEigxkP/YtV8NtCivQDgoCyBg5c4VR/eOWo= +github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= +github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb h1:3bCgBvB8PbJVMX1ouCcSIxvsqKPYM7gs72o0zC76n9g= +github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb/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 v0.38.17 h1:FkrQNbAjiFqXydeAO81FUzriL4Bz0abYxN/eOHrQGOk= -github.com/cometbft/cometbft v0.38.17/go.mod h1:5l0SkgeLRXi6bBfQuevXjKqML1jjfJJlvI1Ulp02/o4= -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/consensys/bavard v0.1.22 h1:Uw2CGvbXSZWhqK59X0VG/zOjpTFuOMcPLStrp1ihI0A= -github.com/consensys/bavard v0.1.22/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= -github.com/consensys/gnark-crypto v0.14.0 h1:DDBdl4HaBtdQsq/wfMwJvZNE80sHidrK3Nfrefatm0E= -github.com/consensys/gnark-crypto v0.14.0/go.mod h1:CU4UijNPsHawiVGNxe9co07FkzCeWHHrb1li/n1XoU0= +github.com/cometbft/cometbft-db v1.0.4 h1:cezb8yx/ZWcF124wqUtAFjAuDksS1y1yXedvtprUFxs= +github.com/cometbft/cometbft-db v1.0.4/go.mod h1:M+BtHAGU2XLrpUxo3Nn1nOCcnVCiLM9yx5OuT0u5SCA= +github.com/cometbft/cometbft/api v1.1.0-alpha.1 h1:QTHyLVEoFc2kh3uRwHb3HLfGXJ8kxrIaPPGtt7synGY= +github.com/cometbft/cometbft/api v1.1.0-alpha.1/go.mod h1:Ivh6nSCTJPQOyfQo8dgnyu/T88it092sEqSrZSmTQN8= +github.com/cometbft/cometbft/v2 v2.0.0-alpha.1 h1:9dcfa578PqWGoUxFKB/yfZW5ovVcl4nj/wtqf4h1bwo= +github.com/cometbft/cometbft/v2 v2.0.0-alpha.1/go.mod h1:/ze08eO171CqUqTqAE7FW7ydUJIVkgp6e2svpYvIR3c= +github.com/consensys/bavard v0.1.27 h1:j6hKUrGAy/H+gpNrpLU3I26n1yc+VMGmd6ID5+gAhOs= +github.com/consensys/bavard v0.1.27/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= +github.com/consensys/gnark-crypto v0.16.0 h1:8Dl4eYmUWK9WmlP1Bj6je688gBRJCJbT8Mw4KoTAawo= +github.com/consensys/gnark-crypto v0.16.0/go.mod h1:Ke3j06ndtPTVvo++PhGNgvm+lgpLvzbcE2MqljY7diU= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-db v1.1.1 h1:FezFSU37AlBC8S98NlSagL76oqBRWq/prTPvFcEJNCM= -github.com/cosmos/cosmos-db v1.1.1/go.mod h1:AghjcIPqdhSLP/2Z0yha5xPH3nLnskz81pBx3tcVSAw= +github.com/cosmos/cosmos-db v1.1.3 h1:7QNT77+vkefostcKkhrzDK9uoIEryzFrU9eoMeaQOPY= +github.com/cosmos/cosmos-db v1.1.3/go.mod h1:kN+wGsnwUJZYn8Sy5Q2O0vCYA99MJllkKASbs6Unb9U= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.53.0-rc.2 h1:KdQRIp6z/hQK9VppPU1exuXobLLwhrrRIrAOlzzaIf0= -github.com/cosmos/cosmos-sdk v0.53.0-rc.2/go.mod h1:GCGPg/EJ9FCygDZ8yHxuq3aM577FC706LpXwl2LbXKQ= +github.com/cosmos/cosmos-sdk v0.54.0-alpha.0.0.20250610171936-b482ce4a740c h1:wv9GZCmknnW3zWuzBrLL34wdPIqkvnoItSsL3+Fx6XU= +github.com/cosmos/cosmos-sdk v0.54.0-alpha.0.0.20250610171936-b482ce4a740c/go.mod h1:yGsBFBqThQ+1bpCLPY1uZNsJj0sVJ+nYVTNctovvkcM= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= @@ -846,21 +843,23 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= -github.com/cosmos/iavl v1.2.4 h1:IHUrG8dkyueKEY72y92jajrizbkZKPZbMmG14QzsEkw= -github.com/cosmos/iavl v1.2.4/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= -github.com/cosmos/ibc-go/modules/capability v1.0.1 h1:ibwhrpJ3SftEEZRxCRkH0fQZ9svjthrX2+oXdZvzgGI= -github.com/cosmos/ibc-go/modules/capability v1.0.1/go.mod h1:rquyOV262nGJplkumH+/LeYs04P3eV8oB7ZM4Ygqk4E= -github.com/cosmos/ibc-go/v10 v10.1.1 h1:Mtl0Ydr9dVdOrPqmxCAG49RmX2/VDYeKYdwv3G2y0g8= -github.com/cosmos/ibc-go/v10 v10.1.1/go.mod h1:0pJCkgEYRMygqkvUcwy6Kuf5wPfIsObRoxFU2DJEil4= +github.com/cosmos/iavl v1.2.6 h1:Hs3LndJbkIB+rEvToKJFXZvKo6Vy0Ex1SJ54hhtioIs= +github.com/cosmos/iavl v1.2.6/go.mod h1:GiM43q0pB+uG53mLxLDzimxM9l/5N9UuSY3/D0huuVw= +github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611193252-a9170dcac535 h1:BGMmRAs5ynvKw8ye0tREmYGk50WABrdlIWAnbosCtP0= +github.com/cosmos/ibc-go/v10 v10.0.0-beta.0.0.20250611193252-a9170dcac535/go.mod h1:F2wSvKtYu5GbYHZd+sZw3PWtOeFZUSITfmaDdjS5xT0= 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/interchaintest/v8 v8.8.2-0.20250224162529-535379c62c73 h1:cIWTHr2fXdqNrVaFHz92g28SeYKDkF1PN6/Tm+kZMdQ= -github.com/cosmos/interchaintest/v8 v8.8.2-0.20250224162529-535379c62c73/go.mod h1:KNWCIEW8CxiqoDEXJTXcAfd83+NOx7B4H4RuFsj+yDc= +github.com/cosmos/interchaintest/v10 v10.0.0-alpha.2.0.20250611214850-18ae5efdcf7a h1:TDyjrctxrHNpDdPuR2Z28HTtdWSLu2VNwREH5Wt96uY= +github.com/cosmos/interchaintest/v10 v10.0.0-alpha.2.0.20250611214850-18ae5efdcf7a/go.mod h1:VN/tn0xwDz4p8gaxxHCoLNieVOJu4dZLAotixFB6tK0= github.com/cosmos/ledger-cosmos-go v0.14.0 h1:WfCHricT3rPbkPSVKRH+L4fQGKYHuGOK9Edpel8TYpE= github.com/cosmos/ledger-cosmos-go v0.14.0/go.mod h1:E07xCWSBl3mTGofZ2QnL4cIUzMbbGVyik84QYKbX3RA= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/crate-crypto/go-eth-kzg v1.3.0 h1:05GrhASN9kDAidaFJOda6A4BEvgvuXbazXg/0E3OOdI= +github.com/crate-crypto/go-eth-kzg v1.3.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= @@ -886,10 +885,13 @@ github.com/desertbit/timer v1.0.1 h1:yRpYNn5Vaaj6QXecdLMPMJsW81JLiI1eokUft5nBmeo github.com/desertbit/timer v1.0.1/go.mod h1:htRrYeY5V/t4iu1xCJ5XsQvp4xve8QulXXctAzxqcwE= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= -github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= -github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= +github.com/dgraph-io/badger/v4 v4.6.0 h1:acOwfOOZ4p1dPRnYzvkVm7rUk2Y21TgPVepCy5dJdFQ= +github.com/dgraph-io/badger/v4 v4.6.0/go.mod h1:KSJ5VTuZNC3Sd+YhvVjk2nYua9UZnnTr/SkXvdtiPgI= +github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= +github.com/dgraph-io/ristretto/v2 v2.1.0 h1:59LjpOJLNDULHh8MC4UaegN52lC4JnO2dITsie/Pa8I= +github.com/dgraph-io/ristretto/v2 v2.1.0/go.mod h1:uejeqfYXpUomfse0+lO+13ATz4TypQYLJZzBSAemuB4= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= @@ -913,8 +915,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A= -github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +github.com/emicklei/dot v1.8.0 h1:HnD60yAKFAevNeT+TPYr9pb8VB9bqdeSo0nzwIW6IOI= +github.com/emicklei/dot v1.8.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -939,16 +941,16 @@ github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0+ github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= -github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= -github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= -github.com/ethereum/go-ethereum v1.15.5 h1:Fo2TbBWC61lWVkFw9tsMoHCNX1ndpuaQBRJ8H6xLUPo= -github.com/ethereum/go-ethereum v1.15.5/go.mod h1:1LG2LnMOx2yPRHR/S+xuipXH29vPr6BIH6GElD8N/fo= +github.com/ethereum/c-kzg-4844/v2 v2.1.0 h1:gQropX9YFBhl3g4HYhwE70zq3IHFRgbbNPw0Shwzf5w= +github.com/ethereum/c-kzg-4844/v2 v2.1.0/go.mod h1:TC48kOKjJKPbN7C++qIgt0TJzZ70QznYR7Ob+WXl57E= +github.com/ethereum/go-ethereum v1.15.11 h1:JK73WKeu0WC0O1eyX+mdQAVHUV+UR1a9VB/domDngBU= +github.com/ethereum/go-ethereum v1.15.11/go.mod h1:mf8YiHIb0GR4x4TipcvBUPxJLw1mFdmxzoDi11sDRoI= github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8= github.com/ethereum/go-verkle v0.2.2/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk= 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.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -962,10 +964,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/getsentry/sentry-go v0.28.1 h1:zzaSm/vHmGllRM6Tpx1492r0YDzauArdBfkJRtY6P5k= -github.com/getsentry/sentry-go v0.28.1/go.mod h1:1fQZ+7l7eeJ3wYi82q5Hg8GqAPgefRq+FP/QhafYVgg= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/getsentry/sentry-go v0.33.0 h1:YWyDii0KGVov3xOaamOnF0mjOrqSjBqwv48UEzn7QFg= +github.com/getsentry/sentry-go v0.33.0/go.mod h1:C55omcY9ChRQIUcVcGcs+Zdy4ZpQGvNJ7JYHIoSWOtE= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= 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= @@ -979,6 +981,8 @@ github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmn github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= @@ -1038,8 +1042,9 @@ github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4er 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= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -1074,15 +1079,15 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 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/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= -github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= +github.com/golang/snappy v1.0.0/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.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/flatbuffers v24.3.25+incompatible h1:CX395cjN9Kke9mmalRoL3d81AtFUxJM+yDthflgJGkI= -github.com/google/flatbuffers v24.3.25+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= +github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -1131,8 +1136,8 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/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-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo= -github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +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/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= @@ -1147,8 +1152,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= -github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= +github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1237,12 +1242,13 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= -github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8= +github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns= github.com/hdevalence/ed25519consensus v0.2.0 h1:37ICyZqdyj0lAZ8P4D1d1id3HqbbG1N3iBb1Tb4rdcU= github.com/hdevalence/ed25519consensus v0.2.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= @@ -1259,6 +1265,8 @@ github.com/huandu/skiplist v1.2.1/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXM github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= +github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= @@ -1304,6 +1312,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= 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= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= @@ -1336,14 +1345,17 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.9.2 h1:O3mzvO0wuzQ9mtlHbDrShixyVjVbmuqTjFrzlf43wZ8= -github.com/linxGnu/grocksdb v1.9.2/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= +github.com/linxGnu/grocksdb v1.10.1 h1:YX6gUcKvSC3d0s9DaqgbU+CRkZHzlELgHu1Z/kmtslg= +github.com/linxGnu/grocksdb v1.10.1/go.mod h1:C3CNe9UYc9hlEM2pC82AqiGS3LRW537u9LFV4wIZuHk= +github.com/lmittmann/tint v1.0.7 h1:D/0OqWZ0YOGZ6AyC+5Y2kD8PBEzBk6rFHVSfOqCkF9Y= +github.com/lmittmann/tint v1.0.7/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= -github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= +github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -1394,8 +1406,8 @@ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqky github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -1445,13 +1457,13 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= 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= -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/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= 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= @@ -1469,10 +1481,11 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= 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 v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= -github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= 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= @@ -1515,8 +1528,8 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD 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.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= -github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1524,8 +1537,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= @@ -1533,8 +1546,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b 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.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= -github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/common v0.64.0 h1:pdZeA+g617P7oGv1CzdTzyeShxAGrTBsolKNOLQPGO4= +github.com/prometheus/common v0.64.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -1542,8 +1555,8 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx 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.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1567,6 +1580,7 @@ github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -1596,22 +1610,31 @@ github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= -github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= -github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.9.2 h1:SsGfm7M8QOFtEzumm7UZrZdLLquNdzFYfIbEXntcFbE= +github.com/spf13/cast v1.9.2/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.20.1 h1:ZMi+z/lvLyPSCoNtFCpqjy0S4kPbirhpTMwl8BkW9X4= github.com/spf13/viper v1.20.1/go.mod h1:P9Mdzt1zoHIG8m2eZQinpiBjo6kCmZSKBClNNqjJvu4= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -1668,6 +1691,7 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= @@ -1678,6 +1702,7 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1688,14 +1713,16 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM= +github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= 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= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.4.0-alpha.1 h1:3yrqQzbRRPFPdOMWS/QQIVxVnzSkAZQYeWlZFv1kbj4= -go.etcd.io/bbolt v1.4.0-alpha.1/go.mod h1:S/Z/Nm3iuOnyO1W4XuFfPci51Gj6F1Hv0z8hisyYYOw= +go.etcd.io/bbolt v1.4.0 h1:TU77id3TnN/zKr7CO/uk+fBCwF2jGcMuw2B/FMAzYIk= +go.etcd.io/bbolt v1.4.0/go.mod h1:AsD+OCi/qPN1giOX1aiLAha3o1U8rAz65bvN4j0sRuk= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1710,28 +1737,29 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= -go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0 h1:bGvFt68+KTiAKFlacHW6AhA56GF2rS0bdD3aJYEnmzA= +go.opentelemetry.io/contrib/detectors/gcp v1.35.0/go.mod h1:qGWP8/+ILwMRIUf9uIVLloR1uo5ZYAslM4O6OqUi1DA= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.34.0 h1:BEj3SPM81McUZHYjRS5pEgNgnmzGJ5tRpU5krWnV8Bs= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.34.0/go.mod h1:9cKLGBDzI/F3NoHLQGm4ZrYdIHsvGt6ej6hUowxY0J4= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= -go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= @@ -1744,8 +1772,8 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= -go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= +go.uber.org/mock v0.5.2 h1:LbtPTcP8A5k9WPXj54PPPbjcI4Y6lhyOZXn+VS7wNko= +go.uber.org/mock v0.5.2/go.mod h1:wLlUxC2vVTPTaE3UD51E0BGOAElKrILxhVSDYQLld5o= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -1757,10 +1785,11 @@ 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/arch v0.15.0 h1:QtOrQd0bTUnhNVNndMpLHNWrDmYzZ2KDqSrEymqInZw= -golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE= +golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= +golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= 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-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -1776,8 +1805,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1794,8 +1823,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= -golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1841,8 +1870,8 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= 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= @@ -1905,7 +1934,6 @@ 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-20221012135044-0b7e1fb9d458/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.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= @@ -1918,8 +1946,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= 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= @@ -1949,8 +1977,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= 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= @@ -1971,8 +1999,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1981,6 +2009,7 @@ 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-20181205085412-a5c9d58dba9a/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= @@ -1989,6 +2018,7 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2086,12 +2116,11 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.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.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= @@ -2103,8 +2132,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= 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= @@ -2125,8 +2154,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2208,8 +2237,8 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= -golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2434,10 +2463,10 @@ google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOl google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463 h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM= -google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463/go.mod h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a h1:SGktgSolFCo75dnHJF2yMvnns6jCmHFJ0vE4Vn2JKvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a/go.mod h1:a77HrdMjoeKbnd2jmgcWdaS++ZLZAEq3orIOAEIKiVw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= 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= @@ -2485,8 +2514,8 @@ google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5v google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -google.golang.org/grpc v1.71.1 h1:ffsFWr7ygTUscGPI0KKK6TLrGz0476KUvvsbqWK0rPI= -google.golang.org/grpc v1.71.1/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= +google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= +google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= 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= diff --git a/tests/interchain/provider_consumers_suite.go b/tests/interchain/provider_consumers_suite.go index a88648a71f..fb042ef70f 100644 --- a/tests/interchain/provider_consumers_suite.go +++ b/tests/interchain/provider_consumers_suite.go @@ -9,8 +9,8 @@ import ( sdkmath "cosmossdk.io/math" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/ibc" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/ibc" "github.com/stretchr/testify/suite" ) diff --git a/tests/interchain/provider_consumers_test.go b/tests/interchain/provider_consumers_test.go index 3d7e39227c..588da797d0 100644 --- a/tests/interchain/provider_consumers_test.go +++ b/tests/interchain/provider_consumers_test.go @@ -11,17 +11,17 @@ import ( ccvtypes "github.com/cosmos/interchain-security/v7/x/ccv/types" sdkmath "cosmossdk.io/math" - upgradetypes "cosmossdk.io/x/upgrade/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" - "github.com/strangelove-ventures/interchaintest/v8" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/ibc" - "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/cosmos/interchaintest/v10" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/ibc" + "github.com/cosmos/interchaintest/v10/testutil" "github.com/stretchr/testify/suite" "github.com/tidwall/sjson" "golang.org/x/sync/errgroup" diff --git a/tests/interchain/provider_multi_val_test.go b/tests/interchain/provider_multi_val_test.go index 532aadabf4..295e12b96e 100644 --- a/tests/interchain/provider_multi_val_test.go +++ b/tests/interchain/provider_multi_val_test.go @@ -5,7 +5,7 @@ import ( "time" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" - "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/cosmos/interchaintest/v10/testutil" "github.com/stretchr/testify/suite" ) diff --git a/tests/interchain/provider_single_val_test.go b/tests/interchain/provider_single_val_test.go index 29a5a6a6e4..0e3a32f89c 100644 --- a/tests/interchain/provider_single_val_test.go +++ b/tests/interchain/provider_single_val_test.go @@ -9,8 +9,8 @@ import ( govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" - "github.com/strangelove-ventures/interchaintest/v8/testutil" + "github.com/cosmos/interchaintest/v10/chain/cosmos" + "github.com/cosmos/interchaintest/v10/testutil" "github.com/stretchr/testify/suite" ) diff --git a/tests/interchain/provider_suite.go b/tests/interchain/provider_suite.go index b6e6ec25d3..d6bc683539 100644 --- a/tests/interchain/provider_suite.go +++ b/tests/interchain/provider_suite.go @@ -6,7 +6,7 @@ import ( "cosmos/interchain-security/tests/interchain/chainsuite" - "github.com/strangelove-ventures/interchaintest/v8/chain/cosmos" + "github.com/cosmos/interchaintest/v10/chain/cosmos" "github.com/stretchr/testify/suite" ) diff --git a/tests/mbt/driver/core.go b/tests/mbt/driver/core.go index eb6e36d53d..cbc422b2ff 100644 --- a/tests/mbt/driver/core.go +++ b/tests/mbt/driver/core.go @@ -19,9 +19,9 @@ import ( stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abcitypes "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/proto/tendermint/crypto" - cmttypes "github.com/cometbft/cometbft/types" + crypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + abcitypes "github.com/cometbft/cometbft/v2/abci/types" + cmttypes "github.com/cometbft/cometbft/v2/types" appConsumer "github.com/cosmos/interchain-security/v7/app/consumer" appProvider "github.com/cosmos/interchain-security/v7/app/provider" diff --git a/tests/mbt/driver/mbt_test.go b/tests/mbt/driver/mbt_test.go index b5ae7eb51c..8d3e41092c 100644 --- a/tests/mbt/driver/mbt_test.go +++ b/tests/mbt/driver/mbt_test.go @@ -20,8 +20,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - tmencoding "github.com/cometbft/cometbft/crypto/encoding" - cmttypes "github.com/cometbft/cometbft/types" + tmencoding "github.com/cometbft/cometbft/v2/crypto/encoding" + cmttypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/testutil/integration" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/tests/mbt/driver/setup.go b/tests/mbt/driver/setup.go index 36c6c735f2..90f79aab61 100644 --- a/tests/mbt/driver/setup.go +++ b/tests/mbt/driver/setup.go @@ -7,6 +7,7 @@ import ( "testing" "time" + "github.com/cometbft/cometbft/v2/crypto/encoding" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" commitmenttypes "github.com/cosmos/ibc-go/v10/modules/core/23-commitment/types" @@ -26,9 +27,9 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abcitypes "github.com/cometbft/cometbft/abci/types" - cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" - cmttypes "github.com/cometbft/cometbft/types" + cmtproto "github.com/cometbft/cometbft/api/cometbft/types/v2" + abcitypes "github.com/cometbft/cometbft/v2/abci/types" + cmttypes "github.com/cometbft/cometbft/v2/types" icstestingutils "github.com/cosmos/interchain-security/v7/testutil/ibc_testing" "github.com/cosmos/interchain-security/v7/testutil/integration" @@ -191,8 +192,9 @@ func getAppBytesAndSenders( // add initial validator powers so consumer InitGenesis runs correctly pub, _ := val.ToProto() initValPowers = append(initValPowers, abcitypes.ValidatorUpdate{ - Power: tokens.Int64(), - PubKey: pub.PubKey, + Power: tokens.Int64(), + PubKeyBytes: pub.PubKeyBytes, + PubKeyType: pub.PubKeyType, }) } @@ -264,7 +266,7 @@ func newChain( protoConsParams := CONSENSUS_PARAMS.ToProto() app.InitChain( - &abcitypes.RequestInitChain{ + &abcitypes.InitChainRequest{ ChainId: chainID, Validators: cmttypes.TM2PB.ValidatorUpdates(validators), ConsensusParams: &protoConsParams, @@ -275,7 +277,7 @@ func newChain( app.Commit() app.FinalizeBlock( - &abcitypes.RequestFinalizeBlock{ + &abcitypes.FinalizeBlockRequest{ Hash: app.LastCommitID().Hash, Height: app.LastBlockHeight() + 1, NextValidatorsHash: validators.Hash(), @@ -360,8 +362,15 @@ func (s *Driver) ConfigureNewPath(consumerChain, providerChain *ibctesting.TestC // set up the current consumer validators by utilizing the initial validator set for _, val := range consumerGenesisForProvider.Provider.InitialValSet { - pubKey := val.PubKey - consAddr, err := ccvtypes.TMCryptoPublicKeyToConsAddr(pubKey) + pubKey, err := encoding.PubKeyFromTypeAndBytes(val.PubKeyType, val.PubKeyBytes) + if err != nil { + continue + } + protoPK, err := encoding.PubKeyToProto(pubKey) + if err != nil { + continue + } + consAddr, err := ccvtypes.TMCryptoPublicKeyToConsAddr(protoPK) if err != nil { continue } @@ -400,8 +409,8 @@ func (s *Driver) ConfigureNewPath(consumerChain, providerChain *ibctesting.TestC consumerEndPoint.ClientID = clientID // Handshake - s.coordinator.CreateConnections(path) - s.coordinator.CreateChannels(path) + path.CreateConnections() + path.CreateChannels() // Usually the consumer sets the channel ID when it receives a first VSC packet // to the provider. For testing purposes, we can set it here. This is because diff --git a/testutil/crypto/crypto.go b/testutil/crypto/crypto.go index d472a4a461..82b0190c4b 100644 --- a/testutil/crypto/crypto.go +++ b/testutil/crypto/crypto.go @@ -11,9 +11,9 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" sdkstakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmcrypto "github.com/cometbft/cometbft/crypto" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" - tmtypes "github.com/cometbft/cometbft/types" + tmprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + tmcrypto "github.com/cometbft/cometbft/v2/crypto" + tmtypes "github.com/cometbft/cometbft/v2/types" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ) diff --git a/testutil/crypto/evidence.go b/testutil/crypto/evidence.go index 1b92bf6a9d..fb84a664f1 100644 --- a/testutil/crypto/evidence.go +++ b/testutil/crypto/evidence.go @@ -6,10 +6,10 @@ import ( ibctmtypes "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint" - "github.com/cometbft/cometbft/crypto/tmhash" - "github.com/cometbft/cometbft/libs/bytes" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - tmtypes "github.com/cometbft/cometbft/types" + tmproto "github.com/cometbft/cometbft/api/cometbft/types/v2" + "github.com/cometbft/cometbft/v2/crypto/tmhash" + "github.com/cometbft/cometbft/v2/libs/bytes" + tmtypes "github.com/cometbft/cometbft/v2/types" ) // utility function duplicated from CometBFT @@ -59,7 +59,7 @@ func MakeAndSignVote( } v := vote.ToProto() - err = signer.SignVote(chainID, v) + err = signer.SignVote(chainID, v, true) if err != nil { panic(err) } @@ -103,7 +103,7 @@ func MakeAndSignVoteWithForgedValAddress( // sign vote using the given private key v := vote.ToProto() - err = signer.SignVote(chainID, v) + err = signer.SignVote(chainID, v, true) if err != nil { panic(err) } diff --git a/testutil/ibc_testing/generic_setup.go b/testutil/ibc_testing/generic_setup.go index e196c2ab3f..a173d8de4d 100644 --- a/testutil/ibc_testing/generic_setup.go +++ b/testutil/ibc_testing/generic_setup.go @@ -4,6 +4,7 @@ import ( "fmt" "testing" + "github.com/cosmos/cosmos-sdk/crypto/keys" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" ibctesting "github.com/cosmos/ibc-go/v10/testing" "github.com/stretchr/testify/require" @@ -12,9 +13,9 @@ import ( "github.com/cosmos/cosmos-sdk/testutil/mock" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cometbft/cometbft/abci/types" - tmencoding "github.com/cometbft/cometbft/crypto/encoding" - tmtypes "github.com/cometbft/cometbft/types" + "github.com/cometbft/cometbft/v2/abci/types" + tmencoding "github.com/cometbft/cometbft/v2/crypto/encoding" + tmtypes "github.com/cometbft/cometbft/v2/types" testutil "github.com/cosmos/interchain-security/v7/testutil/integration" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -209,7 +210,8 @@ func AddConsumer[Tp testutil.ProviderApp, Tc testutil.ConsumerApp]( var valz []*tmtypes.Validator for _, update := range consumerGenesisState.Provider.InitialValSet { // tmPubKey update.PubKey - tmPubKey, err := tmencoding.PubKeyFromProto(update.PubKey) + tmPubKey, err := keys.PubKeyFromCometTypeAndBytes(update.PubKeyType, update.PubKeyBytes) + require.NoError(s.T(), err) s.Require().NoError(err, "failed to convert tendermint pubkey") valz = append(valz, &tmtypes.Validator{ PubKey: tmPubKey, diff --git a/testutil/ibc_testing/specific_setup.go b/testutil/ibc_testing/specific_setup.go index 4cc875be84..f2de313eab 100644 --- a/testutil/ibc_testing/specific_setup.go +++ b/testutil/ibc_testing/specific_setup.go @@ -16,7 +16,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/v2/abci/types" appConsumer "github.com/cosmos/interchain-security/v7/app/consumer" appConsumerDemocracy "github.com/cosmos/interchain-security/v7/app/consumer-democracy" diff --git a/testutil/integration/interfaces.go b/testutil/integration/interfaces.go index e0d0496ace..807076a0e4 100644 --- a/testutil/integration/interfaces.go +++ b/testutil/integration/interfaces.go @@ -8,7 +8,7 @@ import ( "cosmossdk.io/core/comet" "cosmossdk.io/math" - evidencekeeper "cosmossdk.io/x/evidence/keeper" + evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -22,7 +22,7 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" consumerkeeper "github.com/cosmos/interchain-security/v7/x/ccv/consumer/keeper" providerkeeper "github.com/cosmos/interchain-security/v7/x/ccv/provider/keeper" diff --git a/testutil/integration/validators.go b/testutil/integration/validators.go index c317c2cf22..0c32f4a2de 100644 --- a/testutil/integration/validators.go +++ b/testutil/integration/validators.go @@ -1,9 +1,8 @@ package integration import ( - "github.com/cometbft/cometbft/abci/types" - tmencoding "github.com/cometbft/cometbft/crypto/encoding" - tmtypes "github.com/cometbft/cometbft/types" + "github.com/cometbft/cometbft/v2/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/types" ) // CreateValidators creates a set of validators for testing purposes @@ -41,10 +40,10 @@ func CreateValidators(n int, chainId string) ( func ToValidatorUpdates(valSet *tmtypes.ValidatorSet) (valUpdates []types.ValidatorUpdate, err error) { for _, val := range valSet.Validators { - protoPubKey, err := tmencoding.PubKeyToProto(val.PubKey) valUpdates = append(valUpdates, types.ValidatorUpdate{ - PubKey: protoPubKey, - Power: val.VotingPower, + PubKeyBytes: val.PubKey.Bytes(), + PubKeyType: val.PubKey.Type(), + Power: val.VotingPower, }) if err != nil { return nil, err diff --git a/testutil/keeper/mocks.go b/testutil/keeper/mocks.go index a47b5899f3..d3923d26e5 100644 --- a/testutil/keeper/mocks.go +++ b/testutil/keeper/mocks.go @@ -12,7 +12,7 @@ import ( address "cosmossdk.io/core/address" math "cosmossdk.io/math" types "cosmossdk.io/store/types" - types0 "github.com/cometbft/cometbft/abci/types" + types0 "github.com/cometbft/cometbft/v2/abci/types" types1 "github.com/cosmos/cosmos-sdk/types" types2 "github.com/cosmos/cosmos-sdk/x/slashing/types" types3 "github.com/cosmos/cosmos-sdk/x/staking/types" diff --git a/testutil/keeper/unit_test_helpers.go b/testutil/keeper/unit_test_helpers.go index 122d6abe99..9d5a801978 100644 --- a/testutil/keeper/unit_test_helpers.go +++ b/testutil/keeper/unit_test_helpers.go @@ -30,8 +30,8 @@ import ( paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmproto "github.com/cometbft/cometbft/api/cometbft/types/v2" + abci "github.com/cometbft/cometbft/v2/abci/types" consumerkeeper "github.com/cosmos/interchain-security/v7/x/ccv/consumer/keeper" consumertypes "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" diff --git a/testutil/simibc/chain_util.go b/testutil/simibc/chain_util.go index b8137d0802..e64615f9ca 100644 --- a/testutil/simibc/chain_util.go +++ b/testutil/simibc/chain_util.go @@ -10,8 +10,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmproto "github.com/cometbft/cometbft/api/cometbft/types/v2" + abci "github.com/cometbft/cometbft/v2/abci/types" ) // FinalizeBlock calls app.FinalizeBlock and app.Commit. @@ -20,7 +20,7 @@ import ( // // NOTE: this method may be used independently of the rest of simibc. func FinalizeBlock(c *ibctesting.TestChain, dt time.Duration) (*ibctmtypes.Header, []channeltypes.Packet) { - res, err := c.App.FinalizeBlock(&abci.RequestFinalizeBlock{ + res, err := c.App.FinalizeBlock(&abci.FinalizeBlockRequest{ Height: c.ProposedHeader.Height, Time: c.ProposedHeader.GetTime(), NextValidatorsHash: c.NextVals.Hash(), diff --git a/testutil/simibc/relay_util.go b/testutil/simibc/relay_util.go index 0dc9d1b428..5ef9d5e248 100644 --- a/testutil/simibc/relay_util.go +++ b/testutil/simibc/relay_util.go @@ -12,7 +12,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" ) // UpdateReceiverClient DELIVERs a header to the receiving endpoint diff --git a/x/ccv/consumer/keeper/changeover.go b/x/ccv/consumer/keeper/changeover.go index 044266e64c..b16fefaffc 100644 --- a/x/ccv/consumer/keeper/changeover.go +++ b/x/ccv/consumer/keeper/changeover.go @@ -3,7 +3,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) // ChangeoverIsComplete returns whether the standalone to consumer changeover process is complete. @@ -36,7 +36,7 @@ func (k Keeper) ChangeoverToConsumer(ctx sdk.Context) (initialValUpdates []abci. // are given zero power, and the provider validators are given their full power. initialUpdatesFlag := make(map[string]bool) for _, val := range initialValUpdates { - initialUpdatesFlag[val.PubKey.String()] = true + initialUpdatesFlag[string(val.PubKeyBytes)] = true } standaloneValset, err := k.GetLastStandaloneValidators(ctx) @@ -45,7 +45,7 @@ func (k Keeper) ChangeoverToConsumer(ctx sdk.Context) (initialValUpdates []abci. } for _, val := range standaloneValset { zeroPowerUpdate := val.ABCIValidatorUpdateZero() - if !initialUpdatesFlag[zeroPowerUpdate.PubKey.String()] { + if !initialUpdatesFlag[string(zeroPowerUpdate.PubKeyBytes)] { initialValUpdates = append(initialValUpdates, zeroPowerUpdate) } } diff --git a/x/ccv/consumer/keeper/changeover_test.go b/x/ccv/consumer/keeper/changeover_test.go index 87ab8c4a97..ff332a244c 100644 --- a/x/ccv/consumer/keeper/changeover_test.go +++ b/x/ccv/consumer/keeper/changeover_test.go @@ -3,12 +3,15 @@ package keeper_test import ( "testing" + crypto2 "github.com/cometbft/cometbft/v2/crypto" + "github.com/cometbft/cometbft/v2/crypto/encoding" + "github.com/cosmos/cosmos-sdk/crypto/keys" "github.com/stretchr/testify/require" sdkcryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" uthelpers "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -29,13 +32,19 @@ func TestChangeoverToConsumer(t *testing.T) { cIds[4].SDKStakingValidator(), } + pks := make([]crypto2.PubKey, 0, len(cIds)) + for _, ci := range cIds { + pk, err := encoding.PubKeyFromProto(ci.TMProtoCryptoPublicKey()) + require.NoError(t, err) + pks = append(pks, pk) + } // Instantiate 5 ics val updates for use in test initialValUpdates := []abci.ValidatorUpdate{ - {Power: 55, PubKey: cIds[5].TMProtoCryptoPublicKey()}, - {Power: 87324, PubKey: cIds[6].TMProtoCryptoPublicKey()}, - {Power: 2, PubKey: cIds[7].TMProtoCryptoPublicKey()}, - {Power: 42389479, PubKey: cIds[8].TMProtoCryptoPublicKey()}, - {Power: 9089080, PubKey: cIds[9].TMProtoCryptoPublicKey()}, + {Power: 55, PubKeyBytes: pks[5].Bytes(), PubKeyType: pks[5].Type()}, + {Power: 87324, PubKeyBytes: pks[6].Bytes(), PubKeyType: pks[6].Type()}, + {Power: 2, PubKeyBytes: pks[7].Bytes(), PubKeyType: pks[7].Type()}, + {Power: 42389479, PubKeyBytes: pks[8].Bytes(), PubKeyType: pks[8].Type()}, + {Power: 9089080, PubKeyBytes: pks[9].Bytes(), PubKeyType: pks[9].Type()}, } testCases := []struct { @@ -81,7 +90,7 @@ func TestChangeoverToConsumer(t *testing.T) { name: "validator is contained in both sov val set and initial val updates, using cIds[7]", lastSovVals: []stakingtypes.Validator{cIds[7].SDKStakingValidator()}, initialValUpdates: []abci.ValidatorUpdate{ - {Power: 55, PubKey: cIds[7].TMProtoCryptoPublicKey()}, + {Power: 55, PubKeyType: pks[7].Type(), PubKeyBytes: pks[7].Bytes()}, }, expectedReturnValUpdatesLen: 1, }, @@ -125,9 +134,10 @@ func TestChangeoverToConsumer(t *testing.T) { for _, ccVal := range ccVals { ccvValPubKey, err := ccVal.ConsPubKey() require.NoError(t, err) - tmProtoPubKey, err := sdkcryptocodec.ToCmtProtoPublicKey(ccvValPubKey) require.NoError(t, err) - if tmProtoPubKey.Equal(valUpdate.PubKey) { + valPk, err := keys.PubKeyFromCometTypeAndBytes(valUpdate.PubKeyType, valUpdate.PubKeyBytes) + require.NoError(t, err) + if ccvValPubKey.Equals(valPk) { found = true require.Equal(t, valUpdate.Power, ccVal.Power) } @@ -142,7 +152,16 @@ func TestChangeoverToConsumer(t *testing.T) { found := false // Check all initial val updates for a pubkey match for _, valUpdate := range tc.initialValUpdates { - if returnedValUpdate.PubKey.Equal(valUpdate.PubKey) { + returnedValPK, err := encoding.PubKeyFromTypeAndBytes(returnedValUpdate.PubKeyType, returnedValUpdate.PubKeyBytes) + require.NoError(t, err) + returnedValPkProto, err := encoding.PubKeyToProto(returnedValPK) + require.NoError(t, err) + + valUpdatePK, err := encoding.PubKeyFromTypeAndBytes(valUpdate.PubKeyType, valUpdate.PubKeyBytes) + require.NoError(t, err) + valUpdatePkProto, err := encoding.PubKeyToProto(valUpdatePK) + + if returnedValPkProto.Equal(valUpdatePkProto) { require.Equal(t, valUpdate.Power, returnedValUpdate.Power) found = true } @@ -153,7 +172,13 @@ func TestChangeoverToConsumer(t *testing.T) { require.NoError(t, err) tmProtoPubKey, err := sdkcryptocodec.ToCmtProtoPublicKey(ccvValPubKey) require.NoError(t, err) - if returnedValUpdate.PubKey.Equal(tmProtoPubKey) { + + pk, err := encoding.PubKeyFromTypeAndBytes(returnedValUpdate.PubKeyType, returnedValUpdate.PubKeyBytes) + require.NoError(t, err) + returnedValPk, err := encoding.PubKeyToProto(pk) + require.NoError(t, err) + + if returnedValPk.Equal(tmProtoPubKey) { // If val was already matched to a val update for new set, it's power won't be 0 if found { continue diff --git a/x/ccv/consumer/keeper/genesis.go b/x/ccv/consumer/keeper/genesis.go index 5bf3d0a3f9..bf9dd7a816 100644 --- a/x/ccv/consumer/keeper/genesis.go +++ b/x/ccv/consumer/keeper/genesis.go @@ -9,7 +9,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/consumer/keeper/genesis_test.go b/x/ccv/consumer/keeper/genesis_test.go index 20dee7f00e..a277e0fd45 100644 --- a/x/ccv/consumer/keeper/genesis_test.go +++ b/x/ccv/consumer/keeper/genesis_test.go @@ -15,8 +15,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -42,7 +42,11 @@ func TestInitGenesis(t *testing.T) { pubKey := cId.TMCryptoPubKey() validator := tmtypes.NewValidator(pubKey, 1) abciValidator := abci.Validator{Address: pubKey.Address(), Power: int64(1)} - valset := []abci.ValidatorUpdate{tmtypes.TM2PB.ValidatorUpdate(validator)} + valset := []abci.ValidatorUpdate{{ + Power: abciValidator.Power, + PubKeyBytes: pubKey.Bytes(), + PubKeyType: pubKey.Type(), + }} // create ibc client and last consensus states provConsState := ibctmtypes.NewConsensusState( @@ -228,7 +232,11 @@ func TestExportGenesis(t *testing.T) { require.NoError(t, err) validator := tmtypes.NewValidator(tmPK, 1) abciValidator := abci.Validator{Address: pubKey.Address(), Power: int64(1)} - valset := []abci.ValidatorUpdate{tmtypes.TM2PB.ValidatorUpdate(validator)} + valset := []abci.ValidatorUpdate{{ + Power: abciValidator.Power, + PubKeyBytes: pubKey.Bytes(), + PubKeyType: pubKey.Type(), + }} // create pending consumer packets consPackets := consumertypes.ConsumerPacketDataList{ diff --git a/x/ccv/consumer/keeper/keeper.go b/x/ccv/consumer/keeper/keeper.go index 43cf40dfdb..0cff6856e1 100644 --- a/x/ccv/consumer/keeper/keeper.go +++ b/x/ccv/consumer/keeper/keeper.go @@ -19,7 +19,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmtypes "github.com/cometbft/cometbft/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/consumer/keeper/keeper_test.go b/x/ccv/consumer/keeper/keeper_test.go index 2f70b285c0..b0056f9a96 100644 --- a/x/ccv/consumer/keeper/keeper_test.go +++ b/x/ccv/consumer/keeper/keeper_test.go @@ -5,6 +5,7 @@ import ( "sort" "testing" + "github.com/cometbft/cometbft/v2/crypto/encoding" conntypes "github.com/cosmos/ibc-go/v10/modules/core/03-connection/types" "github.com/golang/mock/gomock" "github.com/stretchr/testify/require" @@ -14,7 +15,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -50,20 +51,27 @@ func TestProviderChannel(t *testing.T) { // TestPendingChanges tests getter, setter, and delete functionality for pending VSCs on a consumer chain func TestPendingChanges(t *testing.T) { - pk1, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + pk1Proto, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) require.NoError(t, err) - pk2, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + pk1, err := encoding.PubKeyFromProto(pk1Proto) + require.NoError(t, err) + + pk2Proto, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + require.NoError(t, err) + pk2, err := encoding.PubKeyFromProto(pk2Proto) require.NoError(t, err) pd := ccv.NewValidatorSetChangePacketData( []abci.ValidatorUpdate{ { - PubKey: pk1, - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, { - PubKey: pk2, - Power: 20, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 20, }, }, 1, @@ -129,34 +137,47 @@ func TestInitialValSet(t *testing.T) { cId1 := crypto.NewCryptoIdentityFromIntSeed(7896) cId2 := crypto.NewCryptoIdentityFromIntSeed(7897) cId3 := crypto.NewCryptoIdentityFromIntSeed(7898) + pk1, err := encoding.PubKeyFromProto(cId1.TMProtoCryptoPublicKey()) + require.NoError(t, err) + pk2, err := encoding.PubKeyFromProto(cId2.TMProtoCryptoPublicKey()) + require.NoError(t, err) + pk3, err := encoding.PubKeyFromProto(cId3.TMProtoCryptoPublicKey()) + require.NoError(t, err) + valUpdates := []abci.ValidatorUpdate{ { - PubKey: cId1.TMProtoCryptoPublicKey(), - Power: 1097, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 1097, }, { - PubKey: cId2.TMProtoCryptoPublicKey(), - Power: 19068, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 19068, }, { - PubKey: cId3.TMProtoCryptoPublicKey(), - Power: 10978554, + PubKeyType: pk3.Type(), + PubKeyBytes: pk3.Bytes(), + Power: 10978554, }, } consumerKeeper.SetInitialValSet(ctx, valUpdates) require.Equal(t, []abci.ValidatorUpdate{ { - PubKey: cId1.TMProtoCryptoPublicKey(), - Power: 1097, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 1097, }, { - PubKey: cId2.TMProtoCryptoPublicKey(), - Power: 19068, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 19068, }, { - PubKey: cId3.TMProtoCryptoPublicKey(), - Power: 10978554, + PubKeyBytes: pk3.Bytes(), + PubKeyType: pk3.Type(), + Power: 10978554, }, }, consumerKeeper.GetInitialValSet(ctx)) } diff --git a/x/ccv/consumer/keeper/relay.go b/x/ccv/consumer/keeper/relay.go index 72f823b1e9..b2eb9e28d9 100644 --- a/x/ccv/consumer/keeper/relay.go +++ b/x/ccv/consumer/keeper/relay.go @@ -13,7 +13,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/consumer/keeper/relay_test.go b/x/ccv/consumer/keeper/relay_test.go index e41d665e18..8a441f5b38 100644 --- a/x/ccv/consumer/keeper/relay_test.go +++ b/x/ccv/consumer/keeper/relay_test.go @@ -6,6 +6,7 @@ import ( "testing" "time" + "github.com/cometbft/cometbft/v2/crypto/encoding" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" "github.com/golang/mock/gomock" @@ -16,8 +17,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/libs/bytes" + abci "github.com/cometbft/cometbft/v2/abci/types" + "github.com/cometbft/cometbft/v2/libs/bytes" "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -31,32 +32,44 @@ func TestOnRecvVSCPacket(t *testing.T) { consumerCCVChannelID := "consumerCCVChannelID" providerCCVChannelID := "providerCCVChannelID" - pk1, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + pk1Proto, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) require.NoError(t, err) - pk2, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + pk1, err := encoding.PubKeyFromProto(pk1Proto) require.NoError(t, err) - pk3, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + + pk2Proto, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + require.NoError(t, err) + pk2, err := encoding.PubKeyFromProto(pk2Proto) + require.NoError(t, err) + + pk3Proto, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + require.NoError(t, err) + pk3, err := encoding.PubKeyFromProto(pk3Proto) require.NoError(t, err) changes1 := []abci.ValidatorUpdate{ { - PubKey: pk1, - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, { - PubKey: pk2, - Power: 20, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 20, }, } changes2 := []abci.ValidatorUpdate{ { - PubKey: pk2, - Power: 40, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 40, }, { - PubKey: pk3, - Power: 10, + PubKeyBytes: pk3.Bytes(), + PubKeyType: pk3.Type(), + Power: 10, }, } @@ -107,16 +120,19 @@ func TestOnRecvVSCPacket(t *testing.T) { clienttypes.NewHeight(1, 0), 0), types.ValidatorSetChangePacketData{ValidatorUpdates: []abci.ValidatorUpdate{ { - PubKey: pk1, - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, { - PubKey: pk2, - Power: 40, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 40, }, { - PubKey: pk3, - Power: 10, + PubKeyBytes: pk3.Bytes(), + PubKeyType: pk3.Type(), + Power: 10, }, }}, }, @@ -127,16 +143,19 @@ func TestOnRecvVSCPacket(t *testing.T) { clienttypes.NewHeight(1, 0), 0), types.ValidatorSetChangePacketData{ValidatorUpdates: []abci.ValidatorUpdate{ { - PubKey: pk1, - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, { - PubKey: pk2, - Power: 40, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 40, }, { - PubKey: pk3, - Power: 10, + PubKeyBytes: pk3.Bytes(), + PubKeyType: pk3.Type(), + Power: 10, }, }}, }, @@ -169,10 +188,32 @@ func TestOnRecvVSCPacket(t *testing.T) { require.True(t, ok) // Sort to avoid dumb inequalities sort.SliceStable(actualPendingChanges.ValidatorUpdates, func(i, j int) bool { - return actualPendingChanges.ValidatorUpdates[i].PubKey.Compare(actualPendingChanges.ValidatorUpdates[j].PubKey) == -1 + valupdateI := actualPendingChanges.ValidatorUpdates[i] + valupdateJ := actualPendingChanges.ValidatorUpdates[j] + pki, err := encoding.PubKeyFromTypeAndBytes(valupdateI.PubKeyType, valupdateI.PubKeyBytes) + require.NoError(t, err) + pkj, err := encoding.PubKeyFromTypeAndBytes(valupdateJ.PubKeyType, valupdateJ.PubKeyBytes) + require.NoError(t, err) + + pkiProto, err := encoding.PubKeyToProto(pki) + require.NoError(t, err) + pkjProto, err := encoding.PubKeyToProto(pkj) + require.NoError(t, err) + return pkiProto.Compare(pkjProto) == -1 }) sort.SliceStable(tc.expectedPendingChanges.ValidatorUpdates, func(i, j int) bool { - return tc.expectedPendingChanges.ValidatorUpdates[i].PubKey.Compare(tc.expectedPendingChanges.ValidatorUpdates[j].PubKey) == -1 + valupdateI := tc.expectedPendingChanges.ValidatorUpdates[i] + valupdateJ := tc.expectedPendingChanges.ValidatorUpdates[j] + pki, err := encoding.PubKeyFromTypeAndBytes(valupdateI.PubKeyType, valupdateI.PubKeyBytes) + require.NoError(t, err) + pkj, err := encoding.PubKeyFromTypeAndBytes(valupdateJ.PubKeyType, valupdateJ.PubKeyBytes) + require.NoError(t, err) + + pkiProto, err := encoding.PubKeyToProto(pki) + require.NoError(t, err) + pkjProto, err := encoding.PubKeyToProto(pkj) + require.NoError(t, err) + return pkiProto.Compare(pkjProto) == -1 }) require.Equal(t, tc.expectedPendingChanges, *actualPendingChanges, "pending changes not equal to expected changes after successful packet receive. case: %s", tc.name) } @@ -196,14 +237,19 @@ func TestOnRecvVSCPacketDuplicateUpdates(t *testing.T) { // Construct packet/data with duplicate val updates for the same pub key cId := crypto.NewCryptoIdentityFromIntSeed(43278947) + pk, err := encoding.PubKeyFromProto(cId.TMProtoCryptoPublicKey()) + require.NoError(t, err) + valUpdates := []abci.ValidatorUpdate{ { - PubKey: cId.TMProtoCryptoPublicKey(), - Power: 0, + PubKeyBytes: pk.Bytes(), + PubKeyType: pk.Type(), + Power: 0, }, { - PubKey: cId.TMProtoCryptoPublicKey(), - Power: 473289, + PubKeyBytes: pk.Bytes(), + PubKeyType: pk.Type(), + Power: 473289, }, } vscData := types.NewValidatorSetChangePacketData( @@ -219,7 +265,7 @@ func TestOnRecvVSCPacketDuplicateUpdates(t *testing.T) { require.False(t, ok) // Execute OnRecvVSCPacket - err := consumerKeeper.OnRecvVSCPacket(ctx, packet, vscData) + err = consumerKeeper.OnRecvVSCPacket(ctx, packet, vscData) require.Nil(t, err) // Confirm pending changes are queued by OnRecvVSCPacket diff --git a/x/ccv/consumer/keeper/validators.go b/x/ccv/consumer/keeper/validators.go index 754670715c..d7650706a6 100644 --- a/x/ccv/consumer/keeper/validators.go +++ b/x/ccv/consumer/keeper/validators.go @@ -5,13 +5,16 @@ import ( "errors" "time" + "github.com/cometbft/cometbft/v2/crypto/encoding" + "github.com/cosmos/cosmos-sdk/crypto/keys" + "cosmossdk.io/math" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" ) @@ -27,7 +30,13 @@ func (k Keeper) ApplyCCValidatorChanges(ctx sdk.Context, changes []abci.Validato ret := []abci.ValidatorUpdate{} for _, change := range changes { // convert TM pubkey to SDK pubkey - pubkey, err := cryptocodec.FromCmtProtoPublicKey(change.GetPubKey()) + pubkey, err := encoding.PubKeyFromTypeAndBytes(change.PubKeyType, change.PubKeyBytes) + if err != nil { + // An error here would indicate that the validator updates + // received from the provider are invalid. + panic(err) + } + protoPubkey, err := keys.PubKeyFromCometTypeAndBytes(change.PubKeyType, change.PubKeyBytes) if err != nil { // An error here would indicate that the validator updates // received from the provider are invalid. @@ -48,7 +57,7 @@ func (k Keeper) ApplyCCValidatorChanges(ctx sdk.Context, changes []abci.Validato // create a new validator consAddr := sdk.ConsAddress(addr) - ccVal, err := types.NewCCValidator(addr, change.Power, pubkey) + ccVal, err := types.NewCCValidator(addr, change.Power, protoPubkey) if err != nil { // An error here would indicate that the validator updates // received from the provider are invalid. @@ -323,13 +332,13 @@ func (k Keeper) MustGetCurrentValidatorsAsABCIUpdates(ctx sdk.Context) []abci.Va // to be stored correctly in ApplyCCValidatorChanges. panic(err) } - tmPK, err := cryptocodec.ToCmtProtoPublicKey(pk) + tmPK, err := cryptocodec.ToCmtPubKeyInterface(pk) if err != nil { // This should never happen as the pubkey is assumed // to be stored correctly in ApplyCCValidatorChanges. panic(err) } - valUpdates = append(valUpdates, abci.ValidatorUpdate{PubKey: tmPK, Power: v.Power}) + valUpdates = append(valUpdates, abci.ValidatorUpdate{PubKeyBytes: tmPK.Bytes(), PubKeyType: tmPK.Type(), Power: v.Power}) } return valUpdates } diff --git a/x/ccv/consumer/keeper/validators_test.go b/x/ccv/consumer/keeper/validators_test.go index b09e1fd8d6..0a8a649f25 100644 --- a/x/ccv/consumer/keeper/validators_test.go +++ b/x/ccv/consumer/keeper/validators_test.go @@ -11,9 +11,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmrand "github.com/cometbft/cometbft/libs/rand" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmrand "github.com/cometbft/cometbft/v2/libs/rand" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -56,7 +56,12 @@ func TestApplyCCValidatorChanges(t *testing.T) { changesPower := int64(0) for _, v := range tcValidators { - changes = append(changes, tmtypes.TM2PB.ValidatorUpdate(v)) + + changes = append(changes, abci.ValidatorUpdate{ + Power: v.VotingPower, + PubKeyBytes: v.PubKey.Bytes(), + PubKeyType: v.PubKey.Type(), + }) changesPower += v.VotingPower } @@ -79,21 +84,21 @@ func TestApplyCCValidatorChanges(t *testing.T) { expValsNum: len(ccVals) + 1, }, { // update a validator voting power - changes: []abci.ValidatorUpdate{{PubKey: changes[0].PubKey, Power: changes[0].Power + 3}}, + changes: []abci.ValidatorUpdate{{PubKeyBytes: changes[0].PubKeyBytes, PubKeyType: changes[0].PubKeyType, Power: changes[0].Power + 3}}, expTotalPower: changesPower + 3, expValsNum: len(ccVals) + 1, }, { // unbond a validator - changes: []abci.ValidatorUpdate{{PubKey: changes[0].PubKey, Power: 0}}, + changes: []abci.ValidatorUpdate{{PubKeyType: changes[0].GetPubKeyType(), PubKeyBytes: changes[0].GetPubKeyBytes(), Power: 0}}, expTotalPower: changesPower - changes[0].Power, expValsNum: len(ccVals), }, { // update all validators voting power changes: []abci.ValidatorUpdate{ - {PubKey: changes[0].PubKey, Power: changes[0].Power + 1}, - {PubKey: changes[1].PubKey, Power: changes[1].Power + 2}, - {PubKey: changes[2].PubKey, Power: changes[2].Power + 3}, - {PubKey: changes[3].PubKey, Power: changes[3].Power + 4}, + {PubKeyBytes: changes[0].PubKeyBytes, PubKeyType: changes[0].PubKeyType, Power: changes[0].Power + 1}, + {PubKeyBytes: changes[1].PubKeyBytes, PubKeyType: changes[1].PubKeyType, Power: changes[1].Power + 2}, + {PubKeyBytes: changes[2].PubKeyBytes, PubKeyType: changes[2].PubKeyType, Power: changes[2].Power + 3}, + {PubKeyBytes: changes[3].PubKeyBytes, PubKeyType: changes[3].PubKeyType, Power: changes[3].Power + 4}, }, expTotalPower: changesPower + 10, expValsNum: len(ccVals) + 1, diff --git a/x/ccv/consumer/module.go b/x/ccv/consumer/module.go index 721c6261ae..d62b54ae4f 100644 --- a/x/ccv/consumer/module.go +++ b/x/ccv/consumer/module.go @@ -18,7 +18,7 @@ import ( simtypes "github.com/cosmos/cosmos-sdk/types/simulation" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/client/cli" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/keeper" diff --git a/x/ccv/consumer/types/consumer.pb.go b/x/ccv/consumer/types/consumer.pb.go index 9dff105314..7849a82184 100644 --- a/x/ccv/consumer/types/consumer.pb.go +++ b/x/ccv/consumer/types/consumer.pb.go @@ -40,8 +40,8 @@ type CrossChainValidator struct { Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` // pubkey is the consensus public key of the validator, as a Protobuf Any. Pubkey *types.Any `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty" yaml:"consensus_pubkey"` - // !!! DEPRECATED !!! opted_out is deprecated because after the introduction of Partial Set Security (PSS) - // we removed the soft opt-out feature. + // !!! DEPRECATED !!! opted_out is deprecated because after the introduction + // of Partial Set Security (PSS) we removed the soft opt-out feature. OptedOut bool `protobuf:"varint,4,opt,name=opted_out,json=optedOut,proto3" json:"opted_out,omitempty"` // Deprecated: Do not use. } diff --git a/x/ccv/consumer/types/genesis.go b/x/ccv/consumer/types/genesis.go index 3ad585eb3b..53fe00c35f 100644 --- a/x/ccv/consumer/types/genesis.go +++ b/x/ccv/consumer/types/genesis.go @@ -5,7 +5,7 @@ import ( errorsmod "cosmossdk.io/errors" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" ) diff --git a/x/ccv/consumer/types/genesis.pb.go b/x/ccv/consumer/types/genesis.pb.go index 91a3ba8436..ddcd3359b8 100644 --- a/x/ccv/consumer/types/genesis.pb.go +++ b/x/ccv/consumer/types/genesis.pb.go @@ -5,7 +5,7 @@ package types import ( fmt "fmt" - _ "github.com/cometbft/cometbft/abci/types" + _ "github.com/cometbft/cometbft/api/cometbft/abci/v2" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" _ "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint" @@ -29,8 +29,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the CCV consumer genesis state // -// Note: this type is only used on consumer side and references shared types with -// provider +// Note: this type is only used on consumer side and references shared types +// with provider type GenesisState struct { // ConsumerParams is a shared type with provider module Params types.ConsumerParams `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` @@ -54,7 +54,8 @@ type GenesisState struct { // The ID of the connection end on the consumer chain on top of which the // CCV channel will be established. If connection_id == "", a new client of // the provider chain and a new connection on top of this client are created. - // The new client is initialized using provider.client_state and provider.consensus_state. + // The new client is initialized using provider.client_state and + // provider.consensus_state. ConnectionId string `protobuf:"bytes,15,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` } @@ -377,55 +378,56 @@ func init() { } var fileDescriptor_2db73a6057a27482 = []byte{ - // 763 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4d, 0x6b, 0xeb, 0x46, - 0x14, 0xb5, 0x12, 0xd5, 0x91, 0x27, 0x1f, 0x75, 0x27, 0xc5, 0xa8, 0x31, 0x75, 0x8c, 0x43, 0xc1, - 0x94, 0x56, 0xaa, 0x53, 0x4a, 0x0b, 0xa5, 0xa5, 0x8d, 0x03, 0x8d, 0x4d, 0xa0, 0xc1, 0xf9, 0x28, - 0x64, 0x23, 0xc6, 0xa3, 0x89, 0x34, 0x44, 0x9a, 0x11, 0x9a, 0xb1, 0xdc, 0x50, 0xba, 0x69, 0x97, - 0x6f, 0xf3, 0x7e, 0x56, 0x96, 0x59, 0xbe, 0xd5, 0xe3, 0x91, 0xfc, 0x91, 0x87, 0x46, 0x23, 0x3b, - 0x21, 0x4e, 0xf0, 0xce, 0x57, 0xf7, 0xdc, 0x73, 0xef, 0x9c, 0x7b, 0x66, 0x0c, 0x7a, 0x94, 0x49, - 0x92, 0xe2, 0x10, 0x51, 0xe6, 0x09, 0x82, 0x27, 0x29, 0x95, 0x37, 0x2e, 0xc6, 0x99, 0x8b, 0x39, - 0x13, 0x93, 0x98, 0xa4, 0x6e, 0xd6, 0x73, 0x03, 0xc2, 0x88, 0xa0, 0xc2, 0x49, 0x52, 0x2e, 0x39, - 0xdc, 0x5b, 0x50, 0xe2, 0x60, 0x9c, 0x39, 0x65, 0x89, 0x93, 0xf5, 0x76, 0xbe, 0x7b, 0x89, 0x37, - 0xeb, 0xb9, 0x22, 0x44, 0x29, 0xf1, 0xbd, 0x19, 0x5c, 0xd1, 0xee, 0xb8, 0x74, 0x8c, 0xdd, 0x88, - 0x06, 0xa1, 0xc4, 0x11, 0x25, 0x4c, 0x0a, 0x57, 0x12, 0xe6, 0x93, 0x34, 0xa6, 0x4c, 0xe6, 0x55, - 0xf3, 0x48, 0x17, 0x7c, 0x1e, 0xf0, 0x80, 0xab, 0x9f, 0x6e, 0xfe, 0x4b, 0x7f, 0xfd, 0xea, 0x95, - 0xc6, 0x53, 0x9a, 0x12, 0x0d, 0xdb, 0x0d, 0x38, 0x0f, 0x22, 0xe2, 0xaa, 0x68, 0x3c, 0xb9, 0x72, - 0x25, 0x8d, 0x89, 0x90, 0x28, 0x4e, 0x34, 0xa0, 0xf9, 0xa8, 0x3b, 0x1a, 0x63, 0xea, 0xca, 0x9b, - 0x84, 0x68, 0x09, 0x3a, 0xff, 0xaf, 0x81, 0x8d, 0x3f, 0x0a, 0x51, 0x4e, 0x25, 0x92, 0x04, 0x1e, - 0x81, 0x6a, 0x82, 0x52, 0x14, 0x0b, 0xdb, 0x68, 0x1b, 0xdd, 0xf5, 0xfd, 0xaf, 0x9d, 0x97, 0x44, - 0xca, 0x7a, 0x4e, 0x5f, 0x1f, 0xfc, 0x44, 0x55, 0x1c, 0x98, 0xb7, 0xef, 0x77, 0x2b, 0x23, 0x5d, - 0x0f, 0xbf, 0x01, 0x30, 0x49, 0x79, 0x46, 0x7d, 0x92, 0x7a, 0x85, 0x10, 0x1e, 0xf5, 0xed, 0x95, - 0xb6, 0xd1, 0xad, 0x8d, 0xea, 0x65, 0xa6, 0xaf, 0x12, 0x03, 0x1f, 0x3a, 0x60, 0x7b, 0x8e, 0x0e, - 0x11, 0x63, 0x24, 0xca, 0xe1, 0xab, 0x0a, 0xfe, 0xd9, 0x0c, 0x5e, 0x64, 0x06, 0x3e, 0x6c, 0x82, - 0x1a, 0x23, 0x53, 0x4f, 0xcd, 0x65, 0x9b, 0x6d, 0xa3, 0x6b, 0x8d, 0x2c, 0x46, 0xa6, 0xfd, 0x3c, - 0x86, 0xff, 0x82, 0x9d, 0x90, 0xe4, 0x0b, 0xf0, 0x24, 0xf7, 0x32, 0x14, 0x09, 0x22, 0xbd, 0x49, - 0xe2, 0x23, 0x49, 0x72, 0xce, 0x5a, 0x7b, 0xb5, 0xbb, 0xbe, 0xff, 0xb3, 0xb3, 0xc4, 0xf6, 0x9d, - 0x23, 0x45, 0x73, 0xc6, 0x2f, 0x14, 0xc9, 0xb9, 0xe2, 0x18, 0x1c, 0xea, 0x93, 0x36, 0xc2, 0x45, - 0x59, 0x1f, 0xfe, 0x67, 0x80, 0x2f, 0xf9, 0x44, 0x0a, 0x89, 0x98, 0x4f, 0x59, 0xe0, 0xf9, 0x7c, - 0xca, 0xf2, 0xad, 0x78, 0x22, 0x42, 0x22, 0xa4, 0x2c, 0xb0, 0x81, 0x1a, 0xe1, 0xa7, 0xa5, 0x46, - 0xf8, 0x73, 0xce, 0x74, 0xa8, 0x89, 0x74, 0xff, 0x26, 0x7f, 0x9e, 0x3a, 0xd5, 0x2d, 0xe0, 0x3f, - 0xc0, 0x4e, 0x48, 0xd1, 0xbf, 0x64, 0xf3, 0x12, 0x84, 0xaf, 0x89, 0x14, 0xf6, 0xba, 0x5a, 0xed, - 0x72, 0x0a, 0xcc, 0x77, 0x9c, 0xd7, 0x1e, 0x22, 0x89, 0x8e, 0xa9, 0x90, 0xa5, 0x02, 0xba, 0xc5, - 0x53, 0x90, 0x80, 0x6f, 0x0c, 0xd0, 0x8a, 0x90, 0x90, 0x9e, 0x4c, 0x11, 0x13, 0x31, 0x15, 0x82, - 0x72, 0xe6, 0x8d, 0x23, 0x8e, 0xaf, 0xbd, 0x42, 0x34, 0x7b, 0x43, 0xcd, 0xf0, 0xdb, 0x52, 0x33, - 0x1c, 0x23, 0x21, 0xcf, 0x1e, 0x31, 0x1d, 0xe4, 0x44, 0xc5, 0x6a, 0x4a, 0x29, 0xa2, 0x97, 0x21, - 0xb0, 0x01, 0xaa, 0x49, 0x4a, 0xfa, 0xfd, 0x0b, 0x7b, 0x53, 0x19, 0x45, 0x47, 0x70, 0x08, 0xac, - 0xd2, 0x58, 0xf6, 0x96, 0x1a, 0xa7, 0xfb, 0x9a, 0xdb, 0x4f, 0x34, 0x76, 0xc0, 0xae, 0xb8, 0x6e, - 0x3b, 0xab, 0x87, 0x7b, 0x60, 0x13, 0x73, 0xc6, 0x08, 0x96, 0xf9, 0x49, 0xa9, 0x6f, 0x7f, 0xaa, - 0x9c, 0xbb, 0x31, 0xff, 0x38, 0xf0, 0x87, 0xa6, 0xf5, 0x49, 0xbd, 0x3a, 0x34, 0xad, 0x6a, 0x7d, - 0x6d, 0x68, 0x5a, 0x6b, 0x75, 0x6b, 0x68, 0x5a, 0x56, 0xbd, 0xd6, 0xb9, 0x04, 0x8d, 0xc5, 0x46, - 0xcb, 0x47, 0xd7, 0x7a, 0xe5, 0xd7, 0xd1, 0x1c, 0xe9, 0x08, 0x76, 0x41, 0xfd, 0x99, 0xaf, 0x57, - 0x14, 0x62, 0x2b, 0x7b, 0x62, 0xc6, 0xce, 0x39, 0xd8, 0x5e, 0xe0, 0x20, 0xf8, 0x2b, 0x68, 0x66, - 0x28, 0xa2, 0x3e, 0x92, 0x3c, 0x55, 0x06, 0x21, 0x4c, 0x4c, 0x84, 0x87, 0x7c, 0x3f, 0x25, 0xa2, - 0xb8, 0xfc, 0xb5, 0xd1, 0x17, 0x33, 0x48, 0xbf, 0x44, 0xfc, 0x5e, 0x00, 0x3a, 0x3f, 0x80, 0xe6, - 0xf1, 0xeb, 0x92, 0x3f, 0x9a, 0x7b, 0xb5, 0x9c, 0xbb, 0x33, 0x06, 0x8d, 0xc5, 0x86, 0x82, 0x47, - 0xc0, 0x8c, 0xa8, 0xc8, 0xf1, 0xf9, 0xd5, 0x70, 0x96, 0x7b, 0x76, 0x4a, 0x06, 0xbd, 0x0e, 0xc5, - 0x70, 0xf0, 0xd7, 0xed, 0x7d, 0xcb, 0xb8, 0xbb, 0x6f, 0x19, 0x1f, 0xee, 0x5b, 0xc6, 0xdb, 0x87, - 0x56, 0xe5, 0xee, 0xa1, 0x55, 0x79, 0xf7, 0xd0, 0xaa, 0x5c, 0xfe, 0x12, 0x50, 0x19, 0x4e, 0xc6, - 0x0e, 0xe6, 0xb1, 0x8b, 0xb9, 0x88, 0xb9, 0x70, 0xe7, 0x6d, 0xbe, 0x9d, 0x3d, 0xb2, 0xd9, 0x8f, - 0xee, 0xdf, 0x4f, 0xff, 0x3a, 0xd4, 0x93, 0x39, 0xae, 0xaa, 0x37, 0xf3, 0xfb, 0x8f, 0x01, 0x00, - 0x00, 0xff, 0xff, 0xd9, 0x14, 0xdc, 0x1c, 0x6b, 0x06, 0x00, 0x00, + // 771 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0x8e, 0xb7, 0x26, 0x75, 0xa6, 0xdd, 0x25, 0xcc, 0xa2, 0xc8, 0x34, 0x90, 0x8d, 0xb2, 0x42, + 0x8a, 0x10, 0x78, 0x48, 0x11, 0x02, 0x09, 0x81, 0xa0, 0xa9, 0x44, 0x13, 0x55, 0x62, 0x95, 0xdd, + 0x2d, 0x52, 0x2f, 0xd6, 0x78, 0x3c, 0xb5, 0x47, 0xb5, 0x67, 0x2c, 0xcf, 0xc4, 0xa1, 0x42, 0x5c, + 0xe0, 0xc8, 0x85, 0x9f, 0xd5, 0x63, 0x8f, 0x9c, 0x10, 0x6a, 0xff, 0xc8, 0xca, 0xe3, 0x71, 0xd2, + 0xaa, 0x69, 0x95, 0x5b, 0x9e, 0xdf, 0xf7, 0xbe, 0xf7, 0xe6, 0x7b, 0xdf, 0x4c, 0xc0, 0x88, 0x71, + 0x45, 0x73, 0x12, 0x63, 0xc6, 0x7d, 0x49, 0xc9, 0x3c, 0x67, 0xea, 0x02, 0x11, 0x52, 0x20, 0x22, + 0xb8, 0x9c, 0xa7, 0x34, 0x47, 0xc5, 0x08, 0x45, 0x94, 0x53, 0xc9, 0xa4, 0x97, 0xe5, 0x42, 0x09, + 0xf8, 0x72, 0x4d, 0x89, 0x47, 0x48, 0xe1, 0xd5, 0x25, 0x5e, 0x31, 0xda, 0xfb, 0xf2, 0x21, 0xde, + 0x62, 0x84, 0x64, 0x8c, 0x73, 0x1a, 0xfa, 0x4b, 0xb8, 0xa6, 0xdd, 0x43, 0x2c, 0x20, 0x28, 0x61, + 0x51, 0xac, 0x48, 0xc2, 0x28, 0x57, 0x12, 0x29, 0xca, 0x43, 0x9a, 0xa7, 0x8c, 0xab, 0xb2, 0x6a, + 0x15, 0x99, 0x82, 0x0f, 0x23, 0x11, 0x09, 0xfd, 0x13, 0x95, 0xbf, 0xcc, 0xd7, 0x4f, 0x1f, 0x69, + 0xbc, 0x60, 0x39, 0x35, 0xb0, 0x17, 0x91, 0x10, 0x51, 0x42, 0x91, 0x8e, 0x82, 0xf9, 0x19, 0x52, + 0x2c, 0xa5, 0x52, 0xe1, 0x34, 0x33, 0x80, 0x8f, 0x89, 0x48, 0xa9, 0x0a, 0xce, 0x14, 0xc2, 0x01, + 0x61, 0xa8, 0xd8, 0x47, 0xea, 0x22, 0xa3, 0x46, 0x83, 0xc1, 0x5f, 0xdb, 0x60, 0xf7, 0xe7, 0x4a, + 0x95, 0xd7, 0x0a, 0x2b, 0x0a, 0x8f, 0x40, 0x33, 0xc3, 0x39, 0x4e, 0xa5, 0x6b, 0xf5, 0xad, 0xe1, + 0xce, 0xfe, 0x67, 0xde, 0x43, 0x2a, 0x15, 0x23, 0x6f, 0x6c, 0x4e, 0xfe, 0x4a, 0x57, 0x1c, 0xd8, + 0x97, 0xff, 0xbd, 0x68, 0xcc, 0x4c, 0x3d, 0xfc, 0x1c, 0xc0, 0x2c, 0x17, 0x05, 0x0b, 0x69, 0xee, + 0x57, 0x4a, 0xf8, 0x2c, 0x74, 0x9f, 0xf4, 0xad, 0x61, 0x6b, 0xd6, 0xae, 0x33, 0x63, 0x9d, 0x98, + 0x84, 0xd0, 0x03, 0xcf, 0x57, 0xe8, 0x18, 0x73, 0x4e, 0x93, 0x12, 0xbe, 0xa5, 0xe1, 0x1f, 0x2c, + 0xe1, 0x55, 0x66, 0x12, 0xc2, 0x2e, 0x68, 0x71, 0xba, 0xf0, 0xf5, 0x5c, 0xae, 0xdd, 0xb7, 0x86, + 0xce, 0xcc, 0xe1, 0x74, 0x31, 0x2e, 0x63, 0xf8, 0x07, 0xd8, 0x8b, 0x69, 0xb9, 0x01, 0x5f, 0x09, + 0xbf, 0xc0, 0x89, 0xa4, 0xca, 0x9f, 0x67, 0x21, 0x56, 0xb4, 0xe4, 0x6c, 0xf5, 0xb7, 0x86, 0x3b, + 0xfb, 0xdf, 0x79, 0x1b, 0xac, 0xdf, 0x3b, 0xd2, 0x34, 0x6f, 0xc4, 0x89, 0x26, 0x79, 0xab, 0x39, + 0x26, 0x87, 0xe6, 0xa4, 0x9d, 0x78, 0x5d, 0x36, 0x84, 0x7f, 0x5a, 0xe0, 0x13, 0x31, 0x57, 0x52, + 0x61, 0x1e, 0x32, 0x1e, 0xf9, 0xa1, 0x58, 0xf0, 0x72, 0x2d, 0xbe, 0x4c, 0xb0, 0x8c, 0x19, 0x8f, + 0x5c, 0xa0, 0x47, 0xf8, 0x76, 0xa3, 0x11, 0x7e, 0x59, 0x31, 0x1d, 0x1a, 0x22, 0xd3, 0xbf, 0x2b, + 0xee, 0xa7, 0x5e, 0x9b, 0x16, 0xf0, 0x77, 0xe0, 0x66, 0xb4, 0xea, 0x5f, 0xb3, 0xf9, 0x19, 0x26, + 0xe7, 0x54, 0x49, 0x77, 0x47, 0xaf, 0x76, 0x33, 0x05, 0x56, 0x3b, 0x2e, 0x6b, 0x0f, 0xb1, 0xc2, + 0xc7, 0x4c, 0xaa, 0x5a, 0x01, 0xd3, 0xe2, 0x2e, 0x48, 0xc2, 0xbf, 0x2d, 0xd0, 0x4b, 0xb0, 0x54, + 0xbe, 0xca, 0x31, 0x97, 0x29, 0x93, 0x92, 0x09, 0xee, 0x07, 0x89, 0x20, 0xe7, 0x7e, 0x25, 0x9a, + 0xbb, 0xab, 0x67, 0xf8, 0x71, 0xa3, 0x19, 0x8e, 0xb1, 0x54, 0x6f, 0x6e, 0x31, 0x1d, 0x94, 0x44, + 0xd5, 0x6a, 0x6a, 0x29, 0x92, 0x87, 0x21, 0xb0, 0x03, 0x9a, 0x59, 0x4e, 0xc7, 0xe3, 0x13, 0xf7, + 0xa9, 0x36, 0x8a, 0x89, 0xe0, 0x14, 0x38, 0xb5, 0xb1, 0xdc, 0x67, 0x7a, 0x9c, 0xe1, 0x63, 0x6e, + 0x7f, 0x65, 0xb0, 0x13, 0x7e, 0x26, 0x4c, 0xdb, 0x65, 0x3d, 0x7c, 0x09, 0x9e, 0x12, 0xc1, 0x39, + 0x25, 0xaa, 0x3c, 0x29, 0x0b, 0xdd, 0xf7, 0xb5, 0x73, 0x77, 0x57, 0x1f, 0x27, 0xe1, 0xd4, 0x76, + 0xde, 0x6b, 0x37, 0xa7, 0xb6, 0xd3, 0x6c, 0x6f, 0x4f, 0x6d, 0x67, 0xbb, 0xed, 0x4c, 0x6d, 0xc7, + 0x69, 0xb7, 0x06, 0xa7, 0xa0, 0xb3, 0xde, 0x68, 0xe5, 0xe8, 0x46, 0xaf, 0xf2, 0x3a, 0xda, 0x33, + 0x13, 0xc1, 0x21, 0x68, 0xdf, 0xf3, 0xf5, 0x13, 0x8d, 0x78, 0x56, 0xdc, 0x31, 0xe3, 0xe0, 0x2d, + 0x78, 0xbe, 0xc6, 0x41, 0xf0, 0x07, 0xd0, 0x2d, 0x70, 0xc2, 0x42, 0xac, 0x44, 0xae, 0x0d, 0x42, + 0xb9, 0x9c, 0x4b, 0x1f, 0x87, 0x61, 0x4e, 0x65, 0x75, 0xf9, 0x5b, 0xb3, 0x8f, 0x96, 0x90, 0x71, + 0x8d, 0xf8, 0xa9, 0x02, 0x0c, 0xbe, 0x06, 0xdd, 0xe3, 0xc7, 0x25, 0xbf, 0x35, 0xf7, 0x56, 0x3d, + 0xf7, 0x20, 0x00, 0x9d, 0xf5, 0x86, 0x82, 0x47, 0xc0, 0x4e, 0x98, 0x2c, 0xf1, 0xe5, 0xd5, 0xf0, + 0x36, 0x7b, 0x76, 0x6a, 0x06, 0xb3, 0x0e, 0xcd, 0x70, 0xf0, 0xeb, 0xe5, 0x75, 0xcf, 0xba, 0xba, + 0xee, 0x59, 0xff, 0x5f, 0xf7, 0xac, 0x7f, 0x6e, 0x7a, 0x8d, 0xab, 0x9b, 0x5e, 0xe3, 0xdf, 0x9b, + 0x5e, 0xe3, 0xf4, 0xfb, 0x88, 0xa9, 0x78, 0x1e, 0x78, 0x44, 0xa4, 0x88, 0x08, 0x99, 0x0a, 0x89, + 0x56, 0x6d, 0xbe, 0x58, 0xbe, 0xb2, 0xc5, 0x37, 0xe8, 0xb7, 0xbb, 0xff, 0x1d, 0xfa, 0xc9, 0x0c, + 0x9a, 0xfa, 0xcd, 0xfc, 0xea, 0x5d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x36, 0xee, 0x23, 0x1f, 0x6c, + 0x06, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/ccv/consumer/types/genesis_test.go b/x/ccv/consumer/types/genesis_test.go index 4f566d0e5a..2f1e26df09 100644 --- a/x/ccv/consumer/types/genesis_test.go +++ b/x/ccv/consumer/types/genesis_test.go @@ -11,8 +11,8 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" "github.com/cosmos/interchain-security/v7/x/ccv/consumer/types" diff --git a/x/ccv/consumer/types/query.pb.go b/x/ccv/consumer/types/query.pb.go index 0068ca3f78..459e2cae43 100644 --- a/x/ccv/consumer/types/query.pb.go +++ b/x/ccv/consumer/types/query.pb.go @@ -631,7 +631,8 @@ type QueryClient interface { // QueryParams queries the ccv/consumer module parameters. QueryParams(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) QueryProviderInfo(ctx context.Context, in *QueryProviderInfoRequest, opts ...grpc.CallOption) (*QueryProviderInfoResponse, error) - // QueryThrottleState returns on-chain state relevant to throttled consumer packets + // QueryThrottleState returns on-chain state relevant to throttled consumer + // packets QueryThrottleState(ctx context.Context, in *QueryThrottleStateRequest, opts ...grpc.CallOption) (*QueryThrottleStateResponse, error) } @@ -687,7 +688,8 @@ type QueryServer interface { // QueryParams queries the ccv/consumer module parameters. QueryParams(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) QueryProviderInfo(context.Context, *QueryProviderInfoRequest) (*QueryProviderInfoResponse, error) - // QueryThrottleState returns on-chain state relevant to throttled consumer packets + // QueryThrottleState returns on-chain state relevant to throttled consumer + // packets QueryThrottleState(context.Context, *QueryThrottleStateRequest) (*QueryThrottleStateResponse, error) } diff --git a/x/ccv/democracy/staking/module.go b/x/ccv/democracy/staking/module.go index 324320923b..7122fbd34e 100644 --- a/x/ccv/democracy/staking/module.go +++ b/x/ccv/democracy/staking/module.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking/keeper" "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) // Note: for a democracy consumer, this "democracy staking" keeper is only for governance capabilities, diff --git a/x/ccv/no_valupdates_genutil/module.go b/x/ccv/no_valupdates_genutil/module.go index cd1ace0adb..c8af88e14f 100644 --- a/x/ccv/no_valupdates_genutil/module.go +++ b/x/ccv/no_valupdates_genutil/module.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/genutil" "github.com/cosmos/cosmos-sdk/x/genutil/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) var ( diff --git a/x/ccv/no_valupdates_staking/module.go b/x/ccv/no_valupdates_staking/module.go index 79e7200ba8..4eacfbf0c3 100644 --- a/x/ccv/no_valupdates_staking/module.go +++ b/x/ccv/no_valupdates_staking/module.go @@ -14,7 +14,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking/keeper" "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) var ( diff --git a/x/ccv/provider/client/cli/tx.go b/x/ccv/provider/client/cli/tx.go index dcf347031a..7657d385ee 100644 --- a/x/ccv/provider/client/cli/tx.go +++ b/x/ccv/provider/client/cli/tx.go @@ -18,7 +18,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" - tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmproto "github.com/cometbft/cometbft/api/cometbft/types/v2" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ) diff --git a/x/ccv/provider/keeper/consumer_equivocation.go b/x/ccv/provider/keeper/consumer_equivocation.go index a17a28d61d..8642262743 100644 --- a/x/ccv/provider/keeper/consumer_equivocation.go +++ b/x/ccv/provider/keeper/consumer_equivocation.go @@ -17,7 +17,7 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccvtypes "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/provider/keeper/consumer_equivocation_test.go b/x/ccv/provider/keeper/consumer_equivocation_test.go index 021f6cbd12..d01aa9418e 100644 --- a/x/ccv/provider/keeper/consumer_equivocation_test.go +++ b/x/ccv/provider/keeper/consumer_equivocation_test.go @@ -15,7 +15,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" diff --git a/x/ccv/provider/keeper/consumer_lifecycle.go b/x/ccv/provider/keeper/consumer_lifecycle.go index 5d867d20d3..105d83552b 100644 --- a/x/ccv/provider/keeper/consumer_lifecycle.go +++ b/x/ccv/provider/keeper/consumer_lifecycle.go @@ -18,8 +18,8 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/provider/keeper/consumer_lifecycle_test.go b/x/ccv/provider/keeper/consumer_lifecycle_test.go index 5746dc0048..08fedaad2a 100644 --- a/x/ccv/provider/keeper/consumer_lifecycle_test.go +++ b/x/ccv/provider/keeper/consumer_lifecycle_test.go @@ -15,12 +15,10 @@ import ( "cosmossdk.io/math" - cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + abci "github.com/cometbft/cometbft/v2/abci/types" cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -698,13 +696,10 @@ func TestMakeConsumerGenesis(t *testing.T) { require.NoError(t, err) _, pks, _ := ibctesting.GenerateKeys(t, 2) - var ppks [2]tmprotocrypto.PublicKey - for i, pk := range pks { - ppks[i], _ = cryptocodec.ToCmtProtoPublicKey(pk) - } + initialValUpdates := []abci.ValidatorUpdate{ - {PubKey: ppks[0], Power: 1}, - {PubKey: ppks[1], Power: 2}, + {PubKeyType: pks[0].Type(), PubKeyBytes: pks[0].Bytes(), Power: 1}, + {PubKeyType: pks[1].Type(), PubKeyBytes: pks[1].Bytes(), Power: 2}, } actualGenesis, err := providerKeeper.MakeConsumerGenesis(ctx, CONSUMER_ID, initialValUpdates) diff --git a/x/ccv/provider/keeper/distribution_test.go b/x/ccv/provider/keeper/distribution_test.go index 34ba536e12..96e0c0d2f4 100644 --- a/x/ccv/provider/keeper/distribution_test.go +++ b/x/ccv/provider/keeper/distribution_test.go @@ -14,7 +14,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/x/ccv/provider/keeper/genesis.go b/x/ccv/provider/keeper/genesis.go index b350090841..da3e9876b7 100644 --- a/x/ccv/provider/keeper/genesis.go +++ b/x/ccv/provider/keeper/genesis.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" @@ -100,9 +100,11 @@ func (k Keeper) InitGenesisValUpdates(ctx sdk.Context) []abci.ValidatorUpdate { valUpdates := make([]abci.ValidatorUpdate, len(reducedValSet)) for i, val := range reducedValSet { + pk := MustPubkeyFromProto(val.PublicKey) valUpdates[i] = abci.ValidatorUpdate{ - PubKey: *val.PublicKey, - Power: val.Power, + PubKeyType: pk.Type(), + PubKeyBytes: pk.Bytes(), + Power: val.Power, } } return valUpdates diff --git a/x/ccv/provider/keeper/grpc_query_test.go b/x/ccv/provider/keeper/grpc_query_test.go index 6743631932..09a338498e 100644 --- a/x/ccv/provider/keeper/grpc_query_test.go +++ b/x/ccv/provider/keeper/grpc_query_test.go @@ -16,12 +16,11 @@ import ( "cosmossdk.io/math" + crypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" sdk "github.com/cosmos/cosmos-sdk/types" sdkquery "github.com/cosmos/cosmos-sdk/types/query" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cometbft/cometbft/proto/tendermint/crypto" - cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" "github.com/cosmos/interchain-security/v7/x/ccv/provider/keeper" diff --git a/x/ccv/provider/keeper/keeper_test.go b/x/ccv/provider/keeper/keeper_test.go index b4da899f69..b853e85c1b 100644 --- a/x/ccv/provider/keeper/keeper_test.go +++ b/x/ccv/provider/keeper/keeper_test.go @@ -5,6 +5,8 @@ import ( "sort" "testing" + "github.com/cometbft/cometbft/v2/crypto" + "github.com/cometbft/cometbft/v2/crypto/encoding" ibctesting "github.com/cosmos/ibc-go/v10/testing" "github.com/stretchr/testify/require" @@ -12,8 +14,8 @@ import ( cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" - abci "github.com/cometbft/cometbft/abci/types" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + tmprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + abci "github.com/cometbft/cometbft/v2/abci/types" cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -166,17 +168,24 @@ func TestPendingVSCs(t *testing.T) { ppks[i], _ = cryptocodec.ToCmtProtoPublicKey(pk) } + pubkeys := make([]crypto.PubKey, 0, len(ppks)) + for _, pk := range ppks { + protoPK, err := encoding.PubKeyFromProto(pk) + require.NoError(t, err) + pubkeys = append(pubkeys, protoPK) + } + packetList := []ccv.ValidatorSetChangePacketData{ { ValidatorUpdates: []abci.ValidatorUpdate{ - {PubKey: ppks[0], Power: 1}, - {PubKey: ppks[1], Power: 2}, + {PubKeyBytes: pubkeys[0].Bytes(), PubKeyType: pubkeys[0].Type(), Power: 1}, + {PubKeyBytes: pubkeys[1].Bytes(), PubKeyType: pubkeys[1].Type(), Power: 2}, }, ValsetUpdateId: 1, }, { ValidatorUpdates: []abci.ValidatorUpdate{ - {PubKey: ppks[2], Power: 3}, + {PubKeyBytes: pubkeys[2].Bytes(), PubKeyType: pubkeys[2].Type(), Power: 3}, }, ValsetUpdateId: 2, }, @@ -188,7 +197,7 @@ func TestPendingVSCs(t *testing.T) { newPacket := ccv.ValidatorSetChangePacketData{ ValidatorUpdates: []abci.ValidatorUpdate{ - {PubKey: ppks[3], Power: 4}, + {PubKeyBytes: pubkeys[3].Bytes(), PubKeyType: pubkeys[3].Type(), Power: 4}, }, ValsetUpdateId: 3, } @@ -196,7 +205,14 @@ func TestPendingVSCs(t *testing.T) { vscs := providerKeeper.GetPendingVSCPackets(ctx, chainID) require.Len(t, vscs, 3) require.True(t, vscs[len(vscs)-1].ValsetUpdateId == 3) - require.True(t, vscs[len(vscs)-1].GetValidatorUpdates()[0].PubKey.String() == ppks[3].String()) + + lastPk := vscs[len(vscs)-1].GetValidatorUpdates()[0] + pk, err := encoding.PubKeyFromTypeAndBytes(lastPk.PubKeyType, lastPk.PubKeyBytes) + require.NoError(t, err) + protoPK, err := encoding.PubKeyToProto(pk) + require.NoError(t, err) + + require.True(t, protoPK.String() == ppks[3].String()) providerKeeper.DeletePendingVSCPackets(ctx, chainID) pending = providerKeeper.GetPendingVSCPackets(ctx, chainID) diff --git a/x/ccv/provider/keeper/key_assignment.go b/x/ccv/provider/keeper/key_assignment.go index 269066f100..7052a628ab 100644 --- a/x/ccv/provider/keeper/key_assignment.go +++ b/x/ccv/provider/keeper/key_assignment.go @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + tmprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccvtypes "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/provider/keeper/key_assignment_test.go b/x/ccv/provider/keeper/key_assignment_test.go index 9e2d0009de..f8321da8ab 100644 --- a/x/ccv/provider/keeper/key_assignment_test.go +++ b/x/ccv/provider/keeper/key_assignment_test.go @@ -7,6 +7,7 @@ import ( "testing" "time" + "github.com/cometbft/cometbft/v2/crypto/encoding" "github.com/golang/mock/gomock" "github.com/stretchr/testify/require" @@ -14,8 +15,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + tmprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + abci "github.com/cometbft/cometbft/v2/abci/types" cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -647,7 +648,15 @@ func (vs *ValSet) apply(updates []abci.ValidatorUpdate) { // note: an insertion index should always be found for _, u := range updates { for i, id := range vs.identities { // n2 looping but n is tiny - cons, _ := ccvtypes.TMCryptoPublicKeyToConsAddr(u.PubKey) + upk, err := encoding.PubKeyFromTypeAndBytes(u.PubKeyType, u.PubKeyBytes) + if err != nil { + panic(err) + } + upkProto, err := encoding.PubKeyToProto(upk) + if err != nil { + panic(err) + } + cons, _ := ccvtypes.TMCryptoPublicKeyToConsAddr(upkProto) if id.SDKValConsAddress().Equals(cons) { vs.power[i] = u.Power } @@ -704,9 +713,14 @@ func TestSimulatedAssignmentsAndUpdateApplication(t *testing.T) { // Power 0, 1, or 2 represents // deletion, update (from 0 or 2), update (from 0 or 1) power := rng.Intn(3) + pk, err := encoding.PubKeyFromProto(providerIDS[i].TMProtoCryptoPublicKey()) + if err != nil { + panic(err) + } ret = append(ret, abci.ValidatorUpdate{ - PubKey: providerIDS[i].TMProtoCryptoPublicKey(), - Power: int64(power), + PubKeyBytes: pk.Bytes(), + PubKeyType: pk.Type(), + Power: int64(power), }) } return diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index 4acb7f05e9..531a4945dd 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -13,7 +13,7 @@ import ( govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccvtypes "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/provider/keeper/power_shaping_test.go b/x/ccv/provider/keeper/power_shaping_test.go index 012884e4e4..2ad817f9e9 100644 --- a/x/ccv/provider/keeper/power_shaping_test.go +++ b/x/ccv/provider/keeper/power_shaping_test.go @@ -14,12 +14,11 @@ import ( "cosmossdk.io/math" + crypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/cometbft/cometbft/proto/tendermint/crypto" - testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" "github.com/cosmos/interchain-security/v7/x/ccv/provider/keeper" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/x/ccv/provider/keeper/provider_consensus_test.go b/x/ccv/provider/keeper/provider_consensus_test.go index d3811549e8..468e3f7978 100644 --- a/x/ccv/provider/keeper/provider_consensus_test.go +++ b/x/ccv/provider/keeper/provider_consensus_test.go @@ -6,8 +6,7 @@ import ( "github.com/stretchr/testify/require" "cosmossdk.io/math" - - "github.com/cometbft/cometbft/proto/tendermint/crypto" + crypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/x/ccv/provider/keeper/relay.go b/x/ccv/provider/keeper/relay.go index 2e77df60a9..20bf0ddcf3 100644 --- a/x/ccv/provider/keeper/relay.go +++ b/x/ccv/provider/keeper/relay.go @@ -13,7 +13,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" diff --git a/x/ccv/provider/keeper/relay_test.go b/x/ccv/provider/keeper/relay_test.go index d1dedbc1ad..9bd69cd872 100644 --- a/x/ccv/provider/keeper/relay_test.go +++ b/x/ccv/provider/keeper/relay_test.go @@ -6,6 +6,8 @@ import ( "testing" "time" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/cometbft/cometbft/v2/crypto/encoding" clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v10/modules/core/04-channel/types" ibctesting "github.com/cosmos/ibc-go/v10/testing" @@ -18,7 +20,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -31,6 +33,8 @@ import ( func TestQueueVSCPackets(t *testing.T) { _, _, key := ibctesting.GenerateKeys(t, 1) tmPubKey, _ := cryptocodec.ToCmtProtoPublicKey(key) + pk, err := encoding.PubKeyFromProto(tmPubKey) + require.NoError(t, err) testCases := []struct { name string @@ -49,7 +53,7 @@ func TestQueueVSCPackets(t *testing.T) { packets: []ccv.ValidatorSetChangePacketData{ { ValidatorUpdates: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 1}, + {PubKeyType: pk.Type(), PubKeyBytes: pk.Bytes(), Power: 1}, }, ValsetUpdateId: 1, }, @@ -773,18 +777,36 @@ func TestProviderValidatorUpdates(t *testing.T) { // removed validator is set to 0 power // validator 1 is set to 0 power (because maxProviderConsensusValidators is 2) // validator 2 is untouched + pk, err := validators[0].CmtConsPublicKey() + require.NoError(t, err) + val0, err := encoding.PubKeyFromProto(pk) + require.NoError(t, err) + + pk, err = removedValidator.CmtConsPublicKey() + require.NoError(t, err) + removedPK, err := encoding.PubKeyFromProto(pk) + require.NoError(t, err) + + pk, err = validators[2].CmtConsPublicKey() + require.NoError(t, err) + val2, err := encoding.PubKeyFromProto(pk) + require.NoError(t, err) + expectedUpdates := []abci.ValidatorUpdate{ { - PubKey: testkeeper.Must(validators[0].CmtConsPublicKey()), - Power: 30, + PubKeyType: val0.Type(), + PubKeyBytes: val0.Bytes(), + Power: 30, }, { - PubKey: testkeeper.Must(removedValidator.CmtConsPublicKey()), - Power: 0, + PubKeyBytes: removedPK.Bytes(), + PubKeyType: removedPK.Type(), + Power: 0, }, { - PubKey: testkeeper.Must(validators[2].CmtConsPublicKey()), - Power: 0, + PubKeyType: val2.Type(), + PubKeyBytes: val2.Bytes(), + Power: 0, }, } @@ -858,22 +880,10 @@ func TestQueueVSCPacketsWithPowerCapping(t *testing.T) { []abci.ValidatorUpdate{ // validator D is not here because it was denylisted // powers have changed because of power capping - { - PubKey: valEPubKey, - Power: 9, - }, - { - PubKey: valCPubKey, - Power: 6, - }, - { - PubKey: valBPubKey, - Power: 5, - }, - { - PubKey: valAPubKey, - Power: 4, - }, + valUpdateFromPubkey(t, valEPubKey, 9), + valUpdateFromPubkey(t, valCPubKey, 6), + valUpdateFromPubkey(t, valBPubKey, 5), + valUpdateFromPubkey(t, valAPubKey, 4), }, 1, nil), @@ -882,6 +892,17 @@ func TestQueueVSCPacketsWithPowerCapping(t *testing.T) { require.Equal(t, expectedQueuedVSCPackets, actualQueuedVSCPackets) } +func valUpdateFromPubkey(t *testing.T, protoPK v1.PublicKey, power int64) abci.ValidatorUpdate { + t.Helper() + pk, err := encoding.PubKeyFromProto(protoPK) + require.NoError(t, err) + return abci.ValidatorUpdate{ + Power: power, + PubKeyBytes: pk.Bytes(), + PubKeyType: pk.Type(), + } +} + // TestBlocksUntilNextEpoch tests the `BlocksUntilNextEpoch` method func TestBlocksUntilNextEpoch(t *testing.T) { providerKeeper, ctx, ctrl, _ := testkeeper.GetProviderKeeperAndCtx(t, testkeeper.NewInMemKeeperParams(t)) diff --git a/x/ccv/provider/keeper/throttle.go b/x/ccv/provider/keeper/throttle.go index 2e645c847b..b34a5d525b 100644 --- a/x/ccv/provider/keeper/throttle.go +++ b/x/ccv/provider/keeper/throttle.go @@ -8,7 +8,7 @@ import ( sdktypes "github.com/cosmos/cosmos-sdk/types" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ) diff --git a/x/ccv/provider/keeper/throttle_test.go b/x/ccv/provider/keeper/throttle_test.go index fd14c35d3c..44f249cb16 100644 --- a/x/ccv/provider/keeper/throttle_test.go +++ b/x/ccv/provider/keeper/throttle_test.go @@ -9,7 +9,7 @@ import ( "cosmossdk.io/math" - tmtypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/v2/types" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/x/ccv/provider/keeper/validator_set_update.go b/x/ccv/provider/keeper/validator_set_update.go index 852aec4574..629302a47a 100644 --- a/x/ccv/provider/keeper/validator_set_update.go +++ b/x/ccv/provider/keeper/validator_set_update.go @@ -4,12 +4,16 @@ import ( "fmt" "sort" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + "github.com/cometbft/cometbft/v2/crypto" + "github.com/cometbft/cometbft/v2/crypto/encoding" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" ccv "github.com/cosmos/interchain-security/v7/x/ccv/types" @@ -105,11 +109,13 @@ func DiffValidators( if nextVal, found := isNextValidator[currentVal.PublicKey.String()]; !found { // this consumer public key does not appear in the next validators and hence we remove the validator // with that consumer public key by creating an update with 0 power - updates = append(updates, abci.ValidatorUpdate{PubKey: *currentVal.PublicKey, Power: 0}) + pk := MustPubkeyFromProto(currentVal.GetPublicKey()) + updates = append(updates, abci.ValidatorUpdate{PubKeyType: pk.Type(), PubKeyBytes: pk.Bytes(), Power: 0}) } else if currentVal.Power != nextVal.Power { // validator did not modify its consumer public key but has changed its voting power, so we // have to create an update with the new power - updates = append(updates, abci.ValidatorUpdate{PubKey: *nextVal.PublicKey, Power: nextVal.Power}) + pk := MustPubkeyFromProto(nextVal.GetPublicKey()) + updates = append(updates, abci.ValidatorUpdate{PubKeyType: pk.Type(), PubKeyBytes: pk.Bytes(), Power: nextVal.Power}) } // else no update is needed because neither the consumer public key changed, nor the power of the validator } @@ -117,13 +123,22 @@ func DiffValidators( for _, nextVal := range nextValidators { if _, found := isCurrentValidator[nextVal.PublicKey.String()]; !found { // this consumer public key does not exist in the current validators and hence we introduce this validator - updates = append(updates, abci.ValidatorUpdate{PubKey: *nextVal.PublicKey, Power: nextVal.Power}) + pk := MustPubkeyFromProto(nextVal.GetPublicKey()) + updates = append(updates, abci.ValidatorUpdate{PubKeyType: pk.Type(), PubKeyBytes: pk.Bytes(), Power: nextVal.Power}) } } return updates } +func MustPubkeyFromProto(k *v1.PublicKey) crypto.PubKey { + pk, err := encoding.PubKeyFromProto(*k) + if err != nil { + panic(err) + } + return pk +} + // CreateConsumerValidator creates a consumer validator for `consumerId` from the given staking `validator` func (k Keeper) CreateConsumerValidator(ctx sdk.Context, consumerId string, validator stakingtypes.Validator) (types.ConsensusValidator, error) { valAddr, err := sdk.ValAddressFromBech32(validator.GetOperator()) diff --git a/x/ccv/provider/keeper/validator_set_update_test.go b/x/ccv/provider/keeper/validator_set_update_test.go index a869c8353a..ad60febc5d 100644 --- a/x/ccv/provider/keeper/validator_set_update_test.go +++ b/x/ccv/provider/keeper/validator_set_update_test.go @@ -5,6 +5,7 @@ import ( "sort" "testing" + "github.com/cometbft/cometbft/v2/crypto/encoding" "github.com/stretchr/testify/require" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -12,8 +13,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - "github.com/cometbft/cometbft/proto/tendermint/crypto" + crypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + abci "github.com/cometbft/cometbft/v2/abci/types" cryptotestutil "github.com/cosmos/interchain-security/v7/testutil/crypto" testkeeper "github.com/cosmos/interchain-security/v7/testutil/keeper" @@ -145,7 +146,9 @@ func TestDiff(t *testing.T) { // validator A only exists in `currentValidators` and hence an update with 0 power would be generated // to remove this validator currentA, currentPublicKeyA := createConsumerValidator(1, 1, 1) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: currentPublicKeyA, Power: 0}) + pkA, err := encoding.PubKeyFromProto(currentPublicKeyA) + require.NoError(t, err) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyBytes: pkA.Bytes(), PubKeyType: pkA.Type(), Power: 0}) // validator B exists in both `currentValidators` and `nextValidators` but it did not change its // power or consumer public key and hence no validator update is generated @@ -156,26 +159,37 @@ func TestDiff(t *testing.T) { // a validator update is generated with the new power currentC, currentPublicKeyC := createConsumerValidator(3, 1, 3) nextC, _ := createConsumerValidator(3, 2, 3) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: currentPublicKeyC, Power: 2}) + pkC, err := encoding.PubKeyFromProto(currentPublicKeyC) + require.NoError(t, err) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyType: pkC.Type(), PubKeyBytes: pkC.Bytes(), Power: 2}) // validator D exists in both `currentValidators` and `nextValidators` and it changes its consumer public key, so // a validator update is generated to remove the old public key and another update to add the new public key currentD, currentPublicKeyD := createConsumerValidator(4, 1, 4) nextD, nextPublicKeyD := createConsumerValidator(4, 1, 5) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: currentPublicKeyD, Power: 0}) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: nextPublicKeyD, Power: 1}) + currPKD, err := encoding.PubKeyFromProto(currentPublicKeyD) + require.NoError(t, err) + nextPKD, err := encoding.PubKeyFromProto(nextPublicKeyD) + require.NoError(t, err) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyType: currPKD.Type(), PubKeyBytes: currPKD.Bytes(), Power: 0}) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyType: nextPKD.Type(), PubKeyBytes: nextPKD.Bytes(), Power: 1}) // validator E exists in both `currentValidators` and `nextValidators` and it changes both its power and // its consumer public key, so a validator update is generated to remove the old public key and another update to // add the new public key with thew new power currentE, currentPublicKeyE := createConsumerValidator(5, 1, 6) nextE, nextPublicKeyE := createConsumerValidator(5, 2, 7) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: currentPublicKeyE, Power: 0}) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: nextPublicKeyE, Power: 2}) + currPKE, err := encoding.PubKeyFromProto(currentPublicKeyE) + require.NoError(t, err) + nextPKE, err := encoding.PubKeyFromProto(nextPublicKeyE) + require.NoError(t, err) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyType: currPKE.Type(), PubKeyBytes: currPKE.Bytes(), Power: 0}) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyType: nextPKE.Type(), PubKeyBytes: nextPKE.Bytes(), Power: 2}) // validator F does not exist in `currentValidators` and hence an update is generated to add this new validator nextF, nextPublicKeyF := createConsumerValidator(6, 1, 8) - expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKey: nextPublicKeyF, Power: 1}) + nextPKF, err := encoding.PubKeyFromProto(nextPublicKeyF) + expectedUpdates = append(expectedUpdates, abci.ValidatorUpdate{PubKeyType: nextPKF.Type(), PubKeyBytes: nextPKF.Bytes(), Power: 1}) currentValidators := []types.ConsensusValidator{currentA, currentB, currentC, currentD, currentE} nextValidators := []types.ConsensusValidator{nextB, nextC, nextD, nextE, nextF} @@ -188,7 +202,16 @@ func TestDiff(t *testing.T) { if updates[i].Power != updates[j].Power { return updates[i].Power < updates[j].Power } - return updates[i].PubKey.String() < updates[j].PubKey.String() + pkProtoI, err := encoding.PubKeyFromTypeAndBytes(updates[i].PubKeyType, updates[i].PubKeyBytes) + require.NoError(t, err) + + pkProtoJ, err := encoding.PubKeyFromTypeAndBytes(updates[i].PubKeyType, updates[i].PubKeyBytes) + require.NoError(t, err) + + pkI, err := encoding.PubKeyToProto(pkProtoI) + pkJ, err := encoding.PubKeyToProto(pkProtoJ) + + return pkI.String() < pkJ.String() }) } @@ -205,14 +228,21 @@ func TestDiffEdgeCases(t *testing.T) { valC, publicKeyC := createConsumerValidator(3, 3, 3) validators := []types.ConsensusValidator{valA, valB, valC} + pkA, err := encoding.PubKeyFromProto(publicKeyA) + require.NoError(t, err) + pkB, err := encoding.PubKeyFromProto(publicKeyB) + require.NoError(t, err) + pkC, err := encoding.PubKeyFromProto(publicKeyC) + require.NoError(t, err) + // we do not expect any validator updates if the `currentValidators` are the same with the `nextValidators` require.Empty(t, len(keeper.DiffValidators(validators, validators))) // only have `nextValidators` that would generate validator updates for the validators to be added expectedUpdates := []abci.ValidatorUpdate{ - {PubKey: publicKeyA, Power: 1}, - {PubKey: publicKeyB, Power: 2}, - {PubKey: publicKeyC, Power: 3}, + {PubKeyType: pkA.Type(), PubKeyBytes: pkA.Bytes(), Power: 1}, + {PubKeyType: pkB.Type(), PubKeyBytes: pkB.Bytes(), Power: 2}, + {PubKeyType: pkC.Type(), PubKeyBytes: pkC.Bytes(), Power: 3}, } actualUpdates := keeper.DiffValidators([]types.ConsensusValidator{}, validators) // sort validators first to be able to compare @@ -221,7 +251,17 @@ func TestDiffEdgeCases(t *testing.T) { if updates[i].Power != updates[j].Power { return updates[i].Power < updates[j].Power } - return updates[i].PubKey.String() < updates[j].PubKey.String() + pkI, err := encoding.PubKeyFromTypeAndBytes(updates[i].PubKeyType, updates[i].PubKeyBytes) + require.NoError(t, err) + pkJ, err := encoding.PubKeyFromTypeAndBytes(updates[j].PubKeyType, updates[j].PubKeyBytes) + require.NoError(t, err) + + pkIProto, err := encoding.PubKeyToProto(pkI) + require.NoError(t, err) + pkJProto, err := encoding.PubKeyToProto(pkJ) + require.NoError(t, err) + + return pkIProto.String() < pkJProto.String() }) } @@ -231,9 +271,9 @@ func TestDiffEdgeCases(t *testing.T) { // only have `currentValidators` that would generate validator updates for the validators to be removed expectedUpdates = []abci.ValidatorUpdate{ - {PubKey: publicKeyA, Power: 0}, - {PubKey: publicKeyB, Power: 0}, - {PubKey: publicKeyC, Power: 0}, + {PubKeyType: pkA.Type(), PubKeyBytes: pkA.Bytes(), Power: 0}, + {PubKeyType: pkB.Type(), PubKeyBytes: pkB.Bytes(), Power: 0}, + {PubKeyType: pkC.Type(), PubKeyBytes: pkC.Bytes(), Power: 0}, } actualUpdates = keeper.DiffValidators(validators, []types.ConsensusValidator{}) sortUpdates(expectedUpdates) @@ -243,8 +283,8 @@ func TestDiffEdgeCases(t *testing.T) { // have nonempty `currentValidators` and `nextValidators`, but with empty intersection // all old validators should be removed, all new validators should be added expectedUpdates = []abci.ValidatorUpdate{ - {PubKey: publicKeyA, Power: 0}, - {PubKey: publicKeyB, Power: 2}, + {PubKeyType: pkA.Type(), PubKeyBytes: pkA.Bytes(), Power: 0}, + {PubKeyType: pkB.Type(), PubKeyBytes: pkB.Bytes(), Power: 2}, } actualUpdates = keeper.DiffValidators(validators[0:1], validators[1:2]) sortUpdates(expectedUpdates) diff --git a/x/ccv/provider/migrations/v8/migrations_test.go b/x/ccv/provider/migrations/v8/migrations_test.go index be42e39221..91ad5f6d77 100644 --- a/x/ccv/provider/migrations/v8/migrations_test.go +++ b/x/ccv/provider/migrations/v8/migrations_test.go @@ -12,10 +12,9 @@ import ( "cosmossdk.io/math" storetypes "cosmossdk.io/store/types" + crypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cometbft/cometbft/proto/tendermint/crypto" - testutil "github.com/cosmos/interchain-security/v7/testutil/keeper" providerkeeper "github.com/cosmos/interchain-security/v7/x/ccv/provider/keeper" providertypes "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/x/ccv/provider/module.go b/x/ccv/provider/module.go index eb3dddc442..9868d7b1e7 100644 --- a/x/ccv/provider/module.go +++ b/x/ccv/provider/module.go @@ -19,7 +19,7 @@ import ( simtypes "github.com/cosmos/cosmos-sdk/types/simulation" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/provider/client/cli" "github.com/cosmos/interchain-security/v7/x/ccv/provider/keeper" diff --git a/x/ccv/provider/types/genesis_test.go b/x/ccv/provider/types/genesis_test.go index 0a54309bda..761e2620b1 100644 --- a/x/ccv/provider/types/genesis_test.go +++ b/x/ccv/provider/types/genesis_test.go @@ -13,8 +13,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/cometbft/cometbft/abci/types" - tmtypes "github.com/cometbft/cometbft/types" + abci "github.com/cometbft/cometbft/v2/abci/types" + tmtypes "github.com/cometbft/cometbft/v2/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" "github.com/cosmos/interchain-security/v7/x/ccv/provider/types" diff --git a/x/ccv/provider/types/legacy_proposal.go b/x/ccv/provider/types/legacy_proposal.go index 2baead2e81..e5a395b065 100644 --- a/x/ccv/provider/types/legacy_proposal.go +++ b/x/ccv/provider/types/legacy_proposal.go @@ -6,7 +6,7 @@ import ( clienttypes "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" - evidencetypes "cosmossdk.io/x/evidence/types" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) diff --git a/x/ccv/provider/types/msg.go b/x/ccv/provider/types/msg.go index 94a2b8199a..88e40ad818 100644 --- a/x/ccv/provider/types/msg.go +++ b/x/ccv/provider/types/msg.go @@ -14,8 +14,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - tmtypes "github.com/cometbft/cometbft/proto/tendermint/types" - cmttypes "github.com/cometbft/cometbft/types" + tmtypes "github.com/cometbft/cometbft/api/cometbft/types/v2" + cmttypes "github.com/cometbft/cometbft/v2/types" ccvtypes "github.com/cosmos/interchain-security/v7/x/ccv/types" ) diff --git a/x/ccv/provider/types/provider.pb.go b/x/ccv/provider/types/provider.pb.go index 992c8b2742..29a63722ea 100644 --- a/x/ccv/provider/types/provider.pb.go +++ b/x/ccv/provider/types/provider.pb.go @@ -5,13 +5,13 @@ package types import ( cosmossdk_io_math "cosmossdk.io/math" - types1 "cosmossdk.io/x/evidence/types" fmt "fmt" - crypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types2 "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" + types1 "github.com/cosmos/cosmos-sdk/x/evidence/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" @@ -44,18 +44,20 @@ type ConsumerPhase int32 const ( // UNSPECIFIED defines an empty phase. CONSUMER_PHASE_UNSPECIFIED ConsumerPhase = 0 - // REGISTERED defines the phase in which a consumer chain has been assigned a unique consumer id. - // A chain in this phase cannot yet launch. + // REGISTERED defines the phase in which a consumer chain has been assigned a + // unique consumer id. A chain in this phase cannot yet launch. CONSUMER_PHASE_REGISTERED ConsumerPhase = 1 - // INITIALIZED defines the phase in which a consumer chain has set all the needed parameters to launch but - // has not yet launched (e.g., because the `spawnTime` of the consumer chain has not yet been reached). + // INITIALIZED defines the phase in which a consumer chain has set all the + // needed parameters to launch but has not yet launched (e.g., because the + // `spawnTime` of the consumer chain has not yet been reached). CONSUMER_PHASE_INITIALIZED ConsumerPhase = 2 - // LAUNCHED defines the phase in which a consumer chain is running and consuming a subset of the validator - // set of the provider. + // LAUNCHED defines the phase in which a consumer chain is running and + // consuming a subset of the validator set of the provider. CONSUMER_PHASE_LAUNCHED ConsumerPhase = 3 // STOPPED defines the phase in which a previously-launched chain has stopped. CONSUMER_PHASE_STOPPED ConsumerPhase = 4 - // DELETED defines the phase in which the state of a stopped chain has been deleted. + // DELETED defines the phase in which the state of a stopped chain has been + // deleted. CONSUMER_PHASE_DELETED ConsumerPhase = 5 ) @@ -145,28 +147,37 @@ type ConsumerAdditionProposal struct { // chain. It is most relevant for chains performing a standalone to consumer // changeover in order to maintain the existing ibc transfer channel DistributionTransmissionChannel string `protobuf:"bytes,14,opt,name=distribution_transmission_channel,json=distributionTransmissionChannel,proto3" json:"distribution_transmission_channel,omitempty"` - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. Top_N uint32 `protobuf:"varint,15,opt,name=top_N,json=topN,proto3" json:"top_N,omitempty"` - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. ValidatorsPowerCap uint32 `protobuf:"varint,16,opt,name=validators_power_cap,json=validatorsPowerCap,proto3" json:"validators_power_cap,omitempty"` - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. ValidatorSetCap uint32 `protobuf:"varint,17,opt,name=validator_set_cap,json=validatorSetCap,proto3" json:"validator_set_cap,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. Allowlist []string `protobuf:"bytes,18,rep,name=allowlist,proto3" json:"allowlist,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. Denylist []string `protobuf:"bytes,19,rep,name=denylist,proto3" json:"denylist,omitempty"` - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. MinStake uint64 `protobuf:"varint,20,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. AllowInactiveVals bool `protobuf:"varint,21,opt,name=allow_inactive_vals,json=allowInactiveVals,proto3" json:"allow_inactive_vals,omitempty"` } @@ -284,8 +295,9 @@ func (m *ConsumerRemovalProposal) GetStopTime() time.Time { } // WARNING: This message is deprecated in favor of `MsgUpdateConsumer`. -// ConsumerModificationProposal is a governance proposal on the provider chain to modify parameters of a running -// consumer chain. If it passes, the consumer chain's state is updated to take into account the newest params. +// ConsumerModificationProposal is a governance proposal on the provider chain +// to modify parameters of a running consumer chain. If it passes, the consumer +// chain's state is updated to take into account the newest params. // // Deprecated: Do not use. type ConsumerModificationProposal struct { @@ -295,28 +307,37 @@ type ConsumerModificationProposal struct { Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // the chain-id of the consumer chain to be modified ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. Top_N uint32 `protobuf:"varint,4,opt,name=top_N,json=topN,proto3" json:"top_N,omitempty"` - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. ValidatorsPowerCap uint32 `protobuf:"varint,5,opt,name=validators_power_cap,json=validatorsPowerCap,proto3" json:"validators_power_cap,omitempty"` - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. ValidatorSetCap uint32 `protobuf:"varint,6,opt,name=validator_set_cap,json=validatorSetCap,proto3" json:"validator_set_cap,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. Allowlist []string `protobuf:"bytes,7,rep,name=allowlist,proto3" json:"allowlist,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. Denylist []string `protobuf:"bytes,8,rep,name=denylist,proto3" json:"denylist,omitempty"` - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. MinStake uint64 `protobuf:"varint,9,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. AllowInactiveVals bool `protobuf:"varint,10,opt,name=allow_inactive_vals,json=allowInactiveVals,proto3" json:"allow_inactive_vals,omitempty"` } @@ -428,7 +449,8 @@ func (m *ConsumerModificationProposal) GetAllowInactiveVals() bool { // // This type is only used internally to the consumer CCV module. // WARNING: This message is deprecated now that equivocations can be submitted -// and verified automatically on the provider. (see SubmitConsumerDoubleVoting in proto/interchain-security/ccv/provider/v1/tx.proto). +// and verified automatically on the provider. (see SubmitConsumerDoubleVoting +// in proto/interchain-security/ccv/provider/v1/tx.proto). // // Deprecated: Do not use. type EquivocationProposal struct { @@ -668,7 +690,8 @@ type Params struct { ConsumerRewardDenomRegistrationFee types2.Coin `protobuf:"bytes,9,opt,name=consumer_reward_denom_registration_fee,json=consumerRewardDenomRegistrationFee,proto3" json:"consumer_reward_denom_registration_fee"` // The number of blocks that comprise an epoch. BlocksPerEpoch int64 `protobuf:"varint,10,opt,name=blocks_per_epoch,json=blocksPerEpoch,proto3" json:"blocks_per_epoch,omitempty"` - // The number of epochs a validator has to validate a consumer chain in order to start receiving rewards from that chain. + // The number of epochs a validator has to validate a consumer chain in order + // to start receiving rewards from that chain. NumberOfEpochsToStartReceivingRewards int64 `protobuf:"varint,11,opt,name=number_of_epochs_to_start_receiving_rewards,json=numberOfEpochsToStartReceivingRewards,proto3" json:"number_of_epochs_to_start_receiving_rewards,omitempty"` // The maximal number of validators that will be passed // to the consensus engine on the provider. @@ -1058,9 +1081,9 @@ func (m *ValidatorSetChangePackets) GetList() []types3.ValidatorSetChangePacketD } type KeyAssignmentReplacement struct { - ProviderAddr []byte `protobuf:"bytes,1,opt,name=provider_addr,json=providerAddr,proto3" json:"provider_addr,omitempty"` - PrevCKey *crypto.PublicKey `protobuf:"bytes,2,opt,name=prev_c_key,json=prevCKey,proto3" json:"prev_c_key,omitempty"` - Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` + ProviderAddr []byte `protobuf:"bytes,1,opt,name=provider_addr,json=providerAddr,proto3" json:"provider_addr,omitempty"` + PrevCKey *v1.PublicKey `protobuf:"bytes,2,opt,name=prev_c_key,json=prevCKey,proto3" json:"prev_c_key,omitempty"` + Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` } func (m *KeyAssignmentReplacement) Reset() { *m = KeyAssignmentReplacement{} } @@ -1103,7 +1126,7 @@ func (m *KeyAssignmentReplacement) GetProviderAddr() []byte { return nil } -func (m *KeyAssignmentReplacement) GetPrevCKey() *crypto.PublicKey { +func (m *KeyAssignmentReplacement) GetPrevCKey() *v1.PublicKey { if m != nil { return m.PrevCKey } @@ -1121,9 +1144,9 @@ func (m *KeyAssignmentReplacement) GetPower() int64 { // ValidatorConsumerPubKey: (chainID, providerAddr consAddr) -> consumerKey // tmprotocrypto.PublicKey type ValidatorConsumerPubKey struct { - ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - ProviderAddr []byte `protobuf:"bytes,2,opt,name=provider_addr,json=providerAddr,proto3" json:"provider_addr,omitempty"` - ConsumerKey *crypto.PublicKey `protobuf:"bytes,3,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` + ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + ProviderAddr []byte `protobuf:"bytes,2,opt,name=provider_addr,json=providerAddr,proto3" json:"provider_addr,omitempty"` + ConsumerKey *v1.PublicKey `protobuf:"bytes,3,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` } func (m *ValidatorConsumerPubKey) Reset() { *m = ValidatorConsumerPubKey{} } @@ -1173,7 +1196,7 @@ func (m *ValidatorConsumerPubKey) GetProviderAddr() []byte { return nil } -func (m *ValidatorConsumerPubKey) GetConsumerKey() *crypto.PublicKey { +func (m *ValidatorConsumerPubKey) GetConsumerKey() *v1.PublicKey { if m != nil { return m.ConsumerKey } @@ -1244,7 +1267,8 @@ func (m *ValidatorByConsumerAddr) GetProviderAddr() []byte { } // Used to serialize the ConsumerAddrsToPruneV2 index from key assignment -// ConsumerAddrsToPruneV2: (chainID, pruneTs time.Time) -> consumerAddrs AddressList +// ConsumerAddrsToPruneV2: (chainID, pruneTs time.Time) -> consumerAddrs +// AddressList type ConsumerAddrsToPruneV2 struct { ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` PruneTs time.Time `protobuf:"bytes,2,opt,name=prune_ts,json=pruneTs,proto3,stdtime" json:"prune_ts"` @@ -1316,11 +1340,13 @@ type ConsensusValidator struct { // voting power the validator has during this epoch Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` // public key the validator uses on the consumer chain during this epoch - PublicKey *crypto.PublicKey `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` + PublicKey *v1.PublicKey `protobuf:"bytes,3,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` // height the validator had when it FIRST became a consumer validator - // If a validator becomes a consumer validator at height `H` and is continuously a consumer validator for all the upcoming - // epochs, then the height of the validator SHOULD remain `H`. This height only resets to a different height if a validator - // stops being a consumer validator during an epoch and later becomes again a consumer validator. + // If a validator becomes a consumer validator at height `H` and is + // continuously a consumer validator for all the upcoming epochs, then the + // height of the validator SHOULD remain `H`. This height only resets to a + // different height if a validator stops being a consumer validator during an + // epoch and later becomes again a consumer validator. JoinHeight int64 `protobuf:"varint,4,opt,name=join_height,json=joinHeight,proto3" json:"join_height,omitempty"` } @@ -1371,7 +1397,7 @@ func (m *ConsensusValidator) GetPower() int64 { return 0 } -func (m *ConsensusValidator) GetPublicKey() *crypto.PublicKey { +func (m *ConsensusValidator) GetPublicKey() *v1.PublicKey { if m != nil { return m.PublicKey } @@ -1386,8 +1412,8 @@ func (m *ConsensusValidator) GetJoinHeight() int64 { } // ConsumerRewardsAllocation stores the rewards allocated by a consumer chain -// to the consumer rewards pool. It is used to allocate the tokens to the consumer -// opted-in validators and the community pool during BeginBlock. +// to the consumer rewards pool. It is used to allocate the tokens to the +// consumer opted-in validators and the community pool during BeginBlock. type ConsumerRewardsAllocation struct { Rewards github_com_cosmos_cosmos_sdk_types.DecCoins `protobuf:"bytes,1,rep,name=rewards,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.DecCoins" json:"rewards"` } @@ -1545,7 +1571,8 @@ type ConsumerInitializationParameters struct { // channel will be established. If connection_id == "", a new client of the // consumer chain and a new connection on top of this client are created. // Note that a standalone chain can transition to a consumer chain while - // maintaining existing IBC channels to other chains by providing a valid connection_id. + // maintaining existing IBC channels to other chains by providing a valid + // connection_id. ConnectionId string `protobuf:"bytes,12,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` } @@ -1666,57 +1693,82 @@ func (m *ConsumerInitializationParameters) GetConnectionId() string { return "" } -// PowerShapingParameters contains parameters that shape the validator set that we send to the consumer chain +// PowerShapingParameters contains parameters that shape the validator set that +// we send to the consumer chain type PowerShapingParameters struct { - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. Top_N uint32 `protobuf:"varint,1,opt,name=top_N,json=topN,proto3" json:"top_N,omitempty"` - // `validators_power_cap` corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. - // For instance, if `validators_power_cap` is set to 32, no validator can have more than 32% of the total voting power of the - // consumer chain. The power cap is intended as a safeguard against a validator having too much power on the consumer - // chain and hence "taking over" the consumer chain. + // `validators_power_cap` corresponds to the maximum power (percentage-wise) a + // validator can have on the consumer chain. For instance, if + // `validators_power_cap` is set to 32, no validator can have more than 32% of + // the total voting power of the consumer chain. The power cap is intended as + // a safeguard against a validator having too much power on the consumer chain + // and hence "taking over" the consumer chain. // - // To respect this power cap, the voting powers of the validators that run the consumer chain are decremented or - // incremented accordingly. It is important to note that the voting powers of validators on the provider do **not** change. - // For example, assume that the provider chain has among others, validators `A`, `B`, `C`, and `D` with voting powers - // 100, 1, 1, 1 respectively. Assume that only those 4 validators opt in on a consumer chain. Without a power cap set, - // validator `A` would have 100 / (100 + 1 + 1 + 1) = ~97% of the total voting power on the consumer chain, while - // validators `B`, `C`, and `D` would have 1 /(100 + 1 + 1 + 1) = ~1% of the total voting power on the consumer chain. - // If `validators_power_cap` is set to 30%, then the voting power of `A` would be reduced from 100 to 30 on the consumer - // chain, the voting power of `B` would be increased from 1 to 25, and the power of `C` and `D` would be increased from - // 1 to 24. After those modifications, `A` would have 30 / (30 + 25 + 24 + 24) = ~29% of the total voting power of the - // consumer chain, `B` would have 25 / (30 + 25 + 24 + 24) = ~25%, and `C` and `D` would both have 24 / (30 + 25 + 24 + 24) = ~23%. - // Naturally, there are many ways to change the voting powers of validators to respect the power cap, and ICS chooses - // one of them (see the `NoMoreThanPercentOfTheSum` function). + // To respect this power cap, the voting powers of the validators that run the + // consumer chain are decremented or incremented accordingly. It is important + // to note that the voting powers of validators on the provider do **not** + // change. For example, assume that the provider chain has among others, + // validators `A`, `B`, `C`, and `D` with voting powers 100, 1, 1, 1 + // respectively. Assume that only those 4 validators opt in on a consumer + // chain. Without a power cap set, validator `A` would have 100 / (100 + 1 + 1 + // + 1) = ~97% of the total voting power on the consumer chain, while + // validators `B`, `C`, and `D` would have 1 /(100 + 1 + 1 + 1) = ~1% of the + // total voting power on the consumer chain. If `validators_power_cap` is set + // to 30%, then the voting power of `A` would be reduced from 100 to 30 on the + // consumer chain, the voting power of `B` would be increased from 1 to 25, + // and the power of `C` and `D` would be increased from 1 to 24. After those + // modifications, `A` would have 30 / (30 + 25 + 24 + 24) = ~29% of the total + // voting power of the consumer chain, `B` would have 25 / (30 + 25 + 24 + 24) + // = ~25%, and `C` and `D` would both have 24 / (30 + 25 + 24 + 24) = ~23%. + // Naturally, there are many ways to change the voting powers of validators to + // respect the power cap, and ICS chooses one of them (see the + // `NoMoreThanPercentOfTheSum` function). // - // Note that respecting `validators_power_cap` might NOT always be possible. For example, if we have a consumer - // chain with only 5 validators and `validators_power_cap` is set to 10%, then it is not possible to respect the - // `validators_power_cap`. If the voting power of each validator is capped to a maximum of 10% of the total consumer - // chain's voting power, then the total voting power of the consumer chain would add up to 50% which obviously does not - // make sense (percentages should add up to 100%). In cases where it is not feasible to respect the power cap, all - // validators on the consumer chain will have equal voting power in order to minimize the power of a single validator. - // Thus, in the example of 5 validators and a `validators_power_cap` set to 10%, all validators would end up having 20% - // of the total voting power on the consumer chain. Therefore, `validators_power_cap` operates on a best-effort basis. - // For more information on the power cap and other power-shaping parameters, please refer to the ICS docs and - // specifically `interchain-security/docs/docs/features/power-shaping.md`. + // Note that respecting `validators_power_cap` might NOT always be possible. + // For example, if we have a consumer chain with only 5 validators and + // `validators_power_cap` is set to 10%, then it is not possible to respect + // the `validators_power_cap`. If the voting power of each validator is capped + // to a maximum of 10% of the total consumer chain's voting power, then the + // total voting power of the consumer chain would add up to 50% which + // obviously does not make sense (percentages should add up to 100%). In cases + // where it is not feasible to respect the power cap, all validators on the + // consumer chain will have equal voting power in order to minimize the power + // of a single validator. Thus, in the example of 5 validators and a + // `validators_power_cap` set to 10%, all validators would end up having 20% + // of the total voting power on the consumer chain. Therefore, + // `validators_power_cap` operates on a best-effort basis. For more + // information on the power cap and other power-shaping parameters, please + // refer to the ICS docs and specifically + // `interchain-security/docs/docs/features/power-shaping.md`. ValidatorsPowerCap uint32 `protobuf:"varint,2,opt,name=validators_power_cap,json=validatorsPowerCap,proto3" json:"validators_power_cap,omitempty"` - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. ValidatorSetCap uint32 `protobuf:"varint,3,opt,name=validator_set_cap,json=validatorSetCap,proto3" json:"validator_set_cap,omitempty"` - // corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate the consumer chain + // corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain Allowlist []string `protobuf:"bytes,4,rep,name=allowlist,proto3" json:"allowlist,omitempty"` - // corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain + // corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain Denylist []string `protobuf:"bytes,5,rep,name=denylist,proto3" json:"denylist,omitempty"` - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. MinStake uint64 `protobuf:"varint,6,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. AllowInactiveVals bool `protobuf:"varint,7,opt,name=allow_inactive_vals,json=allowInactiveVals,proto3" json:"allow_inactive_vals,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that should have PRIORITY to validate on the consumer chain, - // meaning as long as they are eligible/opted in to validate on the consumer chain, the validator set will be - // filled with these validators first, and other validators will be added to the validator set only if there are - // not enough eligible priority validators. + // Corresponds to a list of provider consensus addresses of validators that + // should have PRIORITY to validate on the consumer chain, meaning as long as + // they are eligible/opted in to validate on the consumer chain, the validator + // set will be filled with these validators first, and other validators will + // be added to the validator set only if there are not enough eligible + // priority validators. Prioritylist []string `protobuf:"bytes,8,rep,name=prioritylist,proto3" json:"prioritylist,omitempty"` } @@ -1855,7 +1907,8 @@ func (m *ConsumerIds) GetIds() []string { return nil } -// AllowlistedRewardDenoms corresponds to the denoms allowlisted by a specific consumer id +// AllowlistedRewardDenoms corresponds to the denoms allowlisted by a specific +// consumer id type AllowlistedRewardDenoms struct { Denoms []string `protobuf:"bytes,1,rep,name=denoms,proto3" json:"denoms,omitempty"` } @@ -1954,7 +2007,8 @@ func (m *InfractionParameters) GetDowntime() *SlashJailParameters { type SlashJailParameters struct { SlashFraction cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=slash_fraction,json=slashFraction,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"slash_fraction"` - // for permanent jailing use 9223372036854775807 which is the largest value a time.Duration can hold (approximately 292 years) + // for permanent jailing use 9223372036854775807 which is the largest value a + // time.Duration can hold (approximately 292 years) JailDuration time.Duration `protobuf:"bytes,2,opt,name=jail_duration,json=jailDuration,proto3,stdduration" json:"jail_duration"` // Indicates whether the validator should be tombstoned when slashed Tombstone bool `protobuf:"varint,3,opt,name=tombstone,proto3" json:"tombstone,omitempty"` @@ -2042,160 +2096,161 @@ func init() { } var fileDescriptor_f22ec409a72b7b72 = []byte{ - // 2443 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x19, 0x4b, 0x6f, 0x1b, 0xc7, - 0x59, 0x2b, 0x52, 0x12, 0x39, 0xd4, 0x83, 0x1a, 0x29, 0x32, 0x25, 0x2b, 0x24, 0xbd, 0x69, 0x02, - 0x35, 0xae, 0xc9, 0x48, 0x01, 0x5a, 0xc3, 0x6d, 0x10, 0x50, 0x24, 0x63, 0xd1, 0x0f, 0x99, 0x5d, + // 2451 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x19, 0x4b, 0x6c, 0x1b, 0xc7, + 0x55, 0x2b, 0x52, 0x12, 0x39, 0xd4, 0x87, 0x1a, 0x29, 0x32, 0x25, 0xdb, 0x24, 0xbd, 0x69, 0x02, + 0x35, 0xae, 0xc9, 0x48, 0x01, 0x5a, 0x23, 0x4d, 0x90, 0x52, 0x24, 0x6d, 0xd1, 0x1f, 0x99, 0x5d, 0xd2, 0x0a, 0xea, 0xa2, 0x58, 0x0c, 0x77, 0x47, 0xe4, 0x44, 0xbb, 0x3b, 0xeb, 0x9d, 0x21, 0x65, - 0xf6, 0xd0, 0x73, 0x2e, 0x05, 0xd2, 0x5b, 0xd0, 0x4b, 0x03, 0xf4, 0x52, 0xf4, 0xd2, 0x1e, 0x82, - 0xfc, 0x80, 0x5e, 0x9a, 0x16, 0x28, 0x90, 0xf6, 0x54, 0x14, 0x85, 0x53, 0xd8, 0x87, 0x1e, 0x0a, - 0xb4, 0xe7, 0xde, 0x8a, 0x99, 0x7d, 0x70, 0xa9, 0x97, 0x69, 0xd8, 0xee, 0x45, 0xda, 0xf9, 0x5e, - 0xf3, 0x7d, 0x33, 0xdf, 0x73, 0x08, 0x76, 0x88, 0xc3, 0xb1, 0x67, 0xf4, 0x10, 0x71, 0x74, 0x86, - 0x8d, 0xbe, 0x47, 0xf8, 0xb0, 0x6c, 0x18, 0x83, 0xb2, 0xeb, 0xd1, 0x01, 0x31, 0xb1, 0x57, 0x1e, - 0x6c, 0x47, 0xdf, 0x25, 0xd7, 0xa3, 0x9c, 0xc2, 0x37, 0xce, 0xe0, 0x29, 0x19, 0xc6, 0xa0, 0x14, - 0xd1, 0x0d, 0xb6, 0x37, 0x96, 0x91, 0x4d, 0x1c, 0x5a, 0x96, 0x7f, 0x7d, 0xbe, 0x8d, 0xbc, 0x41, - 0x99, 0x4d, 0x59, 0xb9, 0x83, 0x18, 0x2e, 0x0f, 0xb6, 0x3b, 0x98, 0xa3, 0xed, 0xb2, 0x41, 0x89, - 0x13, 0xe0, 0xdf, 0x0a, 0xf0, 0x58, 0x08, 0x71, 0x8c, 0x11, 0x4d, 0x08, 0x08, 0xe8, 0xd6, 0x7d, - 0x3a, 0x5d, 0xae, 0xca, 0xfe, 0x22, 0x40, 0xad, 0x76, 0x69, 0x97, 0xfa, 0x70, 0xf1, 0x15, 0x6e, - 0xdc, 0xa5, 0xb4, 0x6b, 0xe1, 0xb2, 0x5c, 0x75, 0xfa, 0x87, 0x65, 0xb3, 0xef, 0x21, 0x4e, 0x68, - 0xb8, 0x71, 0xe1, 0x24, 0x9e, 0x13, 0x1b, 0x33, 0x8e, 0x6c, 0x37, 0x24, 0x20, 0x1d, 0xa3, 0x6c, - 0x50, 0x0f, 0x97, 0x0d, 0x8b, 0x60, 0x87, 0x8b, 0x43, 0xf1, 0xbf, 0x02, 0x82, 0xb2, 0x20, 0xb0, - 0x48, 0xb7, 0xc7, 0x7d, 0x30, 0x2b, 0x73, 0xec, 0x98, 0xd8, 0xb3, 0x89, 0x4f, 0x3c, 0x5a, 0x05, - 0x0c, 0x6f, 0x9e, 0x77, 0xee, 0x83, 0xed, 0xf2, 0x31, 0xf1, 0x42, 0x53, 0x37, 0x63, 0x62, 0x0c, - 0x6f, 0xe8, 0x72, 0x5a, 0x3e, 0xc2, 0xc3, 0xc0, 0x5a, 0xf5, 0xbf, 0x29, 0x90, 0xab, 0x52, 0x87, - 0xf5, 0x6d, 0xec, 0x55, 0x4c, 0x93, 0x08, 0x93, 0x9a, 0x1e, 0x75, 0x29, 0x43, 0x16, 0x5c, 0x05, - 0x33, 0x9c, 0x70, 0x0b, 0xe7, 0x94, 0xa2, 0xb2, 0x95, 0xd6, 0xfc, 0x05, 0x2c, 0x82, 0x8c, 0x89, - 0x99, 0xe1, 0x11, 0x57, 0x10, 0xe7, 0xa6, 0x25, 0x2e, 0x0e, 0x82, 0xeb, 0x20, 0xe5, 0xab, 0x45, - 0xcc, 0x5c, 0x42, 0xa2, 0xe7, 0xe4, 0xba, 0x61, 0xc2, 0x9b, 0x60, 0x91, 0x38, 0x84, 0x13, 0x64, - 0xe9, 0x3d, 0x2c, 0x8c, 0xcd, 0x25, 0x8b, 0xca, 0x56, 0x66, 0x67, 0xa3, 0x44, 0x3a, 0x46, 0x49, - 0x9c, 0x4f, 0x29, 0x38, 0x95, 0xc1, 0x76, 0x69, 0x4f, 0x52, 0xec, 0x26, 0xbf, 0x7c, 0x5c, 0x98, - 0xd2, 0x16, 0x02, 0x3e, 0x1f, 0x08, 0xaf, 0x80, 0xf9, 0x2e, 0x76, 0x30, 0x23, 0x4c, 0xef, 0x21, - 0xd6, 0xcb, 0xcd, 0x14, 0x95, 0xad, 0x79, 0x2d, 0x13, 0xc0, 0xf6, 0x10, 0xeb, 0xc1, 0x02, 0xc8, - 0x74, 0x88, 0x83, 0xbc, 0xa1, 0x4f, 0x31, 0x2b, 0x29, 0x80, 0x0f, 0x92, 0x04, 0x55, 0x00, 0x98, - 0x8b, 0x8e, 0x1d, 0x5d, 0x5c, 0x56, 0x6e, 0x2e, 0x50, 0xc4, 0xbf, 0xc9, 0x52, 0x78, 0x93, 0xa5, - 0x76, 0x78, 0x93, 0xbb, 0x29, 0xa1, 0xc8, 0x27, 0x5f, 0x17, 0x14, 0x2d, 0x2d, 0xf9, 0x04, 0x06, - 0xee, 0x83, 0x6c, 0xdf, 0xe9, 0x50, 0xc7, 0x24, 0x4e, 0x57, 0x77, 0xb1, 0x47, 0xa8, 0x99, 0x4b, - 0x49, 0x51, 0xeb, 0xa7, 0x44, 0xd5, 0x02, 0xa7, 0xf1, 0x25, 0x7d, 0x2a, 0x24, 0x2d, 0x45, 0xcc, - 0x4d, 0xc9, 0x0b, 0xbf, 0x0f, 0xa0, 0x61, 0x0c, 0xa4, 0x4a, 0xb4, 0xcf, 0x43, 0x89, 0xe9, 0xc9, - 0x25, 0x66, 0x0d, 0x63, 0xd0, 0xf6, 0xb9, 0x03, 0x91, 0x3f, 0x04, 0x97, 0xb8, 0x87, 0x1c, 0x76, - 0x88, 0xbd, 0x93, 0x72, 0xc1, 0xe4, 0x72, 0x5f, 0x0b, 0x65, 0x8c, 0x0b, 0xdf, 0x03, 0x45, 0x23, - 0x70, 0x20, 0xdd, 0xc3, 0x26, 0x61, 0xdc, 0x23, 0x9d, 0xbe, 0xe0, 0xd5, 0x0f, 0x3d, 0x64, 0x48, - 0x1f, 0xc9, 0x48, 0x27, 0xc8, 0x87, 0x74, 0xda, 0x18, 0xd9, 0x07, 0x01, 0x15, 0xbc, 0x07, 0xbe, - 0xd1, 0xb1, 0xa8, 0x71, 0xc4, 0x84, 0x72, 0xfa, 0x98, 0x24, 0xb9, 0xb5, 0x4d, 0x18, 0x13, 0xd2, - 0xe6, 0x8b, 0xca, 0x56, 0x42, 0xbb, 0xe2, 0xd3, 0x36, 0xb1, 0x57, 0x8b, 0x51, 0xb6, 0x63, 0x84, - 0xf0, 0x1a, 0x80, 0x3d, 0xc2, 0x38, 0xf5, 0x88, 0x81, 0x2c, 0x1d, 0x3b, 0xdc, 0x23, 0x98, 0xe5, - 0x16, 0x24, 0xfb, 0xf2, 0x08, 0x53, 0xf7, 0x11, 0xf0, 0x16, 0xb8, 0x72, 0xee, 0xa6, 0xba, 0xd1, - 0x43, 0x8e, 0x83, 0xad, 0xdc, 0xa2, 0x34, 0xa5, 0x60, 0x9e, 0xb3, 0x67, 0xd5, 0x27, 0x83, 0x2b, - 0x60, 0x86, 0x53, 0x57, 0xdf, 0xcf, 0x2d, 0x15, 0x95, 0xad, 0x05, 0x2d, 0xc9, 0xa9, 0xbb, 0x0f, - 0xdf, 0x01, 0xab, 0x03, 0x64, 0x11, 0x13, 0x71, 0xea, 0x31, 0xdd, 0xa5, 0xc7, 0xd8, 0xd3, 0x0d, - 0xe4, 0xe6, 0xb2, 0x92, 0x06, 0x8e, 0x70, 0x4d, 0x81, 0xaa, 0x22, 0x17, 0xbe, 0x0d, 0x96, 0x23, - 0xa8, 0xce, 0x30, 0x97, 0xe4, 0xcb, 0x92, 0x7c, 0x29, 0x42, 0xb4, 0x30, 0x17, 0xb4, 0x9b, 0x20, - 0x8d, 0x2c, 0x8b, 0x1e, 0x5b, 0x84, 0xf1, 0x1c, 0x2c, 0x26, 0xb6, 0xd2, 0xda, 0x08, 0x00, 0x37, - 0x40, 0xca, 0xc4, 0xce, 0x50, 0x22, 0x57, 0x24, 0x32, 0x5a, 0xc3, 0xcb, 0x20, 0x6d, 0x8b, 0x24, - 0xc2, 0xd1, 0x11, 0xce, 0xad, 0x16, 0x95, 0xad, 0xa4, 0x96, 0xb2, 0x89, 0xd3, 0x12, 0x6b, 0x58, - 0x02, 0x2b, 0x52, 0x8a, 0x4e, 0x1c, 0x71, 0x4f, 0x03, 0xac, 0x0f, 0x90, 0xc5, 0x72, 0xaf, 0x15, - 0x95, 0xad, 0x94, 0xb6, 0x2c, 0x51, 0x8d, 0x00, 0x73, 0x80, 0x2c, 0x76, 0x63, 0xeb, 0xe3, 0xcf, - 0x0a, 0x53, 0x9f, 0x7e, 0x56, 0x98, 0xfa, 0xe3, 0xe7, 0xd7, 0x36, 0x82, 0xcc, 0xda, 0xa5, 0x83, - 0x52, 0x90, 0x89, 0x4b, 0x55, 0xea, 0x70, 0xec, 0xf0, 0x9c, 0xa2, 0xfe, 0x59, 0x01, 0x97, 0xaa, - 0x91, 0x4b, 0xd8, 0x74, 0x80, 0xac, 0x57, 0x99, 0x7a, 0x2a, 0x20, 0xcd, 0xc4, 0x9d, 0xc8, 0x60, - 0x4f, 0x3e, 0x47, 0xb0, 0xa7, 0x04, 0x9b, 0x40, 0xdc, 0x28, 0x3e, 0xd3, 0xa6, 0xff, 0x4c, 0x83, - 0xcd, 0xd0, 0xa6, 0xbb, 0xd4, 0x24, 0x87, 0xc4, 0x40, 0xaf, 0x3a, 0xa7, 0x46, 0xbe, 0x96, 0x9c, - 0xc0, 0xd7, 0x66, 0x9e, 0xcf, 0xd7, 0x66, 0x27, 0xf0, 0xb5, 0xb9, 0x8b, 0x7c, 0x2d, 0x75, 0x91, - 0xaf, 0xa5, 0x27, 0xf3, 0x35, 0x70, 0x9e, 0xaf, 0x4d, 0xe7, 0x14, 0xf5, 0x17, 0x0a, 0x58, 0xad, - 0x3f, 0xec, 0x93, 0x01, 0x7d, 0x49, 0x27, 0x7d, 0x1b, 0x2c, 0xe0, 0x98, 0x3c, 0x96, 0x4b, 0x14, - 0x13, 0x5b, 0x99, 0x9d, 0x37, 0x4b, 0xc1, 0xc5, 0x47, 0xad, 0x44, 0x78, 0xfb, 0xf1, 0xdd, 0xb5, - 0x71, 0x5e, 0xa9, 0xe1, 0xef, 0x14, 0xb0, 0x21, 0xf2, 0x42, 0x17, 0x6b, 0xf8, 0x18, 0x79, 0x66, - 0x0d, 0x3b, 0xd4, 0x66, 0x2f, 0xac, 0xa7, 0x0a, 0x16, 0x4c, 0x29, 0x49, 0xe7, 0x54, 0x47, 0xa6, - 0x29, 0xf5, 0x94, 0x34, 0x02, 0xd8, 0xa6, 0x15, 0xd3, 0x84, 0x5b, 0x20, 0x3b, 0xa2, 0xf1, 0x44, - 0x8c, 0x09, 0xd7, 0x17, 0x64, 0x8b, 0x21, 0x99, 0x8c, 0x3c, 0x7c, 0x23, 0x7f, 0xb1, 0x6b, 0xab, - 0xff, 0x52, 0x40, 0xf6, 0xa6, 0x45, 0x3b, 0xc8, 0x6a, 0x59, 0x88, 0xf5, 0x44, 0xce, 0x1c, 0x8a, - 0x90, 0xf2, 0x70, 0x50, 0xac, 0xa4, 0xfa, 0x13, 0x87, 0x94, 0x60, 0x93, 0xe5, 0xf3, 0x7d, 0xb0, - 0x1c, 0x95, 0x8f, 0xc8, 0xc1, 0xa5, 0xb5, 0xbb, 0x2b, 0x4f, 0x1e, 0x17, 0x96, 0xc2, 0x60, 0xaa, - 0x4a, 0x67, 0xaf, 0x69, 0x4b, 0xc6, 0x18, 0xc0, 0x84, 0x79, 0x90, 0x21, 0x1d, 0x43, 0x67, 0xf8, - 0xa1, 0xee, 0xf4, 0x6d, 0x19, 0x1b, 0x49, 0x2d, 0x4d, 0x3a, 0x46, 0x0b, 0x3f, 0xdc, 0xef, 0xdb, - 0xf0, 0x5d, 0xb0, 0x16, 0x36, 0x95, 0xc2, 0x9b, 0x74, 0xc1, 0x2f, 0x8e, 0xcb, 0x93, 0xe1, 0x32, - 0xaf, 0xad, 0x84, 0xd8, 0x03, 0x64, 0x89, 0xcd, 0x2a, 0xa6, 0xe9, 0xa9, 0xff, 0x9e, 0x01, 0xb3, - 0x4d, 0xe4, 0x21, 0x9b, 0xc1, 0x36, 0x58, 0xe2, 0xd8, 0x76, 0x2d, 0xc4, 0xb1, 0xee, 0xb7, 0x26, - 0x81, 0xa5, 0x57, 0x65, 0xcb, 0x12, 0xef, 0xd8, 0x4a, 0xb1, 0x1e, 0x6d, 0xb0, 0x5d, 0xaa, 0x4a, - 0x68, 0x8b, 0x23, 0x8e, 0xb5, 0xc5, 0x50, 0x86, 0x0f, 0x84, 0xd7, 0x41, 0x8e, 0x7b, 0x7d, 0xc6, - 0x47, 0x4d, 0xc3, 0xa8, 0x5a, 0xfa, 0x77, 0xbd, 0x16, 0xe2, 0xfd, 0x3a, 0x1b, 0x55, 0xc9, 0xb3, - 0xfb, 0x83, 0xc4, 0x8b, 0xf4, 0x07, 0x26, 0xd8, 0x64, 0xe2, 0x52, 0x75, 0x1b, 0x73, 0x59, 0xc5, - 0x5d, 0x0b, 0x3b, 0x84, 0xf5, 0x42, 0xe1, 0xb3, 0x93, 0x0b, 0x5f, 0x97, 0x82, 0xee, 0x0a, 0x39, - 0x5a, 0x28, 0x26, 0xd8, 0xa5, 0x0a, 0xf2, 0x67, 0xef, 0x12, 0x19, 0x3e, 0x27, 0x0d, 0xbf, 0x7c, - 0x86, 0x88, 0xc8, 0x7a, 0x06, 0xde, 0x8a, 0x75, 0x1b, 0x22, 0x9a, 0x74, 0xe9, 0xc8, 0xba, 0x87, - 0xbb, 0xa2, 0x24, 0x23, 0xbf, 0xf1, 0xc0, 0x38, 0xea, 0x98, 0x02, 0x9f, 0x16, 0x13, 0x43, 0xcc, - 0xa9, 0x89, 0x13, 0xb4, 0x95, 0xea, 0xa8, 0x29, 0x89, 0x62, 0x53, 0x8b, 0xc9, 0xfa, 0x00, 0x63, - 0x11, 0x45, 0xb1, 0xc6, 0x04, 0xbb, 0xd4, 0xe8, 0xc9, 0x9c, 0x94, 0xd0, 0x16, 0xa3, 0x26, 0xa4, - 0x2e, 0xa0, 0xf0, 0x01, 0xb8, 0xea, 0xf4, 0xed, 0x0e, 0xf6, 0x74, 0x7a, 0xe8, 0x13, 0xca, 0xc8, - 0x63, 0x1c, 0x79, 0x5c, 0xf7, 0xb0, 0x81, 0xc9, 0x40, 0xdc, 0xb8, 0xaf, 0x39, 0x93, 0x7d, 0x51, - 0x42, 0x7b, 0xd3, 0x67, 0xb9, 0x77, 0x28, 0x65, 0xb0, 0x36, 0x6d, 0x09, 0x72, 0x2d, 0xa4, 0xf6, - 0x15, 0x63, 0xb0, 0x01, 0xae, 0xd8, 0xe8, 0x91, 0x1e, 0x39, 0xb3, 0x50, 0x1c, 0x3b, 0xac, 0xcf, - 0xf4, 0x51, 0x32, 0x0f, 0x7a, 0xa3, 0xbc, 0x8d, 0x1e, 0x35, 0x03, 0xba, 0x6a, 0x48, 0x76, 0x10, - 0x51, 0xdd, 0x4a, 0xa6, 0x92, 0xd9, 0x99, 0x5b, 0xc9, 0xd4, 0x4c, 0x76, 0xf6, 0x56, 0x32, 0x95, - 0xca, 0xa6, 0xd5, 0x6f, 0x82, 0xb4, 0x8c, 0xeb, 0x8a, 0x71, 0xc4, 0x64, 0x76, 0x37, 0x4d, 0x0f, - 0x33, 0x86, 0x59, 0x4e, 0x09, 0xb2, 0x7b, 0x08, 0x50, 0x39, 0x58, 0x3f, 0x6f, 0x62, 0x60, 0xf0, - 0x43, 0x30, 0xe7, 0x62, 0xd9, 0xce, 0x4a, 0xc6, 0xcc, 0xce, 0x7b, 0xa5, 0x09, 0x46, 0xbd, 0xd2, - 0x79, 0x02, 0xb5, 0x50, 0x9a, 0xea, 0x8d, 0xe6, 0x94, 0x13, 0xbd, 0x02, 0x83, 0x07, 0x27, 0x37, - 0xfd, 0xde, 0x73, 0x6d, 0x7a, 0x42, 0xde, 0x68, 0xcf, 0xab, 0x20, 0x53, 0xf1, 0xcd, 0xbe, 0x23, - 0x4a, 0xd7, 0xa9, 0x63, 0x99, 0x8f, 0x1f, 0xcb, 0x3e, 0x58, 0x0c, 0x9a, 0xbf, 0x36, 0x95, 0xb9, - 0x09, 0xbe, 0x0e, 0x40, 0xd0, 0x35, 0x8a, 0x9c, 0xe6, 0x67, 0xf7, 0x74, 0x00, 0x69, 0x98, 0x63, - 0x15, 0x7d, 0x7a, 0xac, 0xa2, 0xcb, 0xaa, 0x41, 0xc1, 0xfa, 0x41, 0xbc, 0xea, 0xca, 0x02, 0xd2, - 0x44, 0xc6, 0x11, 0xe6, 0x0c, 0x6a, 0x20, 0x29, 0xab, 0xab, 0x6f, 0xee, 0xf5, 0x73, 0xcd, 0x1d, - 0x6c, 0x97, 0xce, 0x13, 0x52, 0x43, 0x1c, 0x05, 0x31, 0x20, 0x65, 0xa9, 0x3f, 0x53, 0x40, 0xee, - 0x36, 0x1e, 0x56, 0x18, 0x23, 0x5d, 0xc7, 0xc6, 0x0e, 0x17, 0xd1, 0x87, 0x0c, 0x2c, 0x3e, 0xe1, - 0x1b, 0x60, 0x21, 0x72, 0x3c, 0x99, 0x3c, 0x15, 0x99, 0x3c, 0xe7, 0x43, 0xa0, 0x38, 0x27, 0x78, - 0x03, 0x00, 0xd7, 0xc3, 0x03, 0xdd, 0xd0, 0x8f, 0xf0, 0x50, 0xda, 0x94, 0xd9, 0xd9, 0x8c, 0x27, - 0x45, 0x7f, 0xfe, 0x2c, 0x35, 0xfb, 0x1d, 0x8b, 0x18, 0xb7, 0xf1, 0x50, 0x4b, 0x09, 0xfa, 0xea, - 0x6d, 0x3c, 0x14, 0x55, 0x50, 0x36, 0x29, 0x32, 0x93, 0x25, 0x34, 0x7f, 0xa1, 0xfe, 0x5c, 0x01, - 0x97, 0x22, 0x03, 0xc2, 0xfb, 0x6a, 0xf6, 0x3b, 0x82, 0x23, 0x7e, 0x7e, 0xca, 0x78, 0x47, 0x74, - 0x4a, 0xdb, 0xe9, 0x33, 0xb4, 0x7d, 0x1f, 0xcc, 0x47, 0xa9, 0x44, 0xe8, 0x9b, 0x98, 0x40, 0xdf, - 0x4c, 0xc8, 0x71, 0x1b, 0x0f, 0xd5, 0x9f, 0xc4, 0x74, 0xdb, 0x1d, 0xc6, 0x5c, 0xd8, 0x7b, 0x86, - 0x6e, 0xd1, 0xb6, 0x71, 0xdd, 0x8c, 0x38, 0xff, 0x29, 0x03, 0x12, 0xa7, 0x0d, 0x50, 0xff, 0xa4, - 0x80, 0xb5, 0xf8, 0xae, 0xac, 0x4d, 0x9b, 0x5e, 0xdf, 0xc1, 0x07, 0x3b, 0x17, 0xed, 0xff, 0x3e, - 0x48, 0xb9, 0x82, 0x4a, 0xe7, 0x2c, 0xb8, 0xa2, 0xc9, 0x4a, 0xf6, 0x9c, 0xe4, 0x6a, 0x8b, 0x10, - 0x5f, 0x1c, 0x33, 0x80, 0x05, 0x27, 0xf7, 0xce, 0x44, 0x41, 0x17, 0x0b, 0x28, 0x6d, 0x21, 0x6e, - 0x33, 0x53, 0xbf, 0x50, 0x00, 0x3c, 0x9d, 0xad, 0xe0, 0xb7, 0x00, 0x1c, 0xcb, 0x79, 0x71, 0xff, - 0xcb, 0xba, 0xb1, 0x2c, 0x27, 0x4f, 0x2e, 0xf2, 0xa3, 0xe9, 0x98, 0x1f, 0xc1, 0xef, 0x02, 0xe0, - 0xca, 0x4b, 0x9c, 0xf8, 0xa6, 0xd3, 0x6e, 0xf8, 0x09, 0x0b, 0x20, 0xf3, 0x11, 0x25, 0x4e, 0xfc, - 0xc1, 0x22, 0xa1, 0x01, 0x01, 0xf2, 0xdf, 0x22, 0xd4, 0x9f, 0x2a, 0xa3, 0x94, 0x18, 0x64, 0xeb, - 0x8a, 0x65, 0x05, 0x3d, 0x20, 0x74, 0xc1, 0x5c, 0x98, 0xef, 0xfd, 0x70, 0xdd, 0x3c, 0xb3, 0x26, - 0xd5, 0xb0, 0x21, 0xcb, 0xd2, 0x75, 0x71, 0xe2, 0xbf, 0xfe, 0xba, 0x70, 0xb5, 0x4b, 0x78, 0xaf, - 0xdf, 0x29, 0x19, 0xd4, 0x0e, 0x1e, 0xa8, 0x82, 0x7f, 0xd7, 0x98, 0x79, 0x54, 0xe6, 0x43, 0x17, - 0xb3, 0x90, 0x87, 0xfd, 0xea, 0x9f, 0xbf, 0x7d, 0x5b, 0xd1, 0xc2, 0x6d, 0x54, 0x13, 0x64, 0xa3, - 0x19, 0x04, 0x73, 0x64, 0x22, 0x8e, 0x20, 0x04, 0x49, 0x07, 0xd9, 0x61, 0x93, 0x29, 0xbf, 0x27, - 0xe8, 0x31, 0x37, 0x40, 0xca, 0x0e, 0x24, 0x04, 0x53, 0x47, 0xb4, 0x56, 0x7f, 0x33, 0x0b, 0x8a, - 0xe1, 0x36, 0x0d, 0xff, 0x6d, 0x86, 0xfc, 0xd8, 0x6f, 0xc1, 0x45, 0xe7, 0x24, 0xea, 0x37, 0x3b, - 0xe3, 0xbd, 0x47, 0x79, 0x39, 0xef, 0x3d, 0xd3, 0xcf, 0x7c, 0xef, 0x49, 0x3c, 0xe3, 0xbd, 0x27, - 0xf9, 0xf2, 0xde, 0x7b, 0x66, 0x5e, 0xfa, 0x7b, 0xcf, 0xec, 0x2b, 0x7a, 0xef, 0x99, 0xfb, 0xbf, - 0xbc, 0xf7, 0xa4, 0x5e, 0xea, 0x7b, 0x4f, 0xfa, 0xc5, 0xde, 0x7b, 0xc0, 0x0b, 0xbd, 0xf7, 0x64, - 0x26, 0x7b, 0xef, 0xf1, 0xb3, 0xba, 0x83, 0xa5, 0x65, 0x22, 0xeb, 0xce, 0x4b, 0xbe, 0xf9, 0x11, - 0xb0, 0x61, 0xaa, 0x5f, 0x4c, 0x83, 0x35, 0x39, 0x6e, 0xb7, 0x7a, 0xc8, 0x15, 0x1e, 0x30, 0x8a, - 0x93, 0x68, 0x86, 0x57, 0x26, 0x98, 0xe1, 0xa7, 0x9f, 0x6f, 0x86, 0x4f, 0x4c, 0x30, 0xc3, 0x27, - 0x2f, 0x9a, 0xe1, 0x67, 0x2e, 0x9a, 0xe1, 0x67, 0x27, 0x9b, 0xe1, 0xe7, 0xce, 0x99, 0xe1, 0xa1, - 0x0a, 0xe6, 0x5d, 0x8f, 0x50, 0x51, 0x2c, 0x62, 0x0f, 0x06, 0x63, 0x30, 0xb5, 0x00, 0x32, 0x51, - 0xa6, 0x31, 0x19, 0xcc, 0x82, 0x04, 0x31, 0xc3, 0xce, 0x54, 0x7c, 0xaa, 0xdb, 0xe0, 0x52, 0x25, - 0x54, 0x1d, 0x9b, 0xf1, 0x31, 0x1b, 0xae, 0x81, 0x59, 0x7f, 0xd4, 0x0d, 0xe8, 0x83, 0x95, 0xfa, - 0x7b, 0x05, 0xac, 0x36, 0x9c, 0xd0, 0x65, 0x63, 0x57, 0xf1, 0x03, 0x90, 0x31, 0x69, 0xbf, 0x63, - 0x61, 0x5d, 0x34, 0x42, 0x41, 0xbe, 0xba, 0x3e, 0x51, 0x71, 0x93, 0x2d, 0xf4, 0x2d, 0x44, 0xac, - 0x91, 0x38, 0x0d, 0xf8, 0xc2, 0x5a, 0xa4, 0xeb, 0xc0, 0x36, 0x48, 0x99, 0xf4, 0xd8, 0x91, 0xe9, - 0x67, 0xfa, 0x05, 0xe5, 0x46, 0x92, 0xd4, 0xbf, 0x2b, 0x60, 0xe5, 0x0c, 0x0a, 0xf8, 0x23, 0xb0, - 0xe8, 0x0f, 0x5c, 0x51, 0x5c, 0xca, 0xa2, 0xb9, 0xfb, 0x6d, 0x11, 0xe2, 0x7f, 0x7b, 0x5c, 0xb8, - 0xec, 0xd7, 0x13, 0x66, 0x1e, 0x95, 0x08, 0x2d, 0xdb, 0x88, 0xf7, 0x4a, 0x77, 0x70, 0x17, 0x19, - 0xc3, 0x1a, 0x36, 0xfe, 0xf2, 0xf9, 0x35, 0x10, 0x54, 0xa9, 0x1a, 0x36, 0xfc, 0xfa, 0xb2, 0x20, - 0xa5, 0x45, 0xe1, 0xbb, 0x07, 0x16, 0x3e, 0x42, 0xc4, 0xd2, 0xc3, 0x5f, 0x42, 0x02, 0x8b, 0x26, - 0xca, 0x2d, 0xf3, 0x82, 0x33, 0x84, 0x0b, 0x4f, 0xe4, 0xd4, 0xee, 0x30, 0x4e, 0x1d, 0x2c, 0xbd, - 0x35, 0xa5, 0x8d, 0x00, 0x6f, 0xff, 0x41, 0x01, 0x0b, 0x51, 0xeb, 0xd7, 0x43, 0x0c, 0xc3, 0x3c, - 0xd8, 0xa8, 0xde, 0xdb, 0x6f, 0xdd, 0xbf, 0x5b, 0xd7, 0xf4, 0xe6, 0x5e, 0xa5, 0x55, 0xd7, 0xef, - 0xef, 0xb7, 0x9a, 0xf5, 0x6a, 0xe3, 0x83, 0x46, 0xbd, 0x96, 0x9d, 0x82, 0xaf, 0x83, 0xf5, 0x13, - 0x78, 0xad, 0x7e, 0xb3, 0xd1, 0x6a, 0xd7, 0xb5, 0x7a, 0x2d, 0xab, 0x9c, 0xc1, 0xde, 0xd8, 0x6f, - 0xb4, 0x1b, 0x95, 0x3b, 0x8d, 0x07, 0xf5, 0x5a, 0x76, 0x1a, 0x5e, 0x06, 0x97, 0x4e, 0xe0, 0xef, - 0x54, 0xee, 0xef, 0x57, 0xf7, 0xea, 0xb5, 0x6c, 0x02, 0x6e, 0x80, 0xb5, 0x13, 0xc8, 0x56, 0xfb, - 0x5e, 0xb3, 0x59, 0xaf, 0x65, 0x93, 0x67, 0xe0, 0x6a, 0xf5, 0x3b, 0xf5, 0x76, 0xbd, 0x96, 0x9d, - 0xd9, 0x48, 0x7e, 0xfc, 0xcb, 0xfc, 0xd4, 0xee, 0x87, 0x5f, 0x3e, 0xc9, 0x2b, 0x5f, 0x3d, 0xc9, - 0x2b, 0xff, 0x78, 0x92, 0x57, 0x3e, 0x79, 0x9a, 0x9f, 0xfa, 0xea, 0x69, 0x7e, 0xea, 0xaf, 0x4f, - 0xf3, 0x53, 0x0f, 0xde, 0x3b, 0x5d, 0xee, 0x47, 0x9e, 0x71, 0x2d, 0xfa, 0x7d, 0x67, 0xf0, 0x9d, - 0xf2, 0xa3, 0xf1, 0x1f, 0xd7, 0x64, 0x27, 0xd0, 0x99, 0x95, 0xa7, 0xfd, 0xee, 0xff, 0x02, 0x00, - 0x00, 0xff, 0xff, 0xa2, 0x6c, 0x24, 0x24, 0x8d, 0x1b, 0x00, 0x00, + 0xf6, 0xd0, 0x73, 0x2e, 0x05, 0x82, 0x9e, 0x02, 0xf4, 0xd0, 0x00, 0xbd, 0x14, 0xbd, 0xb4, 0x87, + 0xa0, 0xbd, 0xf7, 0xd2, 0xb4, 0x40, 0x81, 0xb4, 0xa7, 0xa2, 0x28, 0x9c, 0xc2, 0x3e, 0xf4, 0x50, + 0xa0, 0x3d, 0xf7, 0x56, 0xcc, 0xec, 0x87, 0x4b, 0xfd, 0x4c, 0xc3, 0x76, 0x2f, 0xd2, 0xce, 0xfb, + 0xcd, 0x7b, 0x33, 0xef, 0x3b, 0x04, 0xdb, 0xc4, 0xe1, 0xd8, 0x33, 0x7a, 0x88, 0x38, 0x3a, 0xc3, + 0x46, 0xdf, 0x23, 0x7c, 0x58, 0x36, 0x8c, 0x41, 0xd9, 0xf5, 0xe8, 0x80, 0x98, 0xd8, 0x2b, 0x0f, + 0xb6, 0xa2, 0xef, 0x92, 0xeb, 0x51, 0x4e, 0xe1, 0xeb, 0xa7, 0xf0, 0x94, 0x0c, 0x63, 0x50, 0x8a, + 0xe8, 0x06, 0x5b, 0x1b, 0xcb, 0xc8, 0x26, 0x0e, 0x2d, 0xcb, 0xbf, 0x3e, 0xdf, 0x46, 0xde, 0xa0, + 0xcc, 0xa6, 0xac, 0xdc, 0x41, 0x0c, 0x97, 0x07, 0x5b, 0x1d, 0xcc, 0xd1, 0x56, 0xd9, 0xa0, 0xc4, + 0x09, 0xf0, 0x6f, 0x06, 0x78, 0x2c, 0x84, 0x38, 0xc6, 0x88, 0x26, 0x04, 0x04, 0x74, 0xeb, 0x3e, + 0x9d, 0x2e, 0x57, 0x65, 0x7f, 0x11, 0xa0, 0x56, 0xbb, 0xb4, 0x4b, 0x7d, 0xb8, 0xf8, 0x0a, 0x37, + 0xee, 0x52, 0xda, 0xb5, 0x70, 0x59, 0xae, 0x3a, 0xfd, 0x83, 0xb2, 0xd9, 0xf7, 0x10, 0x27, 0x34, + 0xdc, 0xb8, 0x70, 0x1c, 0xcf, 0x89, 0x8d, 0x19, 0x47, 0xb6, 0x1b, 0x12, 0x90, 0x8e, 0x51, 0x36, + 0xa8, 0x87, 0xcb, 0x86, 0x45, 0xb0, 0xc3, 0xc5, 0xa1, 0xf8, 0x5f, 0x01, 0x41, 0x59, 0x10, 0x58, + 0xa4, 0xdb, 0xe3, 0x3e, 0x98, 0x95, 0x39, 0x76, 0x4c, 0xec, 0xd9, 0xc4, 0x27, 0x1e, 0xad, 0x02, + 0x86, 0x37, 0xce, 0x3a, 0xf7, 0xc1, 0x56, 0xf9, 0x88, 0x78, 0xa1, 0xa9, 0x97, 0x0d, 0x6a, 0x63, + 0xde, 0x39, 0xe0, 0x65, 0xc3, 0x1b, 0xba, 0x9c, 0x0a, 0xf4, 0x21, 0x1e, 0x06, 0xe6, 0xaa, 0xff, + 0x4d, 0x81, 0x5c, 0x95, 0x3a, 0xac, 0x6f, 0x63, 0xaf, 0x62, 0x9a, 0x44, 0xd8, 0xd4, 0xf4, 0xa8, + 0x4b, 0x19, 0xb2, 0xe0, 0x2a, 0x98, 0xe1, 0x84, 0x5b, 0x38, 0xa7, 0x14, 0x95, 0xcd, 0xb4, 0xe6, + 0x2f, 0x60, 0x11, 0x64, 0x4c, 0xcc, 0x0c, 0x8f, 0xb8, 0x82, 0x38, 0x37, 0x2d, 0x71, 0x71, 0x10, + 0x5c, 0x07, 0x29, 0x5f, 0x2f, 0x62, 0xe6, 0x12, 0x12, 0x3d, 0x27, 0xd7, 0x0d, 0x13, 0xde, 0x04, + 0x8b, 0xc4, 0x21, 0x9c, 0x20, 0x4b, 0xef, 0x61, 0x61, 0x6d, 0x2e, 0x59, 0x54, 0x36, 0x33, 0xdb, + 0x1b, 0x25, 0xd2, 0x31, 0x4a, 0xe2, 0x80, 0x4a, 0xc1, 0xb1, 0x0c, 0xb6, 0x4a, 0xbb, 0x92, 0x62, + 0x27, 0xf9, 0xc5, 0xe3, 0xc2, 0x94, 0xb6, 0x10, 0xf0, 0xf9, 0x40, 0x78, 0x05, 0xcc, 0x77, 0xb1, + 0x83, 0x19, 0x61, 0x7a, 0x0f, 0xb1, 0x5e, 0x6e, 0xa6, 0xa8, 0x6c, 0xce, 0x6b, 0x99, 0x00, 0xb6, + 0x8b, 0x58, 0x0f, 0x16, 0x40, 0xa6, 0x43, 0x1c, 0xe4, 0x0d, 0x7d, 0x8a, 0x59, 0x49, 0x01, 0x7c, + 0x90, 0x24, 0xa8, 0x02, 0xc0, 0x5c, 0x74, 0xe4, 0xe8, 0xe2, 0xb6, 0x72, 0x73, 0x81, 0x22, 0xfe, + 0x55, 0x96, 0xc2, 0xab, 0x2c, 0xb5, 0xc3, 0xab, 0xdc, 0x49, 0x09, 0x45, 0x3e, 0xf9, 0xaa, 0xa0, + 0x68, 0x69, 0xc9, 0x27, 0x30, 0x70, 0x0f, 0x64, 0xfb, 0x4e, 0x87, 0x3a, 0x26, 0x71, 0xba, 0xba, + 0x8b, 0x3d, 0x42, 0xcd, 0x5c, 0x4a, 0x8a, 0x5a, 0x3f, 0x21, 0xaa, 0x16, 0x78, 0x8d, 0x2f, 0xe9, + 0x53, 0x21, 0x69, 0x29, 0x62, 0x6e, 0x4a, 0x5e, 0xf8, 0x5d, 0x00, 0x0d, 0x63, 0x20, 0x55, 0xa2, + 0x7d, 0x1e, 0x4a, 0x4c, 0x4f, 0x2e, 0x31, 0x6b, 0x18, 0x83, 0xb6, 0xcf, 0x1d, 0x88, 0xfc, 0x3e, + 0xb8, 0xc0, 0x3d, 0xe4, 0xb0, 0x03, 0xec, 0x1d, 0x97, 0x0b, 0x26, 0x97, 0xfb, 0x5a, 0x28, 0x63, + 0x5c, 0xf8, 0x2e, 0x28, 0x1a, 0x81, 0x03, 0xe9, 0x1e, 0x36, 0x09, 0xe3, 0x1e, 0xe9, 0xf4, 0x05, + 0xaf, 0x7e, 0xe0, 0x21, 0x43, 0xfa, 0x48, 0x46, 0x3a, 0x41, 0x3e, 0xa4, 0xd3, 0xc6, 0xc8, 0x6e, + 0x04, 0x54, 0xf0, 0x1e, 0xf8, 0x5a, 0xc7, 0xa2, 0xc6, 0x21, 0x13, 0xca, 0xe9, 0x63, 0x92, 0xe4, + 0xd6, 0x36, 0x61, 0x4c, 0x48, 0x9b, 0x2f, 0x2a, 0x9b, 0x09, 0xed, 0x8a, 0x4f, 0xdb, 0xc4, 0x5e, + 0x2d, 0x46, 0xd9, 0x8e, 0x11, 0xc2, 0x6b, 0x00, 0xf6, 0x08, 0xe3, 0xd4, 0x23, 0x06, 0xb2, 0x74, + 0xec, 0x70, 0x8f, 0x60, 0x96, 0x5b, 0x90, 0xec, 0xcb, 0x23, 0x4c, 0xdd, 0x47, 0xc0, 0x5b, 0xe0, + 0xca, 0x99, 0x9b, 0xea, 0x46, 0x0f, 0x39, 0x0e, 0xb6, 0x72, 0x8b, 0xd2, 0x94, 0x82, 0x79, 0xc6, + 0x9e, 0x55, 0x9f, 0x0c, 0xae, 0x80, 0x19, 0x4e, 0x5d, 0x7d, 0x2f, 0xb7, 0x54, 0x54, 0x36, 0x17, + 0xb4, 0x24, 0xa7, 0xee, 0x1e, 0x7c, 0x1b, 0xac, 0x0e, 0x90, 0x45, 0x4c, 0xc4, 0xa9, 0xc7, 0x74, + 0x97, 0x1e, 0x61, 0x4f, 0x37, 0x90, 0x9b, 0xcb, 0x4a, 0x1a, 0x38, 0xc2, 0x35, 0x05, 0xaa, 0x8a, + 0x5c, 0xf8, 0x16, 0x58, 0x8e, 0xa0, 0x3a, 0xc3, 0x5c, 0x92, 0x2f, 0x4b, 0xf2, 0xa5, 0x08, 0xd1, + 0xc2, 0x5c, 0xd0, 0x5e, 0x02, 0x69, 0x64, 0x59, 0xf4, 0xc8, 0x22, 0x8c, 0xe7, 0x60, 0x31, 0xb1, + 0x99, 0xd6, 0x46, 0x00, 0xb8, 0x01, 0x52, 0x26, 0x76, 0x86, 0x12, 0xb9, 0x22, 0x91, 0xd1, 0x1a, + 0x5e, 0x04, 0x69, 0x5b, 0x64, 0x11, 0x8e, 0x0e, 0x71, 0x6e, 0xb5, 0xa8, 0x6c, 0x26, 0xb5, 0x94, + 0x4d, 0x9c, 0x96, 0x58, 0xc3, 0x12, 0x58, 0x91, 0x52, 0x74, 0xe2, 0x88, 0x7b, 0x1a, 0x60, 0x7d, + 0x80, 0x2c, 0x96, 0x7b, 0xad, 0xa8, 0x6c, 0xa6, 0xb4, 0x65, 0x89, 0x6a, 0x04, 0x98, 0x7d, 0x64, + 0xb1, 0x77, 0x37, 0x3f, 0xfe, 0xac, 0x30, 0xf5, 0xe9, 0x67, 0x85, 0xa9, 0x3f, 0x7e, 0x7e, 0x6d, + 0x23, 0x48, 0xad, 0x5d, 0x3a, 0x28, 0x05, 0xa9, 0xb8, 0x54, 0xa5, 0x0e, 0xc7, 0x0e, 0xcf, 0x29, + 0xea, 0x9f, 0x15, 0x70, 0xa1, 0x1a, 0xb9, 0x84, 0x4d, 0x07, 0xc8, 0x7a, 0x95, 0xa9, 0xa7, 0x02, + 0xd2, 0x4c, 0xdc, 0x89, 0x0c, 0xf6, 0xe4, 0x73, 0x04, 0x7b, 0x4a, 0xb0, 0x09, 0xc4, 0xbb, 0xc5, + 0x67, 0xda, 0xf4, 0x9f, 0x69, 0x70, 0x29, 0xb4, 0xe9, 0x2e, 0x35, 0xc9, 0x01, 0x31, 0xd0, 0xab, + 0xce, 0xa9, 0x91, 0xaf, 0x25, 0x27, 0xf0, 0xb5, 0x99, 0xe7, 0xf3, 0xb5, 0xd9, 0x09, 0x7c, 0x6d, + 0xee, 0x3c, 0x5f, 0x4b, 0x9d, 0xe7, 0x6b, 0xe9, 0xc9, 0x7c, 0x0d, 0x9c, 0xe5, 0x6b, 0xd3, 0x39, + 0x45, 0xfd, 0x99, 0x02, 0x56, 0xeb, 0x0f, 0xfb, 0x64, 0x40, 0x5f, 0xd2, 0x49, 0xdf, 0x06, 0x0b, + 0x38, 0x26, 0x8f, 0xe5, 0x12, 0xc5, 0xc4, 0x66, 0x66, 0xfb, 0x8d, 0x52, 0x70, 0xf1, 0x51, 0x2f, + 0x11, 0xde, 0x7e, 0x7c, 0x77, 0x6d, 0x9c, 0x57, 0x6a, 0xf8, 0x3b, 0x05, 0x6c, 0x88, 0xbc, 0xd0, + 0xc5, 0x1a, 0x3e, 0x42, 0x9e, 0x59, 0xc3, 0x0e, 0xb5, 0xd9, 0x0b, 0xeb, 0xa9, 0x82, 0x05, 0x53, + 0x4a, 0xd2, 0x39, 0xd5, 0x91, 0x69, 0x4a, 0x3d, 0x25, 0x8d, 0x00, 0xb6, 0x69, 0xc5, 0x34, 0xe1, + 0x26, 0xc8, 0x8e, 0x68, 0x3c, 0x11, 0x63, 0xc2, 0xf5, 0x05, 0xd9, 0x62, 0x48, 0x26, 0x23, 0x0f, + 0xbf, 0x9b, 0x3f, 0xdf, 0xb5, 0xd5, 0x7f, 0x29, 0x20, 0x7b, 0xd3, 0xa2, 0x1d, 0x64, 0xb5, 0x2c, + 0xc4, 0x7a, 0x22, 0x67, 0x0e, 0x45, 0x48, 0x79, 0x38, 0x28, 0x56, 0x52, 0xfd, 0x89, 0x43, 0x4a, + 0xb0, 0xc9, 0xf2, 0xf9, 0x01, 0x58, 0x8e, 0xca, 0x47, 0xe4, 0xe0, 0xd2, 0xda, 0x9d, 0x95, 0x27, + 0x8f, 0x0b, 0x4b, 0x61, 0x30, 0x55, 0xa5, 0xb3, 0xd7, 0xb4, 0x25, 0x63, 0x0c, 0x60, 0xc2, 0x3c, + 0xc8, 0x90, 0x8e, 0xa1, 0x33, 0xfc, 0x50, 0x77, 0xfa, 0xb6, 0x8c, 0x8d, 0xa4, 0x96, 0x26, 0x1d, + 0xa3, 0x85, 0x1f, 0xee, 0xf5, 0x6d, 0xf8, 0x0e, 0x58, 0x0b, 0xbb, 0x4a, 0xe1, 0x4d, 0xba, 0xe0, + 0x17, 0xc7, 0xe5, 0xc9, 0x70, 0x99, 0xd7, 0x56, 0x42, 0xec, 0x3e, 0xb2, 0xc4, 0x66, 0x15, 0xd3, + 0xf4, 0xd4, 0x7f, 0xcf, 0x80, 0xd9, 0x26, 0xf2, 0x90, 0xcd, 0x60, 0x1b, 0x2c, 0x71, 0x6c, 0xbb, + 0x16, 0xe2, 0x58, 0xf7, 0x5b, 0x93, 0xc0, 0xd2, 0xab, 0xb2, 0x65, 0x89, 0xb7, 0x6c, 0xa5, 0x58, + 0x93, 0x36, 0xd8, 0x2a, 0x55, 0x25, 0xb4, 0xc5, 0x11, 0xc7, 0xda, 0x62, 0x28, 0xc3, 0x07, 0xc2, + 0xeb, 0x20, 0xc7, 0xbd, 0x3e, 0xe3, 0xa3, 0xa6, 0x61, 0x54, 0x2d, 0xfd, 0xbb, 0x5e, 0x0b, 0xf1, + 0x7e, 0x9d, 0x8d, 0xaa, 0xe4, 0xe9, 0xfd, 0x41, 0xe2, 0x45, 0xfa, 0x03, 0x13, 0x5c, 0x62, 0xe2, + 0x52, 0x75, 0x1b, 0x73, 0x59, 0xc5, 0x5d, 0x0b, 0x3b, 0x84, 0xf5, 0x42, 0xe1, 0xb3, 0x93, 0x0b, + 0x5f, 0x97, 0x82, 0xee, 0x0a, 0x39, 0x5a, 0x28, 0x26, 0xd8, 0xa5, 0x0a, 0xf2, 0xa7, 0xef, 0x12, + 0x19, 0x3e, 0x27, 0x0d, 0xbf, 0x78, 0x8a, 0x88, 0xc8, 0x7a, 0x06, 0xde, 0x8c, 0x75, 0x1b, 0x22, + 0x9a, 0x74, 0xe9, 0xc8, 0xba, 0x87, 0xbb, 0xa2, 0x24, 0x23, 0xbf, 0xf1, 0xc0, 0x38, 0xea, 0x98, + 0x02, 0x9f, 0x16, 0x23, 0x43, 0xcc, 0xa9, 0x89, 0x13, 0xb4, 0x95, 0xea, 0xa8, 0x29, 0x89, 0x62, + 0x53, 0x8b, 0xc9, 0xba, 0x81, 0xb1, 0x88, 0xa2, 0x58, 0x63, 0x82, 0x5d, 0x6a, 0xf4, 0x64, 0x4e, + 0x4a, 0x68, 0x8b, 0x51, 0x13, 0x52, 0x17, 0x50, 0xf8, 0x00, 0x5c, 0x75, 0xfa, 0x76, 0x07, 0x7b, + 0x3a, 0x3d, 0xf0, 0x09, 0x65, 0xe4, 0x31, 0x8e, 0x3c, 0xae, 0x7b, 0xd8, 0xc0, 0x64, 0x20, 0x6e, + 0xdc, 0xd7, 0x9c, 0xc9, 0xbe, 0x28, 0xa1, 0xbd, 0xe1, 0xb3, 0xdc, 0x3b, 0x90, 0x32, 0x58, 0x9b, + 0xb6, 0x04, 0xb9, 0x16, 0x52, 0xfb, 0x8a, 0x31, 0xd8, 0x00, 0x57, 0x6c, 0xf4, 0x48, 0x8f, 0x9c, + 0x59, 0x28, 0x8e, 0x1d, 0xd6, 0x67, 0xfa, 0x28, 0x99, 0x07, 0xbd, 0x51, 0xde, 0x46, 0x8f, 0x9a, + 0x01, 0x5d, 0x35, 0x24, 0xdb, 0x8f, 0xa8, 0x6e, 0x25, 0x53, 0xc9, 0xec, 0xcc, 0xad, 0x64, 0x6a, + 0x26, 0x3b, 0x7b, 0x2b, 0x99, 0x4a, 0x65, 0xd3, 0xea, 0xd7, 0x41, 0x5a, 0xc6, 0x75, 0xc5, 0x38, + 0x64, 0x32, 0xbb, 0x9b, 0xa6, 0x87, 0x19, 0xc3, 0x2c, 0xa7, 0x04, 0xd9, 0x3d, 0x04, 0xa8, 0x1c, + 0xac, 0x9f, 0x35, 0x31, 0x30, 0xf8, 0x21, 0x98, 0x73, 0xb1, 0x6c, 0x67, 0x25, 0x63, 0x66, 0xfb, + 0xfd, 0xd2, 0x04, 0xb3, 0x5e, 0xe9, 0x2c, 0x81, 0x5a, 0x28, 0x4d, 0xf5, 0x46, 0x73, 0xca, 0xb1, + 0x5e, 0x81, 0xc1, 0xfd, 0xe3, 0x9b, 0xbe, 0xf7, 0x5c, 0x9b, 0x1e, 0x93, 0x37, 0xda, 0xf3, 0x2a, + 0xc8, 0x54, 0x7c, 0xb3, 0xef, 0x88, 0xd2, 0x75, 0xe2, 0x58, 0xe6, 0xe3, 0xc7, 0xb2, 0x07, 0x16, + 0x83, 0xe6, 0xaf, 0x4d, 0x65, 0x6e, 0x82, 0x97, 0x01, 0x08, 0xba, 0x46, 0x91, 0xd3, 0xfc, 0xec, + 0x9e, 0x0e, 0x20, 0x0d, 0x73, 0xac, 0xa2, 0x4f, 0x8f, 0x55, 0x74, 0x59, 0x35, 0x28, 0x58, 0xdf, + 0x8f, 0x57, 0x5d, 0x59, 0x40, 0x9a, 0xc8, 0x38, 0xc4, 0x9c, 0x41, 0x0d, 0x24, 0x65, 0x75, 0xf5, + 0xcd, 0xbd, 0x7e, 0xa6, 0xb9, 0x83, 0xad, 0xd2, 0x59, 0x42, 0x6a, 0x88, 0xa3, 0x20, 0x06, 0xa4, + 0x2c, 0xf5, 0x27, 0x0a, 0xc8, 0xdd, 0xc6, 0xc3, 0x0a, 0x63, 0xa4, 0xeb, 0xd8, 0xd8, 0xe1, 0x22, + 0xfa, 0x90, 0x81, 0xc5, 0x27, 0x7c, 0x1d, 0x2c, 0x44, 0x8e, 0x27, 0x93, 0xa7, 0x22, 0x93, 0xe7, + 0x7c, 0x08, 0x14, 0xe7, 0x04, 0xbf, 0x0d, 0x80, 0xeb, 0xe1, 0x81, 0x6e, 0xe8, 0x87, 0x78, 0x28, + 0x6d, 0xca, 0x6c, 0x5f, 0x2e, 0x85, 0x03, 0x68, 0xc9, 0x1f, 0x40, 0x85, 0x4e, 0xcd, 0x7e, 0xc7, + 0x22, 0xc6, 0x6d, 0x3c, 0xd4, 0x52, 0x82, 0xa1, 0x7a, 0x1b, 0x0f, 0x45, 0x19, 0x94, 0x5d, 0x8a, + 0x4c, 0x65, 0x09, 0xcd, 0x5f, 0xa8, 0x3f, 0x55, 0xc0, 0x85, 0xc8, 0x82, 0xf0, 0xc2, 0x9a, 0xfd, + 0x8e, 0xe0, 0x88, 0x1f, 0xa0, 0x32, 0xde, 0x12, 0x9d, 0x50, 0x77, 0xfa, 0x14, 0x75, 0xbf, 0x03, + 0xe6, 0xa3, 0x5c, 0x22, 0x14, 0x4e, 0x4c, 0xa2, 0x70, 0x26, 0x64, 0xb9, 0x8d, 0x87, 0xea, 0x8f, + 0x62, 0xca, 0xed, 0x0c, 0x63, 0x4e, 0xec, 0x3d, 0x43, 0xb9, 0x68, 0xdf, 0xb8, 0x72, 0x46, 0x9c, + 0xff, 0x84, 0x05, 0x89, 0x93, 0x16, 0xa8, 0x7f, 0x52, 0xc0, 0x5a, 0x7c, 0x57, 0xd6, 0xa6, 0x4d, + 0xaf, 0xef, 0xe0, 0xfd, 0xed, 0xf3, 0xf6, 0xff, 0x00, 0xa4, 0x5c, 0x41, 0xa5, 0x73, 0x16, 0x5c, + 0xd2, 0x64, 0x45, 0x7b, 0x4e, 0x72, 0xb5, 0x45, 0x90, 0x2f, 0x8e, 0x19, 0xc0, 0x82, 0xa3, 0x7b, + 0x7b, 0xa2, 0xb0, 0x8b, 0x85, 0x94, 0xb6, 0x10, 0xb7, 0x99, 0xa9, 0xbf, 0x55, 0x00, 0x3c, 0x99, + 0xaf, 0xe0, 0x37, 0x00, 0x1c, 0xcb, 0x7a, 0x71, 0x0f, 0xcc, 0xba, 0xb1, 0x3c, 0x27, 0x4f, 0x2e, + 0x72, 0xa4, 0xe9, 0x98, 0x23, 0xc1, 0xf7, 0x00, 0x70, 0xe5, 0x25, 0x4e, 0x7e, 0xd5, 0x69, 0x37, + 0xfc, 0x84, 0x05, 0x90, 0xf9, 0x88, 0x12, 0x27, 0xfe, 0x66, 0x91, 0xd0, 0x80, 0x00, 0xf9, 0xcf, + 0x11, 0xea, 0x8f, 0x95, 0x51, 0x56, 0x0c, 0x12, 0x76, 0xc5, 0xb2, 0x82, 0x36, 0x10, 0xba, 0x60, + 0x2e, 0x4c, 0xf9, 0x7e, 0xc4, 0x5e, 0x3a, 0xb5, 0x2c, 0xd5, 0xb0, 0x21, 0x2b, 0xd3, 0x75, 0x71, + 0xe4, 0xbf, 0xfc, 0xaa, 0x70, 0xb5, 0x4b, 0x78, 0xaf, 0xdf, 0x11, 0x5a, 0x06, 0x8f, 0x54, 0xc1, + 0xbf, 0x6b, 0xcc, 0x3c, 0x2c, 0xf3, 0xa1, 0x8b, 0x59, 0xc8, 0xc3, 0x7e, 0xf1, 0xcf, 0x5f, 0xbf, + 0xa5, 0x68, 0xe1, 0x36, 0xaa, 0x09, 0xb2, 0xd1, 0x18, 0x82, 0x39, 0x32, 0x11, 0x47, 0x10, 0x82, + 0xa4, 0x83, 0xec, 0xb0, 0xcf, 0x94, 0xdf, 0x13, 0xb4, 0x99, 0x1b, 0x20, 0x65, 0x07, 0x12, 0x82, + 0xc1, 0x23, 0x5a, 0xab, 0xbf, 0x9a, 0x05, 0xc5, 0x70, 0x9b, 0x86, 0xff, 0x3c, 0x43, 0x7e, 0xe8, + 0x77, 0xe1, 0xa2, 0x79, 0x12, 0x25, 0x9c, 0x9d, 0xf2, 0xe4, 0xa3, 0xbc, 0x9c, 0x27, 0x9f, 0xe9, + 0x67, 0x3e, 0xf9, 0x24, 0x9e, 0xf1, 0xe4, 0x93, 0x7c, 0x79, 0x4f, 0x3e, 0x33, 0x2f, 0xfd, 0xc9, + 0x67, 0xf6, 0x15, 0x3d, 0xf9, 0xcc, 0xfd, 0x5f, 0x9e, 0x7c, 0x52, 0x2f, 0xf5, 0xc9, 0x27, 0xfd, + 0x62, 0x4f, 0x3e, 0xe0, 0x85, 0x9e, 0x7c, 0x32, 0x93, 0x3d, 0xf9, 0xf8, 0x69, 0xdd, 0xc1, 0xd2, + 0x32, 0x91, 0x76, 0xe7, 0x25, 0xdf, 0xfc, 0x08, 0xd8, 0x30, 0xd5, 0xdf, 0x4c, 0x83, 0x35, 0x39, + 0x71, 0xb7, 0x7a, 0xc8, 0x15, 0x1e, 0x30, 0x8a, 0x93, 0x68, 0x8c, 0x57, 0x26, 0x18, 0xe3, 0xa7, + 0x9f, 0x6f, 0x8c, 0x4f, 0x4c, 0x30, 0xc6, 0x27, 0xcf, 0x1b, 0xe3, 0x67, 0xce, 0x1b, 0xe3, 0x67, + 0x27, 0x1b, 0xe3, 0xe7, 0xce, 0x18, 0xe3, 0xa1, 0x0a, 0xe6, 0x5d, 0x8f, 0x50, 0x51, 0x2d, 0x62, + 0x6f, 0x06, 0x63, 0x30, 0xb5, 0x00, 0x32, 0x51, 0xa6, 0x31, 0x19, 0xcc, 0x82, 0x04, 0x31, 0xc3, + 0xe6, 0x54, 0x7c, 0xaa, 0x5b, 0xe0, 0x42, 0x25, 0x54, 0x1d, 0x9b, 0xf1, 0x49, 0x1b, 0xae, 0x81, + 0x59, 0x7f, 0xda, 0x0d, 0xe8, 0x83, 0x95, 0xfa, 0x7b, 0x05, 0xac, 0x36, 0x9c, 0xd0, 0x65, 0x63, + 0x57, 0xf1, 0x3d, 0x90, 0x31, 0x69, 0xbf, 0x63, 0x61, 0x5d, 0xf4, 0x42, 0x41, 0xbe, 0xba, 0x3e, + 0x51, 0x75, 0x93, 0x5d, 0xf4, 0x2d, 0x44, 0xac, 0x91, 0x38, 0x0d, 0xf8, 0xc2, 0x5a, 0xa4, 0xeb, + 0xc0, 0x36, 0x48, 0x99, 0xf4, 0xc8, 0x91, 0xe9, 0x67, 0xfa, 0x05, 0xe5, 0x46, 0x92, 0xd4, 0xbf, + 0x2b, 0x60, 0xe5, 0x14, 0x0a, 0xf8, 0x03, 0xb0, 0xe8, 0xcf, 0x5c, 0x51, 0x5c, 0xca, 0xaa, 0xb9, + 0xf3, 0x4d, 0x11, 0xe2, 0x7f, 0x7b, 0x5c, 0xb8, 0xe8, 0xd7, 0x13, 0x66, 0x1e, 0x96, 0x08, 0x2d, + 0xdb, 0x88, 0xf7, 0x4a, 0x77, 0x70, 0x17, 0x19, 0xc3, 0x1a, 0x36, 0xfe, 0xf2, 0xf9, 0x35, 0x10, + 0x54, 0xa9, 0x1a, 0x36, 0xfc, 0xfa, 0xb2, 0x20, 0xa5, 0x45, 0xe1, 0xbb, 0x0b, 0x16, 0x3e, 0x42, + 0xc4, 0xd2, 0xc3, 0x5f, 0x43, 0x02, 0x8b, 0x26, 0xca, 0x2d, 0xf3, 0x82, 0x33, 0x84, 0x0b, 0x4f, + 0xe4, 0xd4, 0xee, 0x30, 0x4e, 0x1d, 0x2c, 0xbd, 0x35, 0xa5, 0x8d, 0x00, 0x6f, 0xfd, 0x41, 0x01, + 0x0b, 0x51, 0xf3, 0xd7, 0x43, 0x0c, 0xc3, 0x3c, 0xd8, 0xa8, 0xde, 0xdb, 0x6b, 0xdd, 0xbf, 0x5b, + 0xd7, 0xf4, 0xe6, 0x6e, 0xa5, 0x55, 0xd7, 0xef, 0xef, 0xb5, 0x9a, 0xf5, 0x6a, 0xe3, 0x46, 0xa3, + 0x5e, 0xcb, 0x4e, 0xc1, 0xcb, 0x60, 0xfd, 0x18, 0x5e, 0xab, 0xdf, 0x6c, 0xb4, 0xda, 0x75, 0xad, + 0x5e, 0xcb, 0x2a, 0xa7, 0xb0, 0x37, 0xf6, 0x1a, 0xed, 0x46, 0xe5, 0x4e, 0xe3, 0x41, 0xbd, 0x96, + 0x9d, 0x86, 0x17, 0xc1, 0x85, 0x63, 0xf8, 0x3b, 0x95, 0xfb, 0x7b, 0xd5, 0xdd, 0x7a, 0x2d, 0x9b, + 0x80, 0x1b, 0x60, 0xed, 0x18, 0xb2, 0xd5, 0xbe, 0xd7, 0x6c, 0xd6, 0x6b, 0xd9, 0xe4, 0x29, 0xb8, + 0x5a, 0xfd, 0x4e, 0xbd, 0x5d, 0xaf, 0x65, 0x67, 0x36, 0x92, 0x1f, 0xff, 0x3c, 0x3f, 0xb5, 0xf3, + 0xe1, 0x17, 0x4f, 0xf2, 0xca, 0x97, 0x4f, 0xf2, 0xca, 0x3f, 0x9e, 0xe4, 0x95, 0x4f, 0x9e, 0xe6, + 0xa7, 0xbe, 0x7c, 0x9a, 0x9f, 0xfa, 0xeb, 0xd3, 0xfc, 0xd4, 0x83, 0xf7, 0x4f, 0x96, 0xfb, 0x91, + 0x67, 0x5c, 0x8b, 0x7e, 0xe3, 0x19, 0x7c, 0xab, 0xfc, 0x68, 0xfc, 0x07, 0x36, 0xd9, 0x09, 0x74, + 0x66, 0xe5, 0x69, 0xbf, 0xf3, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x13, 0x64, 0x78, 0x56, 0x91, + 0x1b, 0x00, 0x00, } func (m *ConsumerAdditionProposal) Marshal() (dAtA []byte, err error) { @@ -6868,7 +6923,7 @@ func (m *KeyAssignmentReplacement) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.PrevCKey == nil { - m.PrevCKey = &crypto.PublicKey{} + m.PrevCKey = &v1.PublicKey{} } if err := m.PrevCKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7039,7 +7094,7 @@ func (m *ValidatorConsumerPubKey) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ConsumerKey == nil { - m.ConsumerKey = &crypto.PublicKey{} + m.ConsumerKey = &v1.PublicKey{} } if err := m.ConsumerKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7479,7 +7534,7 @@ func (m *ConsensusValidator) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.PublicKey == nil { - m.PublicKey = &crypto.PublicKey{} + m.PublicKey = &v1.PublicKey{} } if err := m.PublicKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/x/ccv/provider/types/query.pb.go b/x/ccv/provider/types/query.pb.go index c7c7cb2f60..a8d7c2dffc 100644 --- a/x/ccv/provider/types/query.pb.go +++ b/x/ccv/provider/types/query.pb.go @@ -7,7 +7,7 @@ import ( context "context" cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - crypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + v1 "github.com/cometbft/cometbft/api/cometbft/crypto/v1" _ "github.com/cosmos/cosmos-proto" query "github.com/cosmos/cosmos-sdk/types/query" types1 "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -237,34 +237,41 @@ type Chain struct { ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` Top_N uint32 `protobuf:"varint,3,opt,name=top_N,json=topN,proto3" json:"top_N,omitempty"` - // If the chain is a Top-N chain, this is the minimum power required to be in the top N. - // Otherwise, this is -1. + // If the chain is a Top-N chain, this is the minimum power required to be in + // the top N. Otherwise, this is -1. MinPowerInTop_N int64 `protobuf:"varint,4,opt,name=min_power_in_top_N,json=minPowerInTopN,proto3" json:"min_power_in_top_N,omitempty"` - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. ValidatorsPowerCap uint32 `protobuf:"varint,5,opt,name=validators_power_cap,json=validatorsPowerCap,proto3" json:"validators_power_cap,omitempty"` - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. ValidatorSetCap uint32 `protobuf:"varint,6,opt,name=validator_set_cap,json=validatorSetCap,proto3" json:"validator_set_cap,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. Allowlist []string `protobuf:"bytes,7,rep,name=allowlist,proto3" json:"allowlist,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. Denylist []string `protobuf:"bytes,8,rep,name=denylist,proto3" json:"denylist,omitempty"` // The phase the consumer chain Phase string `protobuf:"bytes,9,opt,name=phase,proto3" json:"phase,omitempty"` // The metadata of the consumer chain Metadata ConsumerMetadata `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata"` - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. MinStake uint64 `protobuf:"varint,11,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. AllowInactiveVals bool `protobuf:"varint,12,opt,name=allow_inactive_vals,json=allowInactiveVals,proto3" json:"allow_inactive_vals,omitempty"` ConsumerId string `protobuf:"bytes,13,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"` // the reward denoms allowlisted by this consumer chain AllowlistedRewardDenoms *AllowlistedRewardDenoms `protobuf:"bytes,14,opt,name=allowlisted_reward_denoms,json=allowlistedRewardDenoms,proto3" json:"allowlisted_reward_denoms,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that should have PRIORITY to validate on the consumer chain, - // meaning as long as they are eligible/opted in to validate on the consumer chain, the validator set will be - // filled with these validators first, and other validators will be added to the validator set only if there are - // not enough eligible priority validators. + // Corresponds to a list of provider consensus addresses of validators that + // should have PRIORITY to validate on the consumer chain, meaning as long as + // they are eligible/opted in to validate on the consumer chain, the validator + // set will be filled with these validators first, and other validators will + // be added to the validator set only if there are not enough eligible + // priority validators. Prioritylist []string `protobuf:"bytes,15,rep,name=prioritylist,proto3" json:"prioritylist,omitempty"` // Infraction parameters for slashing and jailing InfractionParameters *InfractionParameters `protobuf:"bytes,16,opt,name=infraction_parameters,json=infractionParameters,proto3" json:"infraction_parameters,omitempty"` @@ -875,8 +882,8 @@ type PairValConAddrProviderAndConsumer struct { // The consensus address of the validator on the provider chain ProviderAddress string `protobuf:"bytes,1,opt,name=provider_address,json=providerAddress,proto3" json:"provider_address,omitempty" yaml:"provider_address"` // The consensus address of the validator on the consumer chain - ConsumerAddress string `protobuf:"bytes,2,opt,name=consumer_address,json=consumerAddress,proto3" json:"consumer_address,omitempty" yaml:"consumer_address"` - ConsumerKey *crypto.PublicKey `protobuf:"bytes,3,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` + ConsumerAddress string `protobuf:"bytes,2,opt,name=consumer_address,json=consumerAddress,proto3" json:"consumer_address,omitempty" yaml:"consumer_address"` + ConsumerKey *v1.PublicKey `protobuf:"bytes,3,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` } func (m *PairValConAddrProviderAndConsumer) Reset() { *m = PairValConAddrProviderAndConsumer{} } @@ -926,7 +933,7 @@ func (m *PairValConAddrProviderAndConsumer) GetConsumerAddress() string { return "" } -func (m *PairValConAddrProviderAndConsumer) GetConsumerKey() *crypto.PublicKey { +func (m *PairValConAddrProviderAndConsumer) GetConsumerKey() *v1.PublicKey { if m != nil { return m.ConsumerKey } @@ -1158,7 +1165,7 @@ type QueryConsumerValidatorsValidator struct { // The consensus address of the validator on the provider chain ProviderAddress string `protobuf:"bytes,1,opt,name=provider_address,json=providerAddress,proto3" json:"provider_address,omitempty" yaml:"address"` // The consumer public key of the validator used on the consumer chain - ConsumerKey *crypto.PublicKey `protobuf:"bytes,2,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` + ConsumerKey *v1.PublicKey `protobuf:"bytes,2,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` // [DEPRECATED] use `consumer_power` instead Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` // Deprecated: Do not use. // [DEPRECATED] use `consumer_commission_rate` instead @@ -1173,7 +1180,8 @@ type QueryConsumerValidatorsValidator struct { Description types1.Description `protobuf:"bytes,8,opt,name=description,proto3" json:"description"` // provider_operator_address defines the address of the validator's operator ProviderOperatorAddress string `protobuf:"bytes,9,opt,name=provider_operator_address,json=providerOperatorAddress,proto3" json:"provider_operator_address,omitempty"` - // jailed defined whether the validator has been jailed from bonded status or not. + // jailed defined whether the validator has been jailed from bonded status or + // not. Jailed bool `protobuf:"varint,10,opt,name=jailed,proto3" json:"jailed,omitempty"` // status is the validator status (bonded/unbonding/unbonded). Status types1.BondStatus `protobuf:"varint,11,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status,omitempty"` @@ -1181,7 +1189,8 @@ type QueryConsumerValidatorsValidator struct { ProviderTokens cosmossdk_io_math.Int `protobuf:"bytes,12,opt,name=provider_tokens,json=providerTokens,proto3,customtype=cosmossdk.io/math.Int" json:"provider_tokens"` // The power of the validator used on the provider chain ProviderPower int64 `protobuf:"varint,13,opt,name=provider_power,json=providerPower,proto3" json:"provider_power,omitempty"` - // validates_current_epoch defines whether the validator has to validate for the current epoch or not + // validates_current_epoch defines whether the validator has to validate for + // the current epoch or not ValidatesCurrentEpoch bool `protobuf:"varint,14,opt,name=validates_current_epoch,json=validatesCurrentEpoch,proto3" json:"validates_current_epoch,omitempty"` } @@ -1225,7 +1234,7 @@ func (m *QueryConsumerValidatorsValidator) GetProviderAddress() string { return "" } -func (m *QueryConsumerValidatorsValidator) GetConsumerKey() *crypto.PublicKey { +func (m *QueryConsumerValidatorsValidator) GetConsumerKey() *v1.PublicKey { if m != nil { return m.ConsumerKey } @@ -1612,7 +1621,8 @@ func (m *QueryBlocksUntilNextEpochResponse) GetBlocksUntilNextEpoch() uint64 { type QueryConsumerIdFromClientIdRequest struct { // the client id (on the provider) that is tracking the consumer chain - // the client id can be found from the consumer chain by querying (i.e., `query ccvconsumer provider-info`) + // the client id can be found from the consumer chain by querying (i.e., + // `query ccvconsumer provider-info`) ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` } @@ -1986,167 +1996,167 @@ func init() { var fileDescriptor_422512d7b7586cd7 = []byte{ // 2574 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5a, 0xcf, 0x6f, 0x1b, 0xc7, - 0xf5, 0xd7, 0x52, 0x3f, 0x4c, 0x0d, 0x2d, 0x39, 0x1e, 0xcb, 0x16, 0x4d, 0x39, 0xa2, 0xbc, 0x8e, - 0xbf, 0x5f, 0x45, 0x8e, 0x49, 0x49, 0x45, 0xea, 0xd8, 0x89, 0x7f, 0x88, 0xb2, 0x24, 0x13, 0x8e, - 0x6d, 0x65, 0xa5, 0x38, 0x80, 0x53, 0x77, 0x3b, 0xda, 0x1d, 0x53, 0x53, 0x91, 0xbb, 0xeb, 0x9d, - 0x11, 0x6d, 0xd6, 0xf0, 0xa5, 0xbd, 0xe4, 0xd0, 0x02, 0x09, 0x8a, 0x9e, 0x9b, 0x73, 0x0f, 0x45, - 0x51, 0x04, 0xfd, 0x1b, 0x72, 0xab, 0x9b, 0x5e, 0x8a, 0x14, 0x75, 0x0b, 0xbb, 0x05, 0x7a, 0xe9, - 0xa1, 0x69, 0xd1, 0x73, 0x31, 0xb3, 0xb3, 0x4b, 0xee, 0x7a, 0x29, 0xee, 0x8a, 0xea, 0x4d, 0x3b, - 0xf3, 0xde, 0xe7, 0xfd, 0x98, 0x37, 0x6f, 0xde, 0x7b, 0x14, 0x28, 0x13, 0x8b, 0x61, 0xd7, 0xd8, - 0x46, 0xc4, 0xd2, 0x29, 0x36, 0x76, 0x5d, 0xc2, 0x5a, 0x65, 0xc3, 0x68, 0x96, 0x1d, 0xd7, 0x6e, - 0x12, 0x13, 0xbb, 0xe5, 0xe6, 0x42, 0xf9, 0xe1, 0x2e, 0x76, 0x5b, 0x25, 0xc7, 0xb5, 0x99, 0x0d, - 0xcf, 0xc4, 0x30, 0x94, 0x0c, 0xa3, 0x59, 0xf2, 0x19, 0x4a, 0xcd, 0x85, 0xc2, 0xa9, 0x9a, 0x6d, - 0xd7, 0xea, 0xb8, 0x8c, 0x1c, 0x52, 0x46, 0x96, 0x65, 0x33, 0xc4, 0x88, 0x6d, 0x51, 0x0f, 0xa2, - 0x30, 0x51, 0xb3, 0x6b, 0xb6, 0xf8, 0xb3, 0xcc, 0xff, 0x92, 0xab, 0x45, 0xc9, 0x23, 0xbe, 0xb6, - 0x76, 0x1f, 0x94, 0x19, 0x69, 0x60, 0xca, 0x50, 0xc3, 0x91, 0x04, 0x8b, 0x49, 0x54, 0x0d, 0xb4, - 0xf0, 0x78, 0xe6, 0xbb, 0xf1, 0x34, 0x17, 0xca, 0x74, 0x1b, 0xb9, 0xd8, 0xd4, 0x0d, 0xdb, 0xa2, - 0xbb, 0x8d, 0x80, 0xe3, 0xec, 0x1e, 0x1c, 0x8f, 0x88, 0x8b, 0x25, 0xd9, 0x29, 0x86, 0x2d, 0x13, - 0xbb, 0x0d, 0x62, 0xb1, 0xb2, 0xe1, 0xb6, 0x1c, 0x66, 0x97, 0x77, 0x70, 0xcb, 0xb7, 0xf0, 0xa4, - 0x61, 0xd3, 0x86, 0x4d, 0x75, 0xcf, 0x48, 0xef, 0x43, 0x6e, 0xbd, 0xe1, 0x7d, 0x95, 0x29, 0x43, - 0x3b, 0xc4, 0xaa, 0x95, 0x9b, 0x0b, 0x5b, 0x98, 0xa1, 0x05, 0xff, 0x5b, 0x52, 0xcd, 0x49, 0xaa, - 0x2d, 0x44, 0xb1, 0xe7, 0xfe, 0x80, 0xd0, 0x41, 0x35, 0x62, 0x09, 0x7f, 0x7a, 0xb4, 0xea, 0x15, - 0x30, 0xf5, 0x01, 0xa7, 0x58, 0x96, 0x86, 0xac, 0x61, 0x0b, 0x53, 0x42, 0x35, 0xfc, 0x70, 0x17, - 0x53, 0x06, 0x8b, 0x20, 0xe7, 0x9b, 0xa8, 0x13, 0x33, 0xaf, 0xcc, 0x28, 0xb3, 0xa3, 0x1a, 0xf0, - 0x97, 0xaa, 0xa6, 0xfa, 0x04, 0x9c, 0x8a, 0xe7, 0xa7, 0x8e, 0x6d, 0x51, 0x0c, 0x3f, 0x06, 0x63, - 0x35, 0x6f, 0x49, 0xa7, 0x0c, 0x31, 0x2c, 0x20, 0x72, 0x8b, 0xf3, 0xa5, 0x6e, 0x91, 0xd0, 0x5c, - 0x28, 0x45, 0xb0, 0x36, 0x38, 0x5f, 0x65, 0xe8, 0xcb, 0xe7, 0xc5, 0x01, 0xed, 0x70, 0xad, 0x63, - 0x4d, 0xfd, 0xa5, 0x02, 0x0a, 0x21, 0xe9, 0xcb, 0x1c, 0x2f, 0x50, 0xfe, 0x06, 0x18, 0x76, 0xb6, - 0x11, 0xf5, 0x64, 0x8e, 0x2f, 0x2e, 0x96, 0x12, 0x44, 0x5f, 0x20, 0x7c, 0x9d, 0x73, 0x6a, 0x1e, - 0x00, 0x5c, 0x05, 0xa0, 0xed, 0xb9, 0x7c, 0x46, 0x98, 0xf0, 0x7f, 0x25, 0x79, 0x34, 0xdc, 0xcd, - 0x25, 0x2f, 0xca, 0xa5, 0x9b, 0x4b, 0xeb, 0xa8, 0x86, 0xa5, 0x16, 0x5a, 0x07, 0xa7, 0xfa, 0x0b, - 0x25, 0xe2, 0x6e, 0x5f, 0x61, 0xe9, 0xad, 0x0a, 0x18, 0x11, 0xea, 0xd1, 0xbc, 0x32, 0x33, 0x38, - 0x9b, 0x5b, 0x9c, 0x4b, 0xa6, 0x32, 0xdf, 0xd6, 0x24, 0x27, 0x5c, 0x8b, 0xd1, 0xf5, 0xff, 0x7b, - 0xea, 0xea, 0x29, 0x10, 0x52, 0xf6, 0x47, 0x23, 0x60, 0x58, 0x40, 0xc3, 0x93, 0x20, 0xeb, 0xa9, - 0x10, 0x84, 0xc0, 0x21, 0xf1, 0x5d, 0x35, 0xe1, 0x14, 0x18, 0x35, 0xea, 0x04, 0x5b, 0x8c, 0xef, - 0x65, 0xc4, 0x5e, 0xd6, 0x5b, 0xa8, 0x9a, 0xf0, 0x18, 0x18, 0x66, 0xb6, 0xa3, 0xdf, 0xce, 0x0f, - 0xce, 0x28, 0xb3, 0x63, 0xda, 0x10, 0xb3, 0x9d, 0xdb, 0x70, 0x0e, 0xc0, 0x06, 0xb1, 0x74, 0xc7, - 0x7e, 0xc4, 0x63, 0xca, 0xd2, 0x3d, 0x8a, 0xa1, 0x19, 0x65, 0x76, 0x50, 0x1b, 0x6f, 0x10, 0x6b, - 0x9d, 0x6f, 0x54, 0xad, 0x4d, 0x4e, 0x3b, 0x0f, 0x26, 0x9a, 0xa8, 0x4e, 0x4c, 0xc4, 0x6c, 0x97, - 0x4a, 0x16, 0x03, 0x39, 0xf9, 0x61, 0x81, 0x07, 0xdb, 0x7b, 0x82, 0x69, 0x19, 0x39, 0x70, 0x0e, - 0x1c, 0x0d, 0x56, 0x75, 0x8a, 0x99, 0x20, 0x1f, 0x11, 0xe4, 0x47, 0x82, 0x8d, 0x0d, 0xcc, 0x38, - 0xed, 0x29, 0x30, 0x8a, 0xea, 0x75, 0xfb, 0x51, 0x9d, 0x50, 0x96, 0x3f, 0x34, 0x33, 0x38, 0x3b, - 0xaa, 0xb5, 0x17, 0x60, 0x01, 0x64, 0x4d, 0x6c, 0xb5, 0xc4, 0x66, 0x56, 0x6c, 0x06, 0xdf, 0x70, - 0xc2, 0x8f, 0xac, 0x51, 0x61, 0xb1, 0x8c, 0x92, 0x8f, 0x40, 0xb6, 0x81, 0x19, 0x32, 0x11, 0x43, - 0x79, 0x20, 0xfc, 0xfe, 0x76, 0xaa, 0x90, 0xbb, 0x25, 0x99, 0x65, 0xac, 0x07, 0x60, 0xdc, 0xc9, - 0xdc, 0x65, 0xfc, 0x96, 0xe3, 0x7c, 0x6e, 0x46, 0x99, 0x1d, 0xd2, 0xb2, 0x0d, 0x62, 0x6d, 0xf0, - 0x6f, 0x58, 0x02, 0xc7, 0x84, 0xd2, 0x3a, 0xb1, 0x90, 0xc1, 0x48, 0x13, 0xeb, 0x4d, 0x54, 0xa7, - 0xf9, 0xc3, 0x33, 0xca, 0x6c, 0x56, 0x3b, 0x2a, 0xb6, 0xaa, 0x72, 0xe7, 0x2e, 0xaa, 0xd3, 0xe8, - 0x95, 0x1e, 0x8b, 0x5e, 0x69, 0xf8, 0x18, 0x9c, 0x0c, 0xbc, 0x80, 0x4d, 0xdd, 0xc5, 0x8f, 0x90, - 0x6b, 0xea, 0x26, 0xb6, 0xec, 0x06, 0xcd, 0x8f, 0x0b, 0xbb, 0xde, 0x4b, 0x64, 0xd7, 0x52, 0x1b, - 0x45, 0x13, 0x20, 0xd7, 0x05, 0x86, 0x36, 0x89, 0xe2, 0x37, 0xa0, 0x0a, 0x0e, 0x3b, 0x2e, 0xb1, - 0x39, 0x98, 0x70, 0xfb, 0x11, 0xe1, 0xf6, 0xd0, 0x1a, 0xb4, 0xc0, 0x71, 0x62, 0x3d, 0x70, 0xb9, - 0x41, 0xb6, 0xa5, 0x3b, 0xc8, 0x45, 0x0d, 0xcc, 0xb0, 0x4b, 0xf3, 0xaf, 0x09, 0xcd, 0x2e, 0x26, - 0xd2, 0xac, 0x1a, 0x20, 0xac, 0x07, 0x00, 0xda, 0x04, 0x89, 0x59, 0x55, 0x7f, 0xa2, 0x80, 0xd3, - 0xe2, 0xca, 0xde, 0xf5, 0xa3, 0xc7, 0x3f, 0xae, 0x25, 0xd3, 0x74, 0xfd, 0x54, 0x73, 0x19, 0xbc, - 0xe6, 0xe3, 0xeb, 0xc8, 0x34, 0x5d, 0x4c, 0xa9, 0x77, 0x53, 0x2a, 0xf0, 0x9b, 0xe7, 0xc5, 0xf1, - 0x16, 0x6a, 0xd4, 0x2f, 0xa9, 0x72, 0x43, 0xd5, 0x8e, 0xf8, 0xb4, 0x4b, 0xde, 0x4a, 0xf4, 0x4c, - 0x32, 0xd1, 0x33, 0xb9, 0x94, 0xfd, 0xe4, 0xf3, 0xe2, 0xc0, 0xdf, 0x3f, 0x2f, 0x0e, 0xa8, 0x77, - 0x80, 0xba, 0x97, 0x3a, 0x32, 0x91, 0xbc, 0x09, 0x5e, 0x0b, 0x00, 0x43, 0xfa, 0x68, 0x47, 0x8c, - 0x0e, 0x7a, 0xae, 0xcd, 0xab, 0x06, 0xae, 0x77, 0x68, 0xd7, 0x61, 0x60, 0x3c, 0x60, 0xbc, 0x81, - 0x11, 0x21, 0x7d, 0x19, 0x18, 0x56, 0xa7, 0x6d, 0x60, 0xbc, 0xc3, 0x5f, 0x71, 0xae, 0x3a, 0x05, - 0x4e, 0x0a, 0xc0, 0xcd, 0x6d, 0xd7, 0x66, 0xac, 0x8e, 0xc5, 0xdb, 0x21, 0xed, 0x52, 0x7f, 0xe7, - 0x3f, 0x21, 0x91, 0x5d, 0x29, 0xa6, 0x08, 0x72, 0xb4, 0x8e, 0xe8, 0xb6, 0x2e, 0xa2, 0x41, 0x48, - 0x18, 0xd4, 0x80, 0x58, 0xba, 0xc5, 0x57, 0xe0, 0x22, 0x38, 0xde, 0x41, 0xa0, 0x8b, 0xc8, 0x46, - 0x96, 0x81, 0x85, 0x89, 0x83, 0xda, 0xb1, 0x36, 0xe9, 0x92, 0xbf, 0x05, 0xbf, 0x0b, 0xf2, 0x16, - 0x7e, 0xcc, 0x74, 0x17, 0x3b, 0x75, 0x6c, 0x11, 0xba, 0xad, 0x1b, 0xc8, 0x32, 0xb9, 0xb1, 0x58, - 0x64, 0xca, 0xdc, 0x62, 0xa1, 0xe4, 0xd5, 0x33, 0x25, 0xbf, 0x9e, 0x29, 0x6d, 0xfa, 0xf5, 0x4c, - 0x25, 0xcb, 0x93, 0xc3, 0xa7, 0x7f, 0x2e, 0x2a, 0xda, 0x09, 0x8e, 0xa2, 0xf9, 0x20, 0xcb, 0x3e, - 0x86, 0xfa, 0x16, 0x98, 0x13, 0x26, 0x69, 0xb8, 0xc6, 0xef, 0x98, 0x8b, 0x4d, 0x3f, 0x46, 0x42, - 0xd7, 0x50, 0x7a, 0x60, 0x05, 0x9c, 0x4b, 0x44, 0x2d, 0x3d, 0x72, 0x02, 0x8c, 0xc8, 0x54, 0xa0, - 0x88, 0xdb, 0x29, 0xbf, 0xd4, 0xf7, 0xc1, 0x9b, 0x02, 0x66, 0xa9, 0x5e, 0x5f, 0x47, 0xc4, 0xa5, - 0x77, 0x51, 0x9d, 0xe3, 0xf0, 0x43, 0xa8, 0xb4, 0xda, 0x88, 0x09, 0xcb, 0x8a, 0x9f, 0x2b, 0xd2, - 0x86, 0x1e, 0x70, 0x52, 0xa9, 0x87, 0xe0, 0xa8, 0x83, 0x88, 0xcb, 0x33, 0x1f, 0x2f, 0xc9, 0x44, - 0x44, 0xc8, 0x27, 0x74, 0x35, 0x51, 0x42, 0xe0, 0x32, 0x3c, 0x11, 0x5c, 0x42, 0x10, 0x71, 0x56, - 0xdb, 0x17, 0xe3, 0x4e, 0x88, 0x44, 0xfd, 0xb7, 0x02, 0x4e, 0xf7, 0xe4, 0x82, 0xab, 0x5d, 0xf3, - 0xc2, 0xd4, 0x37, 0xcf, 0x8b, 0x93, 0xde, 0xb5, 0x89, 0x52, 0xc4, 0x24, 0x88, 0xd5, 0x98, 0xeb, - 0x97, 0x89, 0xe2, 0x44, 0x29, 0x62, 0xee, 0xe1, 0x55, 0x70, 0x38, 0xa0, 0xda, 0xc1, 0x2d, 0x19, - 0x6e, 0xa7, 0x4a, 0xed, 0x82, 0xb4, 0xe4, 0x15, 0xa4, 0xa5, 0xf5, 0xdd, 0xad, 0x3a, 0x31, 0x6e, - 0xe2, 0x96, 0x16, 0x1c, 0xd5, 0x4d, 0xdc, 0x52, 0x27, 0x00, 0x14, 0xe7, 0x22, 0x32, 0x64, 0x10, - 0x43, 0xdf, 0x03, 0xc7, 0x42, 0xab, 0xf2, 0x58, 0xaa, 0x60, 0x44, 0x24, 0x68, 0x2a, 0xab, 0xbe, - 0x73, 0x09, 0xcf, 0x82, 0xb3, 0xc8, 0x47, 0x50, 0x02, 0xa8, 0xb7, 0x64, 0x3c, 0x84, 0x0a, 0xa7, - 0x3b, 0x0e, 0xc3, 0x66, 0xd5, 0x0a, 0x32, 0x45, 0xf2, 0xb2, 0xf5, 0xa1, 0x0c, 0xfa, 0x5e, 0x70, - 0x41, 0x5d, 0xf6, 0x7a, 0x67, 0x1d, 0x12, 0x39, 0x2f, 0xec, 0xdf, 0x85, 0xa9, 0x8e, 0x82, 0x24, - 0x7c, 0x80, 0x98, 0xaa, 0x4b, 0x60, 0x3a, 0x24, 0x72, 0x1f, 0x5a, 0x7f, 0x76, 0x08, 0xcc, 0x74, - 0xc1, 0x08, 0xfe, 0xea, 0xf7, 0x29, 0x8a, 0x46, 0x48, 0x26, 0x65, 0x84, 0xc0, 0x3c, 0x18, 0x16, - 0x85, 0x9a, 0x88, 0xad, 0xc1, 0x4a, 0x26, 0xaf, 0x68, 0xde, 0x02, 0xbc, 0x08, 0x86, 0x5c, 0x9e, - 0xe3, 0x86, 0x84, 0x36, 0x67, 0xf9, 0xf9, 0x7e, 0xfd, 0xbc, 0x38, 0xe5, 0x95, 0xa6, 0xd4, 0xdc, - 0x29, 0x11, 0xbb, 0xdc, 0x40, 0x6c, 0xbb, 0xf4, 0x3e, 0xae, 0x21, 0xa3, 0x75, 0x1d, 0x1b, 0x79, - 0x45, 0x13, 0x2c, 0xf0, 0x2c, 0x18, 0x0f, 0xb4, 0xf2, 0xd0, 0x87, 0x45, 0x7e, 0x1d, 0xf3, 0x57, - 0x45, 0x01, 0x08, 0xef, 0x83, 0x7c, 0x40, 0x66, 0xd8, 0x8d, 0x06, 0xa1, 0x94, 0x57, 0x09, 0x42, - 0xea, 0x88, 0x90, 0x7a, 0x26, 0x81, 0x54, 0xed, 0x84, 0x0f, 0xb2, 0x1c, 0x60, 0x68, 0x5c, 0x8b, - 0xfb, 0x20, 0x1f, 0xb8, 0x36, 0x0a, 0x7f, 0x28, 0x05, 0xbc, 0x0f, 0x12, 0x81, 0xbf, 0x09, 0x72, - 0x26, 0xa6, 0x86, 0x4b, 0x1c, 0x51, 0xba, 0x67, 0x85, 0xe7, 0xcf, 0xf8, 0xa5, 0xbb, 0xdf, 0xe3, - 0xf9, 0x75, 0xfb, 0xf5, 0x36, 0xa9, 0xbc, 0x2b, 0x9d, 0xdc, 0xf0, 0x3e, 0x38, 0x19, 0xe8, 0x6a, - 0x3b, 0xd8, 0x15, 0x05, 0xb1, 0x1f, 0x0f, 0xa2, 0x6c, 0xad, 0x9c, 0xfe, 0xea, 0x8b, 0xf3, 0xaf, - 0x4b, 0xf4, 0x20, 0x7e, 0x64, 0x1c, 0x6c, 0x30, 0x97, 0x58, 0x35, 0x6d, 0xd2, 0xc7, 0xb8, 0x23, - 0x21, 0xfc, 0x30, 0x39, 0x01, 0x46, 0xbe, 0x8f, 0x48, 0x1d, 0x9b, 0xa2, 0xd2, 0xcd, 0x6a, 0xf2, - 0x0b, 0x5e, 0x02, 0x23, 0xbc, 0xcf, 0xdb, 0xa5, 0xa2, 0x4e, 0x1d, 0x5f, 0x54, 0xbb, 0xa9, 0x5f, - 0xb1, 0x2d, 0x73, 0x43, 0x50, 0x6a, 0x92, 0x03, 0x6e, 0x82, 0x20, 0x1a, 0x75, 0x66, 0xef, 0x60, - 0xcb, 0xab, 0x62, 0x47, 0x2b, 0xe7, 0xa4, 0x57, 0x8f, 0xbf, 0xea, 0xd5, 0xaa, 0xc5, 0xbe, 0xfa, - 0xe2, 0x3c, 0x90, 0x42, 0xaa, 0x16, 0xd3, 0xc6, 0x7d, 0x8c, 0x4d, 0x01, 0xc1, 0x43, 0x27, 0x40, - 0xf5, 0x42, 0x67, 0xcc, 0x0b, 0x1d, 0x7f, 0xd5, 0x0b, 0x9d, 0x6f, 0x83, 0x49, 0x79, 0x7b, 0x31, - 0xd5, 0x8d, 0x5d, 0xd7, 0xe5, 0x3d, 0x0d, 0x76, 0x6c, 0x63, 0x5b, 0xd4, 0xbc, 0x59, 0xed, 0x78, - 0xb0, 0xbd, 0xec, 0xed, 0xae, 0xf0, 0x4d, 0xf5, 0x13, 0x05, 0x14, 0xbb, 0xde, 0x6b, 0x99, 0x3e, - 0x30, 0x00, 0xed, 0xcc, 0x20, 0xdf, 0xa5, 0x95, 0x44, 0xb9, 0xb0, 0xd7, 0x6d, 0xd7, 0x3a, 0x80, - 0xd5, 0x87, 0x60, 0x3e, 0xa6, 0xb9, 0x0c, 0x68, 0x6f, 0x20, 0xba, 0x69, 0xcb, 0x2f, 0x7c, 0x30, - 0x85, 0xab, 0x7a, 0x17, 0x2c, 0xa4, 0x10, 0x29, 0xdd, 0x71, 0xba, 0x23, 0xc5, 0x10, 0xd3, 0x4f, - 0x9e, 0xb9, 0x76, 0xa2, 0x13, 0x45, 0xe9, 0xb9, 0xf8, 0x32, 0x37, 0x7c, 0x67, 0x92, 0xa6, 0xce, - 0x58, 0x3b, 0x33, 0xc9, 0xed, 0xac, 0x81, 0xb7, 0x92, 0xa9, 0x23, 0x4d, 0xbc, 0x20, 0x53, 0x9d, - 0x92, 0x3c, 0x2b, 0x08, 0x06, 0x55, 0x95, 0x19, 0xbe, 0x52, 0xb7, 0x8d, 0x1d, 0xfa, 0xa1, 0xc5, - 0x48, 0xfd, 0x36, 0x7e, 0xec, 0xc5, 0x9a, 0xff, 0xda, 0xde, 0x93, 0x05, 0x7b, 0x3c, 0x8d, 0xd4, - 0xe0, 0x6d, 0x30, 0xb9, 0x25, 0xf6, 0xf5, 0x5d, 0x4e, 0xa0, 0x8b, 0x8a, 0xd3, 0x8b, 0x67, 0x45, - 0x74, 0x90, 0x13, 0x5b, 0x31, 0xec, 0xea, 0x92, 0xac, 0xbe, 0x97, 0x03, 0xd7, 0xad, 0xba, 0x76, - 0x63, 0x59, 0x76, 0xf4, 0xbe, 0xbb, 0x43, 0x5d, 0xbf, 0x12, 0xee, 0xfa, 0xd5, 0x55, 0x70, 0x66, - 0x4f, 0x88, 0x76, 0x69, 0xbd, 0xf7, 0x6b, 0xf7, 0x9e, 0xac, 0xdb, 0x43, 0xb1, 0x95, 0xf8, 0xad, - 0x7c, 0x36, 0x14, 0x37, 0x1b, 0x4a, 0x2c, 0x3d, 0x34, 0xf3, 0xc8, 0x84, 0x67, 0x1e, 0x67, 0xc0, - 0x98, 0xfd, 0xc8, 0xea, 0x08, 0xa4, 0x41, 0xb1, 0x7f, 0x58, 0x2c, 0xfa, 0x09, 0x32, 0x18, 0x11, - 0x0c, 0x75, 0x1b, 0x11, 0x0c, 0x1f, 0xe4, 0x88, 0xe0, 0x01, 0xc8, 0x11, 0x8b, 0x30, 0x5d, 0xd6, - 0x5b, 0x23, 0x02, 0x7b, 0x25, 0x15, 0x76, 0xd5, 0x22, 0x8c, 0xa0, 0x3a, 0xf9, 0x01, 0x8a, 0x34, - 0xc6, 0x80, 0x23, 0x7b, 0x55, 0x19, 0x6c, 0x80, 0x09, 0x6f, 0x0c, 0x43, 0xb7, 0x91, 0x43, 0xac, - 0x9a, 0x2f, 0xf0, 0x90, 0x10, 0xf8, 0x6e, 0xb2, 0x02, 0x8f, 0x03, 0x6c, 0x78, 0xfc, 0x1d, 0x62, - 0xa0, 0x13, 0x5d, 0xa7, 0xdd, 0xbb, 0xfd, 0xec, 0xff, 0xa4, 0xdb, 0x0f, 0x07, 0xf6, 0x68, 0x24, - 0xb0, 0x2b, 0x91, 0x4c, 0x2f, 0xe7, 0x93, 0xbc, 0x35, 0x4b, 0x1c, 0x96, 0x3b, 0x91, 0x0a, 0x2e, - 0x84, 0x21, 0x63, 0x73, 0x0d, 0xf8, 0x63, 0x4e, 0x9d, 0x91, 0x86, 0x3f, 0x32, 0x4d, 0xd6, 0x13, - 0xe6, 0x6a, 0x6d, 0xc0, 0xc5, 0xaf, 0x8b, 0x60, 0x58, 0x48, 0x83, 0x7f, 0x53, 0xc0, 0x44, 0x9c, - 0x5c, 0x78, 0x2d, 0xfd, 0x33, 0x14, 0x1e, 0x11, 0x17, 0x96, 0xfa, 0x40, 0xf0, 0x0c, 0x56, 0x6f, - 0xfc, 0xf0, 0xf7, 0x7f, 0xfd, 0x69, 0xa6, 0x02, 0xaf, 0xf5, 0xfe, 0x41, 0x21, 0xf0, 0xae, 0xb4, - 0xb3, 0xfc, 0xa4, 0xc3, 0xdf, 0x4f, 0xe1, 0x1f, 0x15, 0xd9, 0x89, 0x84, 0x1f, 0x24, 0x78, 0x35, - 0xbd, 0x92, 0xa1, 0x59, 0x72, 0xe1, 0xda, 0xfe, 0x01, 0xa4, 0x91, 0x4b, 0xc2, 0xc8, 0x77, 0xe1, - 0xc5, 0x14, 0x46, 0x7a, 0x23, 0xdd, 0xf2, 0x13, 0x91, 0x3c, 0x9e, 0xc2, 0xcf, 0x32, 0x32, 0xa7, - 0xc5, 0x0e, 0x7f, 0xe0, 0x6a, 0x72, 0x1d, 0xf7, 0x1a, 0x66, 0x15, 0xd6, 0xfa, 0xc6, 0x91, 0x26, - 0x6f, 0x09, 0x93, 0xbf, 0x03, 0xef, 0x25, 0xf8, 0xa1, 0x28, 0x18, 0xda, 0x86, 0xba, 0xd8, 0xf0, - 0xf1, 0x96, 0x9f, 0x44, 0xdf, 0xf0, 0x38, 0x9f, 0x74, 0xb6, 0x5e, 0xfb, 0xf2, 0x49, 0xcc, 0xfc, - 0x6b, 0x5f, 0x3e, 0x89, 0x1b, 0x5c, 0xed, 0xcf, 0x27, 0x21, 0xb3, 0xa3, 0x3e, 0x89, 0xb6, 0xfd, - 0x4f, 0xe1, 0x6f, 0x15, 0xd9, 0xa5, 0x87, 0x86, 0x5a, 0xf0, 0x4a, 0x72, 0x1b, 0xe2, 0x66, 0x65, - 0x85, 0xab, 0xfb, 0xe6, 0x97, 0xb6, 0xbf, 0x23, 0x6c, 0x5f, 0x84, 0xf3, 0xbd, 0x6d, 0x67, 0x12, - 0xc0, 0xfb, 0xd5, 0x08, 0xfe, 0x2c, 0x23, 0x8b, 0x8a, 0xbd, 0xa7, 0x54, 0xf0, 0x4e, 0x72, 0x15, - 0x13, 0x4d, 0xc7, 0x0a, 0xeb, 0x07, 0x07, 0x28, 0x9d, 0x70, 0x53, 0x38, 0x61, 0x05, 0x2e, 0xf7, - 0x76, 0x82, 0x1b, 0x20, 0xb6, 0x6f, 0x45, 0x68, 0x1c, 0x0f, 0x7f, 0x9c, 0x91, 0xf5, 0xda, 0x9e, - 0x73, 0x32, 0x78, 0x3b, 0xb9, 0x15, 0x49, 0xe6, 0x77, 0x85, 0x3b, 0x07, 0x86, 0x27, 0x9d, 0xb2, - 0x22, 0x9c, 0x72, 0x15, 0x5e, 0xee, 0xed, 0x14, 0x19, 0xe5, 0xba, 0xc3, 0x51, 0x23, 0xe9, 0xff, - 0xd7, 0x0a, 0xc8, 0x75, 0x0c, 0xa2, 0xe0, 0x85, 0xe4, 0x7a, 0x86, 0x06, 0x5a, 0x85, 0x77, 0xd2, - 0x33, 0x4a, 0x4b, 0xe6, 0x85, 0x25, 0x73, 0x70, 0xb6, 0xb7, 0x25, 0x5e, 0xe9, 0xd4, 0x8e, 0xed, - 0xbd, 0x87, 0x51, 0x69, 0x62, 0x3b, 0xd1, 0x94, 0x2c, 0x4d, 0x6c, 0x27, 0x9b, 0x93, 0xa5, 0x89, - 0x6d, 0x9b, 0x83, 0xe8, 0xc4, 0xd2, 0xdb, 0x0d, 0x6c, 0xe4, 0x30, 0x7f, 0x93, 0x91, 0x23, 0xe5, - 0x24, 0xcd, 0x25, 0xfc, 0x70, 0xbf, 0x0f, 0xf4, 0x9e, 0xfd, 0x71, 0xe1, 0xee, 0x41, 0xc3, 0x4a, - 0x4f, 0xdd, 0x13, 0x9e, 0xda, 0x84, 0x5a, 0xea, 0x6a, 0x40, 0x77, 0xb0, 0xdb, 0x76, 0x5a, 0xdc, - 0x93, 0xf8, 0xab, 0x0c, 0x78, 0x23, 0x49, 0xb7, 0x0a, 0xd7, 0xfb, 0x78, 0xe8, 0x63, 0xfb, 0xf0, - 0xc2, 0x07, 0x07, 0x88, 0x28, 0x3d, 0x65, 0x08, 0x4f, 0xdd, 0x87, 0x1f, 0xa7, 0xf1, 0x54, 0x78, - 0x38, 0xd7, 0xbb, 0x8a, 0xf8, 0xa7, 0x02, 0x26, 0xbb, 0xcc, 0x5a, 0xe0, 0x72, 0x3f, 0x93, 0x1a, - 0xdf, 0x31, 0xd7, 0xfb, 0x03, 0x49, 0x7f, 0xbf, 0x02, 0x8b, 0xbb, 0xde, 0xaf, 0x7f, 0x28, 0xb2, - 0xc1, 0x8e, 0x9b, 0x23, 0xc0, 0x14, 0xf3, 0xa9, 0x3d, 0x66, 0x15, 0x85, 0xd5, 0x7e, 0x61, 0xd2, - 0x57, 0xcf, 0x5d, 0xc6, 0x1e, 0xf0, 0x5f, 0xd1, 0x7f, 0xbe, 0x08, 0x0f, 0x26, 0xe0, 0x5a, 0xfa, - 0x23, 0x8a, 0x9d, 0x8e, 0x14, 0x6e, 0xf4, 0x0f, 0xd4, 0x47, 0xcf, 0x40, 0xcc, 0xf2, 0x93, 0xa0, - 0x87, 0x7d, 0x0a, 0xff, 0xe4, 0xd7, 0x82, 0xa1, 0xf4, 0x94, 0xa6, 0x16, 0x8c, 0x9b, 0xbf, 0x14, - 0xae, 0xee, 0x9b, 0x5f, 0x9a, 0xb6, 0x2a, 0x4c, 0xbb, 0x06, 0xaf, 0xa4, 0x4d, 0x80, 0x91, 0x28, - 0xfe, 0x8f, 0x02, 0xf2, 0xdd, 0x3a, 0x6a, 0x78, 0x7d, 0xdf, 0xbd, 0x69, 0x47, 0x53, 0x5f, 0x58, - 0xe9, 0x13, 0x45, 0x5a, 0x7c, 0x4b, 0x58, 0xbc, 0x06, 0x57, 0xd2, 0x77, 0xb9, 0x62, 0x0e, 0x10, - 0x36, 0xbc, 0xf2, 0xd1, 0x97, 0x2f, 0xa6, 0x95, 0x67, 0x2f, 0xa6, 0x95, 0xbf, 0xbc, 0x98, 0x56, - 0x3e, 0x7d, 0x39, 0x3d, 0xf0, 0xec, 0xe5, 0xf4, 0xc0, 0x1f, 0x5e, 0x4e, 0x0f, 0xdc, 0xbb, 0x5c, - 0x23, 0x6c, 0x7b, 0x77, 0xab, 0x64, 0xd8, 0x0d, 0xf9, 0xef, 0x63, 0x1d, 0x12, 0xcf, 0x07, 0x12, - 0x9b, 0x17, 0xca, 0x8f, 0x23, 0x45, 0x77, 0xcb, 0xc1, 0x74, 0x6b, 0x44, 0x0c, 0x18, 0xbe, 0xf5, - 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xec, 0x0a, 0xe9, 0x01, 0xde, 0x27, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5a, 0xcf, 0x73, 0xdb, 0xc6, + 0xf5, 0x17, 0xa8, 0x1f, 0xa6, 0x96, 0x96, 0x9c, 0xac, 0x65, 0x8b, 0xa6, 0x6c, 0x51, 0x86, 0xe3, + 0xef, 0x57, 0x91, 0x63, 0x52, 0x52, 0x27, 0x75, 0xec, 0xc4, 0x3f, 0x44, 0x59, 0x92, 0x39, 0x8e, + 0x6d, 0x05, 0x52, 0x9c, 0x19, 0xa7, 0x2e, 0xba, 0x02, 0xd6, 0xd4, 0x56, 0x24, 0x00, 0x63, 0x21, + 0xda, 0xac, 0xc7, 0x97, 0xf6, 0x92, 0x43, 0x3b, 0x93, 0xb6, 0xd3, 0x73, 0x73, 0xee, 0xa1, 0xd3, + 0xe9, 0x64, 0xfa, 0x37, 0xe4, 0x56, 0x37, 0xbd, 0x74, 0xd2, 0xa9, 0xdb, 0xb1, 0xdb, 0x99, 0x5e, + 0x7a, 0x68, 0x3a, 0xed, 0xb9, 0xb3, 0x8b, 0x5d, 0x90, 0x80, 0x41, 0x11, 0x10, 0xd5, 0x9b, 0xb0, + 0xfb, 0xde, 0xe7, 0xfd, 0xd8, 0xb7, 0x6f, 0xdf, 0x7b, 0x14, 0x28, 0x13, 0xcb, 0xc3, 0xae, 0xb1, + 0x8d, 0x88, 0xa5, 0x53, 0x6c, 0xec, 0xba, 0xc4, 0x6b, 0x95, 0x0d, 0xa3, 0x59, 0x76, 0x5c, 0xbb, + 0x49, 0x4c, 0xec, 0x96, 0x9b, 0x0b, 0xe5, 0x87, 0xbb, 0xd8, 0x6d, 0x95, 0x1c, 0xd7, 0xf6, 0x6c, + 0x78, 0x26, 0x86, 0xa1, 0x64, 0x18, 0xcd, 0x92, 0x64, 0x28, 0x35, 0x17, 0x0a, 0x27, 0x6b, 0xb6, + 0x5d, 0xab, 0xe3, 0x32, 0x72, 0x48, 0x19, 0x59, 0x96, 0xed, 0x21, 0x8f, 0xd8, 0x16, 0xf5, 0x21, + 0x0a, 0x13, 0x35, 0xbb, 0x66, 0xf3, 0x3f, 0xcb, 0xec, 0x2f, 0xb1, 0x5a, 0x14, 0x3c, 0xfc, 0x6b, + 0x6b, 0xf7, 0x41, 0xd9, 0x23, 0x0d, 0x4c, 0x3d, 0xd4, 0x70, 0x04, 0xc1, 0x62, 0x12, 0x55, 0x03, + 0x2d, 0x7c, 0x9e, 0xf9, 0x6e, 0x3c, 0xcd, 0x85, 0x32, 0xdd, 0x46, 0x2e, 0x36, 0x75, 0xc3, 0xb6, + 0xe8, 0x6e, 0x23, 0xe0, 0x38, 0xbb, 0x07, 0xc7, 0x23, 0xe2, 0x62, 0x41, 0x76, 0xca, 0xb0, 0x1b, + 0xd8, 0xdb, 0x7a, 0xe0, 0x95, 0x0d, 0xb7, 0xe5, 0x78, 0x36, 0xdb, 0xde, 0xc1, 0x2d, 0x69, 0xe2, + 0x09, 0xc3, 0xa6, 0x0d, 0x9b, 0xea, 0xbe, 0x95, 0xfe, 0x87, 0xd8, 0x7a, 0xc3, 0xff, 0x2a, 0x53, + 0x0f, 0xed, 0x10, 0xab, 0x56, 0x6e, 0x2e, 0x6c, 0x61, 0x0f, 0x2d, 0xc8, 0x6f, 0x41, 0x35, 0x27, + 0xa8, 0xb6, 0x10, 0xc5, 0xbe, 0xff, 0x03, 0x42, 0x07, 0xd5, 0x88, 0xc5, 0x1d, 0xea, 0xd3, 0xaa, + 0x57, 0xc0, 0xd4, 0x07, 0x8c, 0x62, 0x59, 0x58, 0xb2, 0x86, 0x2d, 0x4c, 0x09, 0xd5, 0xf0, 0xc3, + 0x5d, 0x4c, 0x3d, 0x58, 0x04, 0x39, 0x69, 0xa3, 0x4e, 0xcc, 0xbc, 0x32, 0xa3, 0xcc, 0x8e, 0x6a, + 0x40, 0x2e, 0x55, 0x4d, 0xf5, 0x09, 0x38, 0x19, 0xcf, 0x4f, 0x1d, 0xdb, 0xa2, 0x18, 0x7e, 0x0c, + 0xc6, 0x6a, 0xfe, 0x92, 0x4e, 0x3d, 0xe4, 0x61, 0x0e, 0x91, 0x5b, 0x9c, 0x2f, 0x75, 0x0b, 0x85, + 0xe6, 0x42, 0x29, 0x82, 0xb5, 0xc1, 0xf8, 0x2a, 0x43, 0x5f, 0x3c, 0x2f, 0x0e, 0x68, 0x87, 0x6b, + 0x1d, 0x6b, 0xea, 0x2f, 0x15, 0x50, 0x08, 0x49, 0x5f, 0x66, 0x78, 0x81, 0xf2, 0x37, 0xc0, 0xb0, + 0xb3, 0x8d, 0xa8, 0x2f, 0x73, 0x7c, 0x71, 0xb1, 0x94, 0x20, 0xfc, 0x02, 0xe1, 0xeb, 0x8c, 0x53, + 0xf3, 0x01, 0xe0, 0x2a, 0x00, 0x6d, 0xcf, 0xe5, 0x33, 0xdc, 0x84, 0xff, 0x2b, 0x89, 0xa3, 0x61, + 0x6e, 0x2e, 0xf9, 0x61, 0x2e, 0xdc, 0x5c, 0x5a, 0x47, 0x35, 0x2c, 0xb4, 0xd0, 0x3a, 0x38, 0xd5, + 0x5f, 0x28, 0x11, 0x77, 0x4b, 0x85, 0x85, 0xb7, 0x2a, 0x60, 0x84, 0xab, 0x47, 0xf3, 0xca, 0xcc, + 0xe0, 0x6c, 0x6e, 0x71, 0x2e, 0x99, 0xca, 0x6c, 0x5b, 0x13, 0x9c, 0x70, 0x2d, 0x46, 0xd7, 0xff, + 0xef, 0xa9, 0xab, 0xaf, 0x40, 0x48, 0xd9, 0x1f, 0x8c, 0x80, 0x61, 0x0e, 0x0d, 0x4f, 0x80, 0xac, + 0xaf, 0x42, 0x10, 0x02, 0x87, 0xf8, 0x77, 0xd5, 0x84, 0x53, 0x60, 0xd4, 0xa8, 0x13, 0x6c, 0x79, + 0x6c, 0x2f, 0xc3, 0xf7, 0xb2, 0xfe, 0x42, 0xd5, 0x84, 0x47, 0xc1, 0xb0, 0x67, 0x3b, 0xfa, 0xed, + 0xfc, 0xe0, 0x8c, 0x32, 0x3b, 0xa6, 0x0d, 0x79, 0xb6, 0x73, 0x1b, 0xce, 0x01, 0xd8, 0x20, 0x96, + 0xee, 0xd8, 0x8f, 0x58, 0x4c, 0x59, 0xba, 0x4f, 0x31, 0x34, 0xa3, 0xcc, 0x0e, 0x6a, 0xe3, 0x0d, + 0x62, 0xad, 0xb3, 0x8d, 0xaa, 0xb5, 0xc9, 0x68, 0xe7, 0xc1, 0x44, 0x13, 0xd5, 0x89, 0x89, 0x3c, + 0xdb, 0xa5, 0x82, 0xc5, 0x40, 0x4e, 0x7e, 0x98, 0xe3, 0xc1, 0xf6, 0x1e, 0x67, 0x5a, 0x46, 0x0e, + 0x9c, 0x03, 0xaf, 0x07, 0xab, 0x3a, 0xc5, 0x1e, 0x27, 0x1f, 0xe1, 0xe4, 0x47, 0x82, 0x8d, 0x0d, + 0xec, 0x31, 0xda, 0x93, 0x60, 0x14, 0xd5, 0xeb, 0xf6, 0xa3, 0x3a, 0xa1, 0x5e, 0xfe, 0xd0, 0xcc, + 0xe0, 0xec, 0xa8, 0xd6, 0x5e, 0x80, 0x05, 0x90, 0x35, 0xb1, 0xd5, 0xe2, 0x9b, 0x59, 0xbe, 0x19, + 0x7c, 0xc3, 0x09, 0x19, 0x59, 0xa3, 0xdc, 0x62, 0x11, 0x25, 0x1f, 0x81, 0x6c, 0x03, 0x7b, 0xc8, + 0x44, 0x1e, 0xca, 0x03, 0xee, 0xf7, 0xb7, 0x53, 0x85, 0xdc, 0x2d, 0xc1, 0x2c, 0x62, 0x3d, 0x00, + 0x63, 0x4e, 0x66, 0x2e, 0x63, 0xb7, 0x1c, 0xe7, 0x73, 0x33, 0xca, 0xec, 0x90, 0x96, 0x6d, 0x10, + 0x6b, 0x83, 0x7d, 0xc3, 0x12, 0x38, 0xca, 0x95, 0xd6, 0x89, 0x85, 0x0c, 0x8f, 0x34, 0xb1, 0xde, + 0x44, 0x75, 0x9a, 0x3f, 0x3c, 0xa3, 0xcc, 0x66, 0xb5, 0xd7, 0xf9, 0x56, 0x55, 0xec, 0xdc, 0x45, + 0x75, 0x1a, 0xbd, 0xd2, 0x63, 0xd1, 0x2b, 0x0d, 0x1f, 0x83, 0x13, 0x81, 0x17, 0xb0, 0xa9, 0xbb, + 0xf8, 0x11, 0x72, 0x4d, 0xdd, 0xc4, 0x96, 0xdd, 0xa0, 0xf9, 0x71, 0x6e, 0xd7, 0x7b, 0x89, 0xec, + 0x5a, 0x6a, 0xa3, 0x68, 0x1c, 0xe4, 0x3a, 0xc7, 0xd0, 0x26, 0x51, 0xfc, 0x06, 0x54, 0xc1, 0x61, + 0xc7, 0x25, 0x36, 0x03, 0xe3, 0x6e, 0x3f, 0xc2, 0xdd, 0x1e, 0x5a, 0x83, 0x16, 0x38, 0x46, 0xac, + 0x07, 0x2e, 0x33, 0xc8, 0xb6, 0x74, 0x07, 0xb9, 0xa8, 0x81, 0x3d, 0xec, 0xd2, 0xfc, 0x6b, 0x5c, + 0xb3, 0x8b, 0x89, 0x34, 0xab, 0x06, 0x08, 0xeb, 0x01, 0x80, 0x36, 0x41, 0x62, 0x56, 0xd5, 0x1f, + 0x29, 0xe0, 0x34, 0xbf, 0xb2, 0x77, 0x65, 0xf4, 0xc8, 0xe3, 0x5a, 0x32, 0x4d, 0x57, 0xa6, 0x9a, + 0xcb, 0xe0, 0x35, 0x89, 0xaf, 0x23, 0xd3, 0x74, 0x31, 0xa5, 0xfe, 0x4d, 0xa9, 0xc0, 0xaf, 0x9f, + 0x17, 0xc7, 0x5b, 0xa8, 0x51, 0xbf, 0xa4, 0x8a, 0x0d, 0x55, 0x3b, 0x22, 0x69, 0x97, 0xfc, 0x95, + 0xe8, 0x99, 0x64, 0xa2, 0x67, 0x72, 0x29, 0xfb, 0xc9, 0x67, 0xc5, 0x81, 0xbf, 0x7f, 0x56, 0x1c, + 0x50, 0xef, 0x00, 0x75, 0x2f, 0x75, 0x44, 0x22, 0x79, 0x13, 0xbc, 0x16, 0x00, 0x86, 0xf4, 0xd1, + 0x8e, 0x18, 0x1d, 0xf4, 0x4c, 0x9b, 0x57, 0x0d, 0x5c, 0xef, 0xd0, 0xae, 0xc3, 0xc0, 0x78, 0xc0, + 0x78, 0x03, 0x23, 0x42, 0xfa, 0x32, 0x30, 0xac, 0x4e, 0xdb, 0xc0, 0x78, 0x87, 0xbf, 0xe2, 0x5c, + 0x75, 0x0a, 0x9c, 0xe0, 0x80, 0x9b, 0xdb, 0xae, 0xed, 0x79, 0x75, 0xcc, 0xdf, 0x0e, 0x61, 0x97, + 0xfa, 0x3b, 0xf9, 0x84, 0x44, 0x76, 0x85, 0x98, 0x22, 0xc8, 0xd1, 0x3a, 0xa2, 0xdb, 0x3a, 0x8f, + 0x06, 0x2e, 0x61, 0x50, 0x03, 0x7c, 0xe9, 0x16, 0x5b, 0x81, 0x8b, 0xe0, 0x58, 0x07, 0x81, 0xce, + 0x23, 0x1b, 0x59, 0x06, 0xe6, 0x26, 0x0e, 0x6a, 0x47, 0xdb, 0xa4, 0x4b, 0x72, 0x0b, 0x7e, 0x1b, + 0xe4, 0x2d, 0xfc, 0xd8, 0xd3, 0x5d, 0xec, 0xd4, 0xb1, 0x45, 0xe8, 0xb6, 0x6e, 0x20, 0xcb, 0x64, + 0xc6, 0x62, 0x9e, 0x29, 0x73, 0x8b, 0x85, 0x92, 0x5f, 0xd0, 0x94, 0x64, 0x41, 0x53, 0xda, 0x94, + 0x05, 0x4d, 0x25, 0xcb, 0x92, 0xc3, 0xa7, 0x7f, 0x2e, 0x2a, 0xda, 0x71, 0x86, 0xa2, 0x49, 0x90, + 0x65, 0x89, 0xa1, 0xbe, 0x05, 0xe6, 0xb8, 0x49, 0x1a, 0xae, 0xb1, 0x3b, 0xe6, 0x62, 0x53, 0xc6, + 0x48, 0xe8, 0x1a, 0x0a, 0x0f, 0xac, 0x80, 0x73, 0x89, 0xa8, 0x85, 0x47, 0x8e, 0x83, 0x11, 0x91, + 0x0a, 0x14, 0x7e, 0x3b, 0xc5, 0x97, 0xfa, 0x3e, 0x78, 0x93, 0xc3, 0x2c, 0xd5, 0xeb, 0xeb, 0x88, + 0xb8, 0xf4, 0x2e, 0xaa, 0x33, 0x1c, 0x76, 0x08, 0x95, 0x56, 0x1b, 0x31, 0x61, 0x59, 0xf1, 0x73, + 0x45, 0xd8, 0xd0, 0x03, 0x4e, 0x28, 0xf5, 0x10, 0xbc, 0xee, 0x20, 0xe2, 0xb2, 0xcc, 0xc7, 0x6a, + 0x32, 0x1e, 0x11, 0xe2, 0x09, 0x5d, 0x4d, 0x94, 0x10, 0x98, 0x0c, 0x5f, 0x04, 0x93, 0x10, 0x44, + 0x9c, 0xd5, 0xf6, 0xc5, 0xb8, 0x13, 0x22, 0x51, 0xff, 0xad, 0x80, 0xd3, 0x3d, 0xb9, 0xe0, 0x6a, + 0xd7, 0xbc, 0x30, 0xf5, 0xf5, 0xf3, 0xe2, 0xa4, 0x7f, 0x6d, 0xa2, 0x14, 0x31, 0x09, 0x62, 0x35, + 0xe6, 0xfa, 0x65, 0xa2, 0x38, 0x51, 0x8a, 0x98, 0x7b, 0x78, 0x0d, 0x1c, 0x0e, 0xa8, 0x76, 0x70, + 0x4b, 0x84, 0xdb, 0xa9, 0x92, 0xac, 0x48, 0x4b, 0x7e, 0x45, 0xca, 0x5d, 0xb2, 0xbb, 0x55, 0x27, + 0xc6, 0x4d, 0xdc, 0xd2, 0x82, 0xb3, 0xba, 0x89, 0x5b, 0xea, 0x04, 0x80, 0xfc, 0x60, 0x78, 0x8a, + 0x0c, 0x82, 0xe8, 0x3b, 0xe0, 0x68, 0x68, 0x55, 0x9c, 0x4b, 0x15, 0x8c, 0xf0, 0x0c, 0x4d, 0x45, + 0xd9, 0x77, 0x2e, 0xe1, 0x61, 0x30, 0x16, 0xf1, 0x0a, 0x0a, 0x00, 0xf5, 0x96, 0x08, 0x88, 0x50, + 0xe5, 0x74, 0xc7, 0xf1, 0xb0, 0x59, 0xb5, 0x82, 0x54, 0x91, 0xbc, 0x6e, 0x7d, 0x28, 0xa2, 0xbe, + 0x17, 0x5c, 0x50, 0x98, 0x9d, 0xea, 0x2c, 0x44, 0x22, 0x07, 0x86, 0xe5, 0x65, 0x98, 0xea, 0xa8, + 0x48, 0xc2, 0x27, 0x88, 0xa9, 0xba, 0x04, 0xa6, 0x43, 0x22, 0xf7, 0xa1, 0xf5, 0x4f, 0x0e, 0x81, + 0x99, 0x2e, 0x18, 0xc1, 0x5f, 0xfd, 0xbe, 0x45, 0xd1, 0x10, 0xc9, 0xa4, 0x0d, 0x11, 0x98, 0x07, + 0xc3, 0xbc, 0x54, 0xe3, 0xd1, 0x35, 0x58, 0xc9, 0xe4, 0x15, 0xcd, 0x5f, 0x80, 0x17, 0xc1, 0x90, + 0xcb, 0xb2, 0xdc, 0x10, 0x57, 0xe7, 0x2c, 0x3b, 0xe0, 0xaf, 0x9e, 0x17, 0xa7, 0xfc, 0xe2, 0x94, + 0x9a, 0x3b, 0x25, 0x62, 0x97, 0x1b, 0xc8, 0xdb, 0x2e, 0xbd, 0x8f, 0x6b, 0xc8, 0x68, 0x5d, 0xc7, + 0x46, 0x5e, 0xd1, 0x38, 0x0b, 0x3c, 0x0b, 0xc6, 0x03, 0xb5, 0x7c, 0xf4, 0x61, 0x9e, 0x61, 0xc7, + 0xe4, 0x2a, 0x2f, 0x01, 0xe1, 0x7d, 0x90, 0x0f, 0xc8, 0x0c, 0xbb, 0xd1, 0x20, 0x94, 0xb2, 0x3a, + 0x81, 0x4b, 0x1d, 0xe1, 0x52, 0xcf, 0x24, 0x90, 0xaa, 0x1d, 0x97, 0x20, 0xcb, 0x01, 0x86, 0xc6, + 0xb4, 0xb8, 0x0f, 0xf2, 0x81, 0x6f, 0xa3, 0xf0, 0x87, 0x52, 0xc0, 0x4b, 0x90, 0x08, 0xfc, 0x4d, + 0x90, 0x33, 0x31, 0x35, 0x5c, 0xe2, 0xf0, 0xe2, 0x3d, 0xcb, 0x5d, 0x7f, 0x46, 0x16, 0xef, 0xb2, + 0xcb, 0x93, 0x95, 0xfb, 0xf5, 0x36, 0xa9, 0xb8, 0x2c, 0x9d, 0xdc, 0xf0, 0x3e, 0x38, 0x11, 0xe8, + 0x6a, 0x3b, 0xd8, 0xe5, 0x25, 0xb1, 0x0c, 0x08, 0x5e, 0xb8, 0x56, 0x4e, 0x7f, 0xf9, 0xf9, 0xf9, + 0x53, 0x02, 0x3d, 0x08, 0x20, 0x11, 0x08, 0x1b, 0x9e, 0x4b, 0xac, 0x9a, 0x36, 0x29, 0x31, 0xee, + 0x08, 0x08, 0x19, 0x27, 0xc7, 0xc1, 0xc8, 0x77, 0x11, 0xa9, 0x63, 0x93, 0xd7, 0xba, 0x59, 0x4d, + 0x7c, 0xc1, 0x4b, 0x60, 0x84, 0x75, 0x7a, 0xbb, 0x94, 0x57, 0xaa, 0xe3, 0x8b, 0x6a, 0x37, 0xf5, + 0x2b, 0xb6, 0x65, 0x6e, 0x70, 0x4a, 0x4d, 0x70, 0xc0, 0x4d, 0x10, 0x84, 0xa3, 0xee, 0xd9, 0x3b, + 0xd8, 0xf2, 0xeb, 0xd8, 0xd1, 0xca, 0x39, 0xe1, 0xd5, 0x63, 0xaf, 0x7a, 0xb5, 0x6a, 0x79, 0x5f, + 0x7e, 0x7e, 0x1e, 0x08, 0x21, 0x55, 0xcb, 0xd3, 0xc6, 0x25, 0xc6, 0x26, 0x87, 0x60, 0xa1, 0x13, + 0xa0, 0xfa, 0xa1, 0x33, 0xe6, 0x87, 0x8e, 0x5c, 0xf5, 0x43, 0xe7, 0x9b, 0x60, 0x52, 0x5c, 0x5f, + 0x4c, 0x75, 0x63, 0xd7, 0x75, 0x59, 0x57, 0x83, 0x1d, 0xdb, 0xd8, 0xe6, 0x55, 0x6f, 0x56, 0x3b, + 0x16, 0x6c, 0x2f, 0xfb, 0xbb, 0x2b, 0x6c, 0x53, 0xfd, 0x44, 0x01, 0xc5, 0xae, 0x17, 0x5b, 0xe4, + 0x0f, 0x0c, 0x40, 0x3b, 0x35, 0x88, 0x97, 0x69, 0x25, 0x51, 0x32, 0xec, 0x75, 0xdd, 0xb5, 0x0e, + 0x60, 0xf5, 0x21, 0x98, 0x8f, 0x69, 0x2f, 0x03, 0xda, 0x1b, 0x88, 0x6e, 0xda, 0xe2, 0x0b, 0x1f, + 0x4c, 0xe9, 0xaa, 0xde, 0x05, 0x0b, 0x29, 0x44, 0x0a, 0x77, 0x9c, 0xee, 0xc8, 0x31, 0xc4, 0x94, + 0xd9, 0x33, 0xd7, 0xce, 0x74, 0xbc, 0x2c, 0x3d, 0x17, 0x5f, 0xe8, 0x86, 0xef, 0x4c, 0xd2, 0xdc, + 0x19, 0x6b, 0x67, 0x26, 0xb9, 0x9d, 0x35, 0xf0, 0x56, 0x32, 0x75, 0x84, 0x89, 0x17, 0x44, 0xaa, + 0x53, 0x92, 0x67, 0x05, 0xce, 0xa0, 0xaa, 0x22, 0xc5, 0x57, 0xea, 0xb6, 0xb1, 0x43, 0x3f, 0xb4, + 0x3c, 0x52, 0xbf, 0x8d, 0x1f, 0xfb, 0xb1, 0x26, 0x9f, 0xdb, 0x7b, 0xa2, 0x64, 0x8f, 0xa7, 0x11, + 0x1a, 0xbc, 0x0d, 0x26, 0xb7, 0xf8, 0xbe, 0xbe, 0xcb, 0x08, 0x74, 0x5e, 0x73, 0xfa, 0xf1, 0xac, + 0xf0, 0x1e, 0x72, 0x62, 0x2b, 0x86, 0x5d, 0x5d, 0x12, 0xf5, 0xf7, 0x72, 0xe0, 0xba, 0x55, 0xd7, + 0x6e, 0x2c, 0x8b, 0x9e, 0x5e, 0xba, 0x3b, 0xd4, 0xf7, 0x2b, 0xe1, 0xbe, 0x5f, 0x5d, 0x05, 0x67, + 0xf6, 0x84, 0x68, 0x17, 0xd7, 0x7b, 0x3f, 0x77, 0xef, 0x89, 0xca, 0x3d, 0x14, 0x5b, 0x89, 0x1f, + 0xcb, 0x67, 0x43, 0x71, 0xd3, 0xa1, 0xc4, 0xd2, 0x43, 0x53, 0x8f, 0x4c, 0x78, 0xea, 0x71, 0x06, + 0x8c, 0xd9, 0x8f, 0xac, 0x8e, 0x40, 0x1a, 0xe4, 0xfb, 0x87, 0xf9, 0xa2, 0x4c, 0x90, 0xc1, 0x90, + 0x60, 0xa8, 0xdb, 0x90, 0x60, 0xf8, 0x20, 0x87, 0x04, 0x0f, 0x40, 0x8e, 0x58, 0xc4, 0xd3, 0x45, + 0xc1, 0x35, 0xc2, 0xb1, 0x57, 0x52, 0x61, 0x57, 0x2d, 0xe2, 0x11, 0x54, 0x27, 0xdf, 0x43, 0x91, + 0xd6, 0x18, 0x30, 0x64, 0xbf, 0x2c, 0x83, 0x0d, 0x30, 0xe1, 0x0f, 0x62, 0xe8, 0x36, 0x72, 0x88, + 0x55, 0x93, 0x02, 0x0f, 0x71, 0x81, 0xef, 0x26, 0xab, 0xf0, 0x18, 0xc0, 0x86, 0xcf, 0xdf, 0x21, + 0x06, 0x3a, 0xd1, 0x75, 0xda, 0xbd, 0xdf, 0xcf, 0xfe, 0x4f, 0xfa, 0xfd, 0x70, 0x60, 0x8f, 0x46, + 0x02, 0xbb, 0x12, 0xc9, 0xf4, 0x62, 0x42, 0xc9, 0x9a, 0xb3, 0xc4, 0x61, 0xb9, 0x13, 0x29, 0xe1, + 0x42, 0x18, 0x22, 0x36, 0xd7, 0x80, 0x1c, 0x74, 0xea, 0x1e, 0x69, 0xc8, 0xa1, 0x69, 0xb2, 0xae, + 0x30, 0x57, 0x6b, 0x03, 0x2e, 0x7e, 0x55, 0x04, 0xc3, 0x5c, 0x1a, 0xfc, 0x9b, 0x02, 0x26, 0xe2, + 0xe4, 0xc2, 0x6b, 0xe9, 0x9f, 0xa1, 0xf0, 0x90, 0xb8, 0xb0, 0xd4, 0x07, 0x82, 0x6f, 0xb0, 0x7a, + 0xe3, 0xfb, 0xbf, 0xff, 0xeb, 0x4f, 0x33, 0x15, 0x78, 0xad, 0xf7, 0x6f, 0x0a, 0x81, 0x77, 0x85, + 0x9d, 0xe5, 0x27, 0x1d, 0xfe, 0x7e, 0x0a, 0xff, 0xa8, 0x88, 0x56, 0x24, 0xfc, 0x20, 0xc1, 0xab, + 0xe9, 0x95, 0x0c, 0x4d, 0x93, 0x0b, 0xd7, 0xf6, 0x0f, 0x20, 0x8c, 0x5c, 0xe2, 0x46, 0xbe, 0x0b, + 0x2f, 0xa6, 0x30, 0xd2, 0x1f, 0xea, 0x96, 0x9f, 0xf0, 0xe4, 0xf1, 0x14, 0xfe, 0x38, 0x23, 0x72, + 0x5a, 0xec, 0xf8, 0x07, 0xae, 0x26, 0xd7, 0x71, 0xaf, 0x71, 0x56, 0x61, 0xad, 0x6f, 0x1c, 0x61, + 0xf2, 0x16, 0x37, 0xf9, 0x5b, 0xf0, 0x5e, 0x82, 0xdf, 0x8a, 0x82, 0xb1, 0x6d, 0xa8, 0x8f, 0x0d, + 0x1f, 0x6f, 0xf9, 0x49, 0xf4, 0x0d, 0x8f, 0xf3, 0x49, 0x67, 0xef, 0xb5, 0x2f, 0x9f, 0xc4, 0x4c, + 0xc0, 0xf6, 0xe5, 0x93, 0xb8, 0xd1, 0xd5, 0xfe, 0x7c, 0x12, 0x32, 0x3b, 0xea, 0x93, 0x68, 0xe3, + 0xff, 0x14, 0xfe, 0x56, 0x11, 0x6d, 0x7a, 0x68, 0xac, 0x05, 0xaf, 0x24, 0xb7, 0x21, 0x6e, 0x5a, + 0x56, 0xb8, 0xba, 0x6f, 0x7e, 0x61, 0xfb, 0x3b, 0xdc, 0xf6, 0x45, 0x38, 0xdf, 0xdb, 0x76, 0x4f, + 0x00, 0xf8, 0xbf, 0x1b, 0xc1, 0x9f, 0x65, 0x44, 0x51, 0xb1, 0xf7, 0x9c, 0x0a, 0xde, 0x49, 0xae, + 0x62, 0xa2, 0xf9, 0x58, 0x61, 0xfd, 0xe0, 0x00, 0x85, 0x13, 0x6e, 0x72, 0x27, 0xac, 0xc0, 0xe5, + 0xde, 0x4e, 0x70, 0x03, 0xc4, 0xf6, 0xad, 0x08, 0x0d, 0xe4, 0xe1, 0x0f, 0x33, 0xa2, 0x5e, 0xdb, + 0x73, 0x52, 0x06, 0x6f, 0x27, 0xb7, 0x22, 0xc9, 0x04, 0xaf, 0x70, 0xe7, 0xc0, 0xf0, 0x84, 0x53, + 0x56, 0xb8, 0x53, 0xae, 0xc2, 0xcb, 0xbd, 0x9d, 0x22, 0xa2, 0x5c, 0x77, 0x18, 0x6a, 0x24, 0xfd, + 0xff, 0x5a, 0x01, 0xb9, 0x8e, 0x49, 0x14, 0xbc, 0x90, 0x5c, 0xcf, 0xd0, 0x44, 0xab, 0xf0, 0x4e, + 0x7a, 0x46, 0x61, 0xc9, 0x3c, 0xb7, 0x64, 0x0e, 0xce, 0xf6, 0xb6, 0xc4, 0x2f, 0x9d, 0xda, 0xb1, + 0xbd, 0xf7, 0x34, 0x2a, 0x4d, 0x6c, 0x27, 0x1a, 0x93, 0xa5, 0x89, 0xed, 0x64, 0x83, 0xb2, 0x34, + 0xb1, 0x6d, 0x33, 0x10, 0x9d, 0x58, 0x7a, 0xbb, 0x81, 0x8d, 0x1c, 0xe6, 0x6f, 0x32, 0x62, 0xa8, + 0x9c, 0xa4, 0xb9, 0x84, 0x1f, 0xee, 0xf7, 0x81, 0xde, 0xb3, 0x3f, 0x2e, 0xdc, 0x3d, 0x68, 0x58, + 0xe1, 0xa9, 0x7b, 0xdc, 0x53, 0x9b, 0x50, 0x4b, 0x5d, 0x0d, 0xe8, 0x0e, 0x76, 0xdb, 0x4e, 0x8b, + 0x7b, 0x12, 0x7f, 0x95, 0x01, 0x6f, 0x24, 0xe9, 0x56, 0xe1, 0x7a, 0x1f, 0x0f, 0x7d, 0x6c, 0x1f, + 0x5e, 0xf8, 0xe0, 0x00, 0x11, 0x85, 0xa7, 0x0c, 0xee, 0xa9, 0xfb, 0xf0, 0xe3, 0x34, 0x9e, 0x0a, + 0x0f, 0xe7, 0x7a, 0x57, 0x11, 0xff, 0x54, 0xc0, 0x64, 0x97, 0x59, 0x0b, 0x5c, 0xee, 0x67, 0x52, + 0x23, 0x1d, 0x73, 0xbd, 0x3f, 0x90, 0xf4, 0xf7, 0x2b, 0xb0, 0xb8, 0xeb, 0xfd, 0xfa, 0x87, 0x22, + 0x1a, 0xec, 0xb8, 0x39, 0x02, 0x4c, 0x31, 0x9f, 0xda, 0x63, 0x56, 0x51, 0x58, 0xed, 0x17, 0x26, + 0x7d, 0xf5, 0xdc, 0x65, 0xec, 0x01, 0xff, 0x15, 0xfd, 0xf7, 0x8b, 0xf0, 0x60, 0x02, 0xae, 0xa5, + 0x3f, 0xa2, 0xd8, 0xe9, 0x48, 0xe1, 0x46, 0xff, 0x40, 0x7d, 0xf4, 0x0c, 0xc4, 0x2c, 0x3f, 0x09, + 0x7a, 0xd8, 0xa7, 0xf0, 0x4f, 0xb2, 0x16, 0x0c, 0xa5, 0xa7, 0x34, 0xb5, 0x60, 0xdc, 0xfc, 0xa5, + 0x70, 0x75, 0xdf, 0xfc, 0xc2, 0xb4, 0x55, 0x6e, 0xda, 0x35, 0x78, 0x25, 0x6d, 0x02, 0x8c, 0x44, + 0xf1, 0x7f, 0x14, 0x90, 0xef, 0xd6, 0x51, 0xc3, 0xeb, 0xfb, 0xee, 0x4d, 0x3b, 0x9a, 0xfa, 0xc2, + 0x4a, 0x9f, 0x28, 0xc2, 0xe2, 0x5b, 0xdc, 0xe2, 0x35, 0xb8, 0x92, 0xbe, 0xcb, 0xe5, 0x73, 0x80, + 0xb0, 0xe1, 0x95, 0x8f, 0xbe, 0x78, 0x31, 0xad, 0x3c, 0x7b, 0x31, 0xad, 0xfc, 0xe5, 0xc5, 0xb4, + 0xf2, 0xe9, 0xcb, 0xe9, 0x81, 0x67, 0x2f, 0xa7, 0x07, 0xfe, 0xf0, 0x72, 0x7a, 0xe0, 0xde, 0xe5, + 0x1a, 0xf1, 0xb6, 0x77, 0xb7, 0x4a, 0x86, 0xdd, 0x10, 0xff, 0x40, 0xd6, 0x21, 0xf1, 0x7c, 0x20, + 0xb1, 0x79, 0xa1, 0xfc, 0x38, 0x52, 0x74, 0xb7, 0x1c, 0x4c, 0xb7, 0x46, 0xf8, 0x80, 0xe1, 0x1b, + 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x40, 0x88, 0xd1, 0xbd, 0xe1, 0x27, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2179,13 +2189,13 @@ type QueryClient interface { // QueryRegisteredConsumerRewardDenoms returns a list of consumer reward // denoms that are registered QueryRegisteredConsumerRewardDenoms(ctx context.Context, in *QueryRegisteredConsumerRewardDenomsRequest, opts ...grpc.CallOption) (*QueryRegisteredConsumerRewardDenomsResponse, error) - // QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus address - // between provider and consumer chain + // QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus + // address between provider and consumer chain QueryAllPairsValConsAddrByConsumer(ctx context.Context, in *QueryAllPairsValConsAddrByConsumerRequest, opts ...grpc.CallOption) (*QueryAllPairsValConsAddrByConsumerResponse, error) // QueryParams returns all current values of provider parameters QueryParams(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) - // QueryConsumerChainOptedInValidators returns a list of validators consensus addresses - // that opted-in to the given consumer chain + // QueryConsumerChainOptedInValidators returns a list of validators consensus + // addresses that opted-in to the given consumer chain QueryConsumerChainOptedInValidators(ctx context.Context, in *QueryConsumerChainOptedInValidatorsRequest, opts ...grpc.CallOption) (*QueryConsumerChainOptedInValidatorsResponse, error) // QueryConsumerChainsValidatorHasToValidate returns a list of consumer chains // that a given validator must validate @@ -2193,9 +2203,10 @@ type QueryClient interface { // QueryValidatorConsumerCommissionRate returns the commission rate a given // validator charges on a given consumer chain QueryValidatorConsumerCommissionRate(ctx context.Context, in *QueryValidatorConsumerCommissionRateRequest, opts ...grpc.CallOption) (*QueryValidatorConsumerCommissionRateResponse, error) - // QueryConsumerValidators returns the latest set consumer-validator set for a given consumer ID - // Note that this does not necessarily mean that the consumer chain is using this validator set at this exact moment - // because a VSCPacket could be delayed to be delivered on the consumer chain. + // QueryConsumerValidators returns the latest set consumer-validator set for a + // given consumer ID Note that this does not necessarily mean that the consumer + // chain is using this validator set at this exact moment because a VSCPacket + // could be delayed to be delivered on the consumer chain. QueryConsumerValidators(ctx context.Context, in *QueryConsumerValidatorsRequest, opts ...grpc.CallOption) (*QueryConsumerValidatorsResponse, error) // QueryBlocksUntilNextEpoch returns the number of blocks until the next epoch // starts and validator updates are sent to the consumer chains @@ -2383,13 +2394,13 @@ type QueryServer interface { // QueryRegisteredConsumerRewardDenoms returns a list of consumer reward // denoms that are registered QueryRegisteredConsumerRewardDenoms(context.Context, *QueryRegisteredConsumerRewardDenomsRequest) (*QueryRegisteredConsumerRewardDenomsResponse, error) - // QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus address - // between provider and consumer chain + // QueryAllPairsValConsAddrByConsumer returns a list of pair valconsensus + // address between provider and consumer chain QueryAllPairsValConsAddrByConsumer(context.Context, *QueryAllPairsValConsAddrByConsumerRequest) (*QueryAllPairsValConsAddrByConsumerResponse, error) // QueryParams returns all current values of provider parameters QueryParams(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) - // QueryConsumerChainOptedInValidators returns a list of validators consensus addresses - // that opted-in to the given consumer chain + // QueryConsumerChainOptedInValidators returns a list of validators consensus + // addresses that opted-in to the given consumer chain QueryConsumerChainOptedInValidators(context.Context, *QueryConsumerChainOptedInValidatorsRequest) (*QueryConsumerChainOptedInValidatorsResponse, error) // QueryConsumerChainsValidatorHasToValidate returns a list of consumer chains // that a given validator must validate @@ -2397,9 +2408,10 @@ type QueryServer interface { // QueryValidatorConsumerCommissionRate returns the commission rate a given // validator charges on a given consumer chain QueryValidatorConsumerCommissionRate(context.Context, *QueryValidatorConsumerCommissionRateRequest) (*QueryValidatorConsumerCommissionRateResponse, error) - // QueryConsumerValidators returns the latest set consumer-validator set for a given consumer ID - // Note that this does not necessarily mean that the consumer chain is using this validator set at this exact moment - // because a VSCPacket could be delayed to be delivered on the consumer chain. + // QueryConsumerValidators returns the latest set consumer-validator set for a + // given consumer ID Note that this does not necessarily mean that the consumer + // chain is using this validator set at this exact moment because a VSCPacket + // could be delayed to be delivered on the consumer chain. QueryConsumerValidators(context.Context, *QueryConsumerValidatorsRequest) (*QueryConsumerValidatorsResponse, error) // QueryBlocksUntilNextEpoch returns the number of blocks until the next epoch // starts and validator updates are sent to the consumer chains @@ -6747,7 +6759,7 @@ func (m *PairValConAddrProviderAndConsumer) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ConsumerKey == nil { - m.ConsumerKey = &crypto.PublicKey{} + m.ConsumerKey = &v1.PublicKey{} } if err := m.ConsumerKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7244,7 +7256,7 @@ func (m *QueryConsumerValidatorsValidator) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ConsumerKey == nil { - m.ConsumerKey = &crypto.PublicKey{} + m.ConsumerKey = &v1.PublicKey{} } if err := m.ConsumerKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index bc01f4c717..a94fa049c9 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -7,7 +7,7 @@ import ( context "context" cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - types "github.com/cometbft/cometbft/proto/tendermint/types" + v2 "github.com/cometbft/cometbft/api/cometbft/types/v2" _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/codec/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" @@ -16,7 +16,7 @@ import ( grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" - types1 "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" + types "github.com/cosmos/ibc-go/v10/modules/core/02-client/types" _07_tendermint "github.com/cosmos/ibc-go/v10/modules/light-clients/07-tendermint" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" @@ -125,8 +125,8 @@ func (m *MsgAssignConsumerKeyResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgAssignConsumerKeyResponse proto.InternalMessageInfo -// MsgSubmitConsumerMisbehaviour defines a message that reports a light client attack, -// also known as a misbehaviour, observed on a consumer chain +// MsgSubmitConsumerMisbehaviour defines a message that reports a light client +// attack, also known as a misbehaviour, observed on a consumer chain type MsgSubmitConsumerMisbehaviour struct { Submitter string `protobuf:"bytes,1,opt,name=submitter,proto3" json:"submitter,omitempty"` // The Misbehaviour of the consumer chain wrapping @@ -211,7 +211,7 @@ type MsgSubmitConsumerDoubleVoting struct { Submitter string `protobuf:"bytes,1,opt,name=submitter,proto3" json:"submitter,omitempty"` // The equivocation of the consumer chain wrapping // an evidence of a validator that signed two conflicting votes - DuplicateVoteEvidence *types.DuplicateVoteEvidence `protobuf:"bytes,2,opt,name=duplicate_vote_evidence,json=duplicateVoteEvidence,proto3" json:"duplicate_vote_evidence,omitempty"` + DuplicateVoteEvidence *v2.DuplicateVoteEvidence `protobuf:"bytes,2,opt,name=duplicate_vote_evidence,json=duplicateVoteEvidence,proto3" json:"duplicate_vote_evidence,omitempty"` // The light client header of the infraction block InfractionBlockHeader *_07_tendermint.Header `protobuf:"bytes,3,opt,name=infraction_block_header,json=infractionBlockHeader,proto3" json:"infraction_block_header,omitempty"` // the consumer id of the consumer chain where the double-voting took place @@ -388,7 +388,7 @@ type MsgConsumerAddition struct { // the proposed initial height of new consumer chain. // For a completely new chain, this will be {0,1}. However, it may be // different if this is a chain that is converting to a consumer chain. - InitialHeight types1.Height `protobuf:"bytes,2,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height"` + InitialHeight types.Height `protobuf:"bytes,2,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height"` // The hash of the consumer chain genesis state without the consumer CCV // module genesis params. It is used for off-chain confirmation of // genesis.json validity by validators and other parties. @@ -428,30 +428,39 @@ type MsgConsumerAddition struct { // chain. it is most relevant for chains performing a sovereign to consumer // changeover in order to maintain the existing ibc transfer channel DistributionTransmissionChannel string `protobuf:"bytes,12,opt,name=distribution_transmission_channel,json=distributionTransmissionChannel,proto3" json:"distribution_transmission_channel,omitempty"` - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. Top_N uint32 `protobuf:"varint,13,opt,name=top_N,json=topN,proto3" json:"top_N,omitempty"` - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. ValidatorsPowerCap uint32 `protobuf:"varint,14,opt,name=validators_power_cap,json=validatorsPowerCap,proto3" json:"validators_power_cap,omitempty"` - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. ValidatorSetCap uint32 `protobuf:"varint,15,opt,name=validator_set_cap,json=validatorSetCap,proto3" json:"validator_set_cap,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. Allowlist []string `protobuf:"bytes,16,rep,name=allowlist,proto3" json:"allowlist,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. Denylist []string `protobuf:"bytes,17,rep,name=denylist,proto3" json:"denylist,omitempty"` // signer address Authority string `protobuf:"bytes,18,opt,name=authority,proto3" json:"authority,omitempty"` - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. MinStake uint64 `protobuf:"varint,19,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. AllowInactiveVals bool `protobuf:"varint,20,opt,name=allow_inactive_vals,json=allowInactiveVals,proto3" json:"allow_inactive_vals,omitempty"` } @@ -495,11 +504,11 @@ func (m *MsgConsumerAddition) GetChainId() string { return "" } -func (m *MsgConsumerAddition) GetInitialHeight() types1.Height { +func (m *MsgConsumerAddition) GetInitialHeight() types.Height { if m != nil { return m.InitialHeight } - return types1.Height{} + return types.Height{} } func (m *MsgConsumerAddition) GetGenesisHash() []byte { @@ -695,8 +704,9 @@ func (m *MsgConsumerRemoval) GetAuthority() string { return "" } -// MsgRemoveConsumer defines the message used to remove (and stop) a consumer chain. -// If it passes, all the consumer chain's state is eventually removed from the provider chain. +// MsgRemoveConsumer defines the message used to remove (and stop) a consumer +// chain. If it passes, all the consumer chain's state is eventually removed +// from the provider chain. type MsgRemoveConsumer struct { // the consumer id of the consumer chain to be stopped ConsumerId string `protobuf:"bytes,1,opt,name=consumer_id,json=consumerId,proto3" json:"consumer_id,omitempty"` @@ -751,7 +761,8 @@ func (m *MsgRemoveConsumer) GetOwner() string { return "" } -// MsgRemoveConsumerResponse defines response type for MsgRemoveConsumer messages +// MsgRemoveConsumerResponse defines response type for MsgRemoveConsumer +// messages type MsgRemoveConsumerResponse struct { } @@ -791,7 +802,8 @@ var xxx_messageInfo_MsgRemoveConsumerResponse proto.InternalMessageInfo // ChangeRewardDenomsProposal is a governance proposal on the provider chain to // mutate the set of denoms accepted by the provider as rewards. // -// Note: this replaces ChangeRewardDenomsProposal which is deprecated and will be removed soon +// Note: this replaces ChangeRewardDenomsProposal which is deprecated and will +// be removed soon type MsgChangeRewardDenoms struct { // the list of consumer reward denoms to add DenomsToAdd []string `protobuf:"bytes,1,rep,name=denoms_to_add,json=denomsToAdd,proto3" json:"denoms_to_add,omitempty"` @@ -855,7 +867,8 @@ func (m *MsgChangeRewardDenoms) GetAuthority() string { return "" } -// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms messages +// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms +// messages type MsgChangeRewardDenomsResponse struct { } @@ -897,10 +910,12 @@ type MsgOptIn struct { ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` // Deprecated: Do not use. // the validator address on the provider ProviderAddr string `protobuf:"bytes,2,opt,name=provider_addr,json=providerAddr,proto3" json:"provider_addr,omitempty" yaml:"address"` - // (optional) The consensus public key to use on the consumer in json string format corresponding to proto-any, - // for example `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}`. - // This field is optional and can remain empty (i.e., `consumer_key = ""`). A validator can always change the - // consumer public key at a later stage by issuing a `MsgAssignConsumerKey` message. + // (optional) The consensus public key to use on the consumer in json string + // format corresponding to proto-any, for example + // `{"@type":"/cosmos.crypto.ed25519.PubKey","key":"Ui5Gf1+mtWUdH8u3xlmzdKID+F3PK0sfXZ73GZ6q6is="}`. + // This field is optional and can remain empty (i.e., `consumer_key = ""`). A + // validator can always change the consumer public key at a later stage by + // issuing a `MsgAssignConsumerKey` message. ConsumerKey string `protobuf:"bytes,3,opt,name=consumer_key,json=consumerKey,proto3" json:"consumer_key,omitempty"` // submitter address Signer string `protobuf:"bytes,4,opt,name=signer,proto3" json:"signer,omitempty"` @@ -1152,30 +1167,39 @@ type MsgConsumerModification struct { Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // the chain-id of the consumer chain to be modified ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - // Corresponds to the percentage of validators that have to validate the chain under the Top N case. - // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power - // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. - // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + // Corresponds to the percentage of validators that have to validate the chain + // under the Top N case. For example, 53 corresponds to a Top 53% chain, + // meaning that the top 53% provider validators by voting power have to + // validate the proposed consumer chain. top_N can either be 0 or any value in + // [50, 100]. A chain can join with top_N == 0 as an Opt In chain, or with + // top_N ∈ [50, 100] as a Top N chain. Top_N uint32 `protobuf:"varint,4,opt,name=top_N,json=topN,proto3" json:"top_N,omitempty"` - // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if - // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the - // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only - // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need - // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + // Corresponds to the maximum power (percentage-wise) a validator can have on + // the consumer chain. For instance, if `validators_power_cap` is set to 32, + // it means that no validator can have more than 32% of the voting power on + // the consumer chain. Note that this might not be feasible. For example, + // think of a consumer chain with only 5 validators and with + // `validators_power_cap` set to 10%. In such a scenario, at least one + // validator would need to have more than 20% of the total voting power. + // Therefore, `validators_power_cap` operates on a best-effort basis. ValidatorsPowerCap uint32 `protobuf:"varint,5,opt,name=validators_power_cap,json=validatorsPowerCap,proto3" json:"validators_power_cap,omitempty"` - // Corresponds to the maximum number of validators that can validate a consumer chain. - // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + // Corresponds to the maximum number of validators that can validate a + // consumer chain. Only applicable to Opt In chains. Setting + // `validator_set_cap` on a Top N chain is a no-op. ValidatorSetCap uint32 `protobuf:"varint,6,opt,name=validator_set_cap,json=validatorSetCap,proto3" json:"validator_set_cap,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate - // the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // are the ONLY ones that can validate the consumer chain. Allowlist []string `protobuf:"bytes,7,rep,name=allowlist,proto3" json:"allowlist,omitempty"` - // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + // Corresponds to a list of provider consensus addresses of validators that + // CANNOT validate the consumer chain. Denylist []string `protobuf:"bytes,8,rep,name=denylist,proto3" json:"denylist,omitempty"` // signer address Authority string `protobuf:"bytes,9,opt,name=authority,proto3" json:"authority,omitempty"` - // Corresponds to the minimal amount of (provider chain) stake required to validate on the consumer chain. + // Corresponds to the minimal amount of (provider chain) stake required to + // validate on the consumer chain. MinStake uint64 `protobuf:"varint,10,opt,name=min_stake,json=minStake,proto3" json:"min_stake,omitempty"` - // Corresponds to whether inactive validators are allowed to validate the consumer chain. + // Corresponds to whether inactive validators are allowed to validate the + // consumer chain. AllowInactiveVals bool `protobuf:"varint,11,opt,name=allow_inactive_vals,json=allowInactiveVals,proto3" json:"allow_inactive_vals,omitempty"` } @@ -1482,11 +1506,13 @@ type MsgUpdateConsumer struct { InitializationParameters *ConsumerInitializationParameters `protobuf:"bytes,5,opt,name=initialization_parameters,json=initializationParameters,proto3" json:"initialization_parameters,omitempty"` // the power-shaping parameters of the consumer when updated PowerShapingParameters *PowerShapingParameters `protobuf:"bytes,6,opt,name=power_shaping_parameters,json=powerShapingParameters,proto3" json:"power_shaping_parameters,omitempty"` - // allowlisted reward denoms of the consumer (if provided they overwrite previously set reward denoms) + // allowlisted reward denoms of the consumer (if provided they overwrite + // previously set reward denoms) AllowlistedRewardDenoms *AllowlistedRewardDenoms `protobuf:"bytes,7,opt,name=allowlisted_reward_denoms,json=allowlistedRewardDenoms,proto3" json:"allowlisted_reward_denoms,omitempty"` - // (optional) If the consumer chain has NOT yet launched, the chain id can be updated. After a chain has launched - // the chain id CANNOT be updated. - // This field is optional and can remain empty (i.e., `new_chain_id = ""`) or correspond to the chain id the chain already has. + // (optional) If the consumer chain has NOT yet launched, the chain id can be + // updated. After a chain has launched the chain id CANNOT be updated. This + // field is optional and can remain empty (i.e., `new_chain_id = ""`) or + // correspond to the chain id the chain already has. NewChainId string `protobuf:"bytes,8,opt,name=new_chain_id,json=newChainId,proto3" json:"new_chain_id,omitempty"` // infraction parameters for slashing and jailing InfractionParameters *InfractionParameters `protobuf:"bytes,9,opt,name=infraction_parameters,json=infractionParameters,proto3" json:"infraction_parameters,omitempty"` @@ -1588,7 +1614,8 @@ func (m *MsgUpdateConsumer) GetInfractionParameters() *InfractionParameters { return nil } -// MsgUpdateConsumerResponse defines response type for MsgUpdateConsumer messages +// MsgUpdateConsumerResponse defines response type for MsgUpdateConsumer +// messages type MsgUpdateConsumerResponse struct { } @@ -1659,139 +1686,139 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 2098 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7, - 0x15, 0xd7, 0x52, 0x94, 0x4c, 0x8e, 0x64, 0x59, 0x1a, 0xc9, 0xd1, 0x8a, 0x76, 0x44, 0x99, 0x4d, - 0x13, 0xc1, 0x8d, 0x97, 0xb1, 0xdb, 0x24, 0xa8, 0xea, 0x16, 0xd0, 0x87, 0x5b, 0x2b, 0xad, 0x6c, - 0x65, 0xe5, 0x3a, 0x40, 0x0b, 0x74, 0x31, 0xdc, 0x1d, 0x2f, 0x07, 0xe6, 0xee, 0x2c, 0x76, 0x86, - 0x94, 0xd5, 0x53, 0x91, 0x53, 0x8e, 0x09, 0xd0, 0x43, 0x8f, 0x39, 0xb4, 0x87, 0x02, 0x2d, 0xe0, - 0x43, 0x7a, 0xeb, 0x1f, 0x60, 0xa0, 0x97, 0x34, 0xa7, 0xa2, 0x28, 0xdc, 0xc2, 0x3e, 0xa4, 0x97, - 0x5e, 0x7a, 0xeb, 0xad, 0x98, 0x8f, 0x5d, 0xee, 0x92, 0x94, 0xb4, 0xa2, 0xe1, 0xe6, 0xd0, 0x0b, - 0xb1, 0x3b, 0xef, 0xbd, 0xdf, 0xfb, 0x98, 0x79, 0xef, 0xcd, 0x5b, 0x82, 0x37, 0x49, 0xc8, 0x71, - 0xec, 0xb6, 0x11, 0x09, 0x1d, 0x86, 0xdd, 0x6e, 0x4c, 0xf8, 0x51, 0xd3, 0x75, 0x7b, 0xcd, 0x28, - 0xa6, 0x3d, 0xe2, 0xe1, 0xb8, 0xd9, 0xbb, 0xde, 0xe4, 0x8f, 0xac, 0x28, 0xa6, 0x9c, 0xc2, 0xaf, - 0x8d, 0xe0, 0xb6, 0x5c, 0xb7, 0x67, 0x25, 0xdc, 0x56, 0xef, 0x7a, 0x6d, 0x01, 0x05, 0x24, 0xa4, - 0x4d, 0xf9, 0xab, 0xe4, 0x6a, 0x97, 0x7d, 0x4a, 0xfd, 0x0e, 0x6e, 0xa2, 0x88, 0x34, 0x51, 0x18, - 0x52, 0x8e, 0x38, 0xa1, 0x21, 0xd3, 0xd4, 0xba, 0xa6, 0xca, 0xb7, 0x56, 0xf7, 0x41, 0x93, 0x93, - 0x00, 0x33, 0x8e, 0x82, 0x48, 0x33, 0xac, 0x0e, 0x32, 0x78, 0xdd, 0x58, 0x22, 0x68, 0xfa, 0xca, - 0x20, 0x1d, 0x85, 0x47, 0x9a, 0xb4, 0xe4, 0x53, 0x9f, 0xca, 0xc7, 0xa6, 0x78, 0x4a, 0x04, 0x5c, - 0xca, 0x02, 0xca, 0x1c, 0x45, 0x50, 0x2f, 0x9a, 0xb4, 0xac, 0xde, 0x9a, 0x01, 0xf3, 0x85, 0xeb, - 0x01, 0xf3, 0x13, 0x2b, 0x49, 0xcb, 0x6d, 0xba, 0x34, 0xc6, 0x4d, 0xb7, 0x43, 0x70, 0xc8, 0x05, - 0x55, 0x3d, 0x69, 0x86, 0x1b, 0x45, 0x42, 0x99, 0x06, 0x4a, 0xc9, 0x34, 0x05, 0x68, 0x87, 0xf8, - 0x6d, 0xae, 0xa0, 0x58, 0x93, 0xe3, 0xd0, 0xc3, 0x71, 0x40, 0x94, 0x82, 0xfe, 0x5b, 0x62, 0x45, - 0x86, 0xce, 0x8f, 0x22, 0xcc, 0x9a, 0x58, 0xe0, 0x85, 0x2e, 0x56, 0x0c, 0x8d, 0xff, 0x18, 0x60, - 0x69, 0x8f, 0xf9, 0x9b, 0x8c, 0x11, 0x3f, 0xdc, 0xa6, 0x21, 0xeb, 0x06, 0x38, 0xfe, 0x21, 0x3e, - 0x82, 0xaf, 0x82, 0x8a, 0xb2, 0x8d, 0x78, 0xa6, 0xb1, 0x66, 0xac, 0x57, 0xb7, 0x4a, 0xa6, 0x61, - 0x9f, 0x93, 0x6b, 0xbb, 0x1e, 0x7c, 0x17, 0x9c, 0x4f, 0x6c, 0x73, 0x90, 0xe7, 0xc5, 0x66, 0x49, - 0xf2, 0xc0, 0x7f, 0x3f, 0xad, 0xcf, 0x1d, 0xa1, 0xa0, 0xb3, 0xd1, 0x10, 0xab, 0x98, 0xb1, 0x86, - 0x3d, 0x9b, 0x30, 0x6e, 0x7a, 0x5e, 0x0c, 0xaf, 0x80, 0x59, 0x57, 0xab, 0x71, 0x1e, 0xe2, 0x23, - 0x73, 0x52, 0xc8, 0xd9, 0x33, 0x6e, 0x46, 0xf5, 0x5b, 0x60, 0x5a, 0x58, 0x83, 0x63, 0xb3, 0x2c, - 0x41, 0xcd, 0x2f, 0x3e, 0xbb, 0xb6, 0xa4, 0xa3, 0xbe, 0xa9, 0x50, 0x0f, 0x78, 0x4c, 0x42, 0xdf, - 0xd6, 0x7c, 0xb0, 0x0e, 0x52, 0x00, 0x61, 0xef, 0x94, 0xc4, 0x04, 0xc9, 0xd2, 0xae, 0xb7, 0xb1, - 0xf8, 0xd1, 0xa7, 0xf5, 0x89, 0x7f, 0x7e, 0x5a, 0x9f, 0xf8, 0xf0, 0xcb, 0xc7, 0x57, 0xb5, 0x54, - 0x63, 0x15, 0x5c, 0x1e, 0xe5, 0xba, 0x8d, 0x59, 0x44, 0x43, 0x86, 0x1b, 0xcf, 0x0c, 0xf0, 0xea, - 0x1e, 0xf3, 0x0f, 0xba, 0xad, 0x80, 0xf0, 0x84, 0x61, 0x8f, 0xb0, 0x16, 0x6e, 0xa3, 0x1e, 0xa1, - 0xdd, 0x18, 0xbe, 0x03, 0xaa, 0x4c, 0x52, 0x39, 0x8e, 0x75, 0x94, 0x8e, 0x37, 0xb6, 0xcf, 0x0a, - 0xf7, 0xc1, 0x6c, 0x90, 0xc1, 0x91, 0xc1, 0x9b, 0xb9, 0xf1, 0xa6, 0x45, 0x5a, 0xae, 0x95, 0xdd, - 0x5e, 0x2b, 0xb3, 0xa1, 0xbd, 0xeb, 0x56, 0x56, 0xb7, 0x9d, 0x43, 0x18, 0x8c, 0xc0, 0xe4, 0x50, - 0x04, 0x5e, 0xc9, 0x46, 0xa0, 0x6f, 0x4a, 0xe3, 0x0d, 0xf0, 0xf5, 0x13, 0x7d, 0x4c, 0xa3, 0xf1, - 0xe7, 0xd2, 0x88, 0x68, 0xec, 0xd0, 0x6e, 0xab, 0x83, 0xef, 0x53, 0x4e, 0x42, 0x7f, 0xec, 0x68, - 0x38, 0x60, 0xd9, 0xeb, 0x46, 0x1d, 0xe2, 0x22, 0x8e, 0x9d, 0x1e, 0xe5, 0xd8, 0x49, 0x0e, 0xa9, - 0x0e, 0xcc, 0x1b, 0xd9, 0x38, 0xc8, 0x63, 0x6c, 0xed, 0x24, 0x02, 0xf7, 0x29, 0xc7, 0xb7, 0x34, - 0xbb, 0x7d, 0xd1, 0x1b, 0xb5, 0x0c, 0x7f, 0x06, 0x96, 0x49, 0xf8, 0x20, 0x46, 0xae, 0x28, 0x02, - 0x4e, 0xab, 0x43, 0xdd, 0x87, 0x4e, 0x1b, 0x23, 0x0f, 0xc7, 0x32, 0x50, 0x33, 0x37, 0x5e, 0x3f, - 0x2d, 0xf2, 0xb7, 0x25, 0xb7, 0x7d, 0xb1, 0x0f, 0xb3, 0x25, 0x50, 0xd4, 0xf2, 0x60, 0xf0, 0xcb, - 0x2f, 0x14, 0xfc, 0x6c, 0x48, 0xd3, 0xe0, 0xff, 0xda, 0x00, 0x17, 0xf6, 0x98, 0xff, 0xe3, 0xc8, - 0x43, 0x1c, 0xef, 0xa3, 0x18, 0x05, 0x4c, 0x84, 0x1b, 0x75, 0x79, 0x9b, 0x8a, 0xc2, 0x71, 0x7a, - 0xb8, 0x53, 0x56, 0xb8, 0x0b, 0xa6, 0x23, 0x89, 0xa0, 0xa3, 0xfb, 0x0d, 0xab, 0x40, 0x99, 0xb6, - 0x94, 0xd2, 0xad, 0xf2, 0x93, 0xa7, 0xf5, 0x09, 0x5b, 0x03, 0x6c, 0xcc, 0x49, 0x7f, 0x52, 0xe8, - 0xc6, 0x0a, 0x58, 0x1e, 0xb0, 0x32, 0xf5, 0xe0, 0x6f, 0x15, 0xb0, 0xb8, 0xc7, 0xfc, 0xc4, 0xcb, - 0x4d, 0xcf, 0x23, 0x22, 0x8c, 0x70, 0x65, 0xb0, 0xce, 0xf4, 0x6b, 0xcc, 0x0f, 0xc0, 0x1c, 0x09, - 0x09, 0x27, 0xa8, 0xe3, 0xb4, 0xb1, 0xd8, 0x1b, 0x6d, 0x70, 0x4d, 0xee, 0x96, 0xa8, 0xad, 0x96, - 0xae, 0xa8, 0x72, 0x87, 0x04, 0x87, 0xb6, 0xef, 0xbc, 0x96, 0x53, 0x8b, 0xa2, 0xe6, 0xf8, 0x38, - 0xc4, 0x8c, 0x30, 0xa7, 0x8d, 0x58, 0x5b, 0x6e, 0xfa, 0xac, 0x3d, 0xa3, 0xd7, 0x6e, 0x23, 0xd6, - 0x16, 0x5b, 0xd8, 0x22, 0x21, 0x8a, 0x8f, 0x14, 0x47, 0x59, 0x72, 0x00, 0xb5, 0x24, 0x19, 0xb6, - 0x01, 0x60, 0x11, 0x3a, 0x0c, 0x1d, 0xd1, 0x6d, 0x64, 0x85, 0x11, 0x86, 0xa8, 0x4e, 0x62, 0x25, - 0x9d, 0xc4, 0xba, 0x97, 0xb4, 0xa2, 0xad, 0x8a, 0x30, 0xe4, 0xe3, 0xbf, 0xd7, 0x0d, 0xbb, 0x2a, - 0xe5, 0x04, 0x05, 0xde, 0x01, 0xf3, 0xdd, 0xb0, 0x45, 0x43, 0x8f, 0x84, 0xbe, 0x13, 0xe1, 0x98, - 0x50, 0xcf, 0x9c, 0x96, 0x50, 0x2b, 0x43, 0x50, 0x3b, 0xba, 0x69, 0x29, 0xa4, 0x5f, 0x09, 0xa4, - 0x0b, 0xa9, 0xf0, 0xbe, 0x94, 0x85, 0xef, 0x03, 0xe8, 0xba, 0x3d, 0x69, 0x12, 0xed, 0xf2, 0x04, - 0xf1, 0x5c, 0x71, 0xc4, 0x79, 0xd7, 0xed, 0xdd, 0x53, 0xd2, 0x1a, 0xf2, 0xa7, 0x60, 0x99, 0xc7, - 0x28, 0x64, 0x0f, 0x70, 0x3c, 0x88, 0x5b, 0x29, 0x8e, 0x7b, 0x31, 0xc1, 0xc8, 0x83, 0xdf, 0x06, - 0x6b, 0x69, 0xa2, 0xc4, 0xd8, 0x23, 0x8c, 0xc7, 0xa4, 0xd5, 0x95, 0x59, 0x99, 0xe4, 0x95, 0x59, - 0x95, 0x87, 0x60, 0x35, 0xe1, 0xb3, 0x73, 0x6c, 0xdf, 0xd7, 0x5c, 0xf0, 0x2e, 0x78, 0x4d, 0xe6, - 0x31, 0x13, 0xc6, 0x39, 0x39, 0x24, 0xa9, 0x3a, 0x20, 0x8c, 0x09, 0x34, 0xb0, 0x66, 0xac, 0x4f, - 0xda, 0x57, 0x14, 0xef, 0x3e, 0x8e, 0x77, 0x32, 0x9c, 0xf7, 0x32, 0x8c, 0xf0, 0x1a, 0x80, 0x6d, - 0xc2, 0x38, 0x8d, 0x89, 0x8b, 0x3a, 0x0e, 0x0e, 0x79, 0x4c, 0x30, 0x33, 0x67, 0xa4, 0xf8, 0x42, - 0x9f, 0x72, 0x4b, 0x11, 0xe0, 0x7b, 0xe0, 0xca, 0xb1, 0x4a, 0x1d, 0xb7, 0x8d, 0xc2, 0x10, 0x77, - 0xcc, 0x59, 0xe9, 0x4a, 0xdd, 0x3b, 0x46, 0xe7, 0xb6, 0x62, 0x83, 0x8b, 0x60, 0x8a, 0xd3, 0xc8, - 0xb9, 0x63, 0x9e, 0x5f, 0x33, 0xd6, 0xcf, 0xdb, 0x65, 0x4e, 0xa3, 0x3b, 0xf0, 0x2d, 0xb0, 0xd4, - 0x43, 0x1d, 0xe2, 0x21, 0x4e, 0x63, 0xe6, 0x44, 0xf4, 0x10, 0xc7, 0x8e, 0x8b, 0x22, 0x73, 0x4e, - 0xf2, 0xc0, 0x3e, 0x6d, 0x5f, 0x90, 0xb6, 0x51, 0x04, 0xaf, 0x82, 0x85, 0x74, 0xd5, 0x61, 0x98, - 0x4b, 0xf6, 0x0b, 0x92, 0xfd, 0x42, 0x4a, 0x38, 0xc0, 0x5c, 0xf0, 0x5e, 0x06, 0x55, 0xd4, 0xe9, - 0xd0, 0xc3, 0x0e, 0x61, 0xdc, 0x9c, 0x5f, 0x9b, 0x5c, 0xaf, 0xda, 0xfd, 0x05, 0x58, 0x03, 0x15, - 0x0f, 0x87, 0x47, 0x92, 0xb8, 0x20, 0x89, 0xe9, 0x7b, 0xbe, 0xea, 0xc0, 0xe2, 0x55, 0xe7, 0x12, - 0xa8, 0x06, 0xa2, 0xbe, 0x70, 0xf4, 0x10, 0x9b, 0x8b, 0x6b, 0xc6, 0x7a, 0xd9, 0xae, 0x04, 0x24, - 0x3c, 0x10, 0xef, 0xd0, 0x02, 0x8b, 0x52, 0xbb, 0x43, 0x42, 0xb1, 0xbf, 0x3d, 0xec, 0xf4, 0x50, - 0x87, 0x99, 0x4b, 0x6b, 0xc6, 0x7a, 0xc5, 0x5e, 0x90, 0xa4, 0x5d, 0x4d, 0xb9, 0x8f, 0x3a, 0x6c, - 0x63, 0x3e, 0x5f, 0x77, 0x4c, 0xa3, 0xf1, 0x47, 0x03, 0xc0, 0x4c, 0x79, 0xb1, 0x71, 0x40, 0x7b, - 0xa8, 0x73, 0x52, 0x75, 0xd9, 0x04, 0x55, 0x26, 0xc2, 0x2e, 0xf3, 0xb9, 0x74, 0x86, 0x7c, 0xae, - 0x08, 0x31, 0x99, 0xce, 0xb9, 0x58, 0x4c, 0x16, 0x8e, 0xc5, 0x08, 0xf3, 0x23, 0xb0, 0xb0, 0xc7, - 0x7c, 0x69, 0x35, 0x4e, 0x7c, 0x18, 0x6c, 0x2b, 0xc6, 0x60, 0x5b, 0x81, 0x16, 0x98, 0xa2, 0x87, - 0xe2, 0x9e, 0x54, 0x3a, 0x45, 0xb7, 0x62, 0xdb, 0x00, 0x42, 0xaf, 0x7a, 0x6e, 0x5c, 0x02, 0x2b, - 0x43, 0x1a, 0xd3, 0x62, 0xfd, 0x7b, 0x03, 0x5c, 0x14, 0xd1, 0x6c, 0xa3, 0xd0, 0xc7, 0x36, 0x3e, - 0x44, 0xb1, 0xb7, 0x83, 0x43, 0x1a, 0x30, 0xd8, 0x00, 0xe7, 0x3d, 0xf9, 0xe4, 0x70, 0x2a, 0x2e, - 0x7e, 0xa6, 0x21, 0xcf, 0xc7, 0x8c, 0x5a, 0xbc, 0x47, 0x37, 0x3d, 0x0f, 0xae, 0x83, 0xf9, 0x3e, - 0x4f, 0x2c, 0x35, 0x98, 0x25, 0xc9, 0x36, 0x97, 0xb0, 0x29, 0xbd, 0x63, 0x07, 0x70, 0xb0, 0xef, - 0xd4, 0xe5, 0xd5, 0x64, 0xd8, 0xdc, 0xd4, 0xa1, 0x7f, 0x19, 0xa0, 0xb2, 0xc7, 0xfc, 0xbb, 0x11, - 0xdf, 0x0d, 0xff, 0x1f, 0xae, 0xb6, 0x10, 0xcc, 0x27, 0xee, 0xa6, 0x31, 0xf8, 0x93, 0x01, 0xaa, - 0x6a, 0xf1, 0x6e, 0x97, 0xbf, 0xb4, 0x20, 0xf4, 0x3d, 0x9c, 0x1c, 0xcf, 0xc3, 0x72, 0x31, 0x0f, - 0x17, 0x65, 0xc6, 0x28, 0x67, 0x52, 0x17, 0x7f, 0x53, 0x92, 0x57, 0x7a, 0x51, 0xe4, 0xb4, 0xf8, - 0x36, 0x0d, 0x74, 0xb5, 0xb5, 0x11, 0xc7, 0xc3, 0x6e, 0x19, 0x05, 0xdd, 0xca, 0x86, 0xab, 0x34, - 0x1c, 0xae, 0x5b, 0xa0, 0x1c, 0x23, 0x8e, 0xb5, 0xcf, 0xd7, 0x45, 0xad, 0xf8, 0xeb, 0xd3, 0xfa, - 0x25, 0xe5, 0x37, 0xf3, 0x1e, 0x5a, 0x84, 0x36, 0x03, 0xc4, 0xdb, 0xd6, 0x8f, 0xb0, 0x8f, 0xdc, - 0xa3, 0x1d, 0xec, 0x7e, 0xf1, 0xd9, 0x35, 0xa0, 0xc3, 0xb2, 0x83, 0x5d, 0x5b, 0x8a, 0xff, 0xcf, - 0x8e, 0xc7, 0xeb, 0xe0, 0xb5, 0x93, 0xc2, 0x94, 0xc6, 0xf3, 0xf1, 0xa4, 0xbc, 0xd0, 0xa5, 0x73, - 0x01, 0xf5, 0xc8, 0x03, 0x71, 0xbd, 0x16, 0x0d, 0x73, 0x09, 0x4c, 0x71, 0xc2, 0x3b, 0x58, 0xd7, - 0x25, 0xf5, 0x02, 0xd7, 0xc0, 0x8c, 0x87, 0x99, 0x1b, 0x93, 0x48, 0x36, 0xf3, 0x92, 0x4a, 0x81, - 0xcc, 0x52, 0xae, 0x24, 0x4f, 0xe6, 0x4b, 0x72, 0xda, 0x08, 0xcb, 0x05, 0x1a, 0xe1, 0xd4, 0xd9, - 0x1a, 0xe1, 0x74, 0x81, 0x46, 0x78, 0xee, 0xa4, 0x46, 0x58, 0x39, 0xa9, 0x11, 0x56, 0xc7, 0x6c, - 0x84, 0xa0, 0x58, 0x23, 0x9c, 0x29, 0xde, 0x08, 0xaf, 0x80, 0xfa, 0x31, 0x3b, 0x96, 0xee, 0xea, - 0x1f, 0xa6, 0x64, 0xee, 0x6c, 0xc7, 0x18, 0xf1, 0x7e, 0xb7, 0x19, 0x77, 0x7a, 0x5b, 0x19, 0xcc, - 0x8c, 0xfe, 0x7e, 0x7e, 0x00, 0x2a, 0x01, 0xe6, 0xc8, 0x43, 0x1c, 0xe9, 0x41, 0xeb, 0xed, 0x42, - 0xb3, 0x46, 0x6a, 0xbd, 0x16, 0xd6, 0xb7, 0xfa, 0x14, 0x0c, 0x7e, 0x68, 0x80, 0x15, 0x7d, 0xc5, - 0x27, 0x3f, 0x97, 0xce, 0x39, 0x72, 0x22, 0xc1, 0x1c, 0xc7, 0x4c, 0x9e, 0x9e, 0x99, 0x1b, 0xb7, - 0xce, 0xa4, 0x6a, 0x37, 0x87, 0xb6, 0x9f, 0x82, 0xd9, 0x26, 0x39, 0x86, 0x02, 0xbb, 0xc0, 0x54, - 0xa7, 0x91, 0xb5, 0x51, 0x24, 0x2f, 0xf4, 0x7d, 0x13, 0xd4, 0x7c, 0xf0, 0x9d, 0x62, 0x93, 0x95, - 0x00, 0x39, 0x50, 0x18, 0x19, 0xc5, 0xaf, 0x44, 0x23, 0xd7, 0xe1, 0x23, 0xb0, 0x92, 0x1e, 0x50, - 0xec, 0x39, 0xb1, 0x6c, 0x77, 0x8e, 0x6a, 0xac, 0x7a, 0x98, 0xb8, 0x59, 0x48, 0xef, 0x66, 0x1f, - 0x25, 0xd7, 0x33, 0x97, 0xd1, 0x68, 0x02, 0x0c, 0x41, 0x66, 0xfe, 0xcd, 0x7a, 0xab, 0x06, 0x8e, - 0x6f, 0x17, 0xd2, 0xba, 0x9b, 0x22, 0x64, 0x7c, 0x5d, 0x22, 0x23, 0x56, 0x75, 0x97, 0xef, 0x4f, - 0xcb, 0x37, 0xe5, 0x95, 0x25, 0x7f, 0x6c, 0x93, 0x43, 0x7d, 0xea, 0x65, 0xa9, 0xf1, 0xc9, 0xb4, - 0x3c, 0xf5, 0x6a, 0x38, 0x4d, 0x4f, 0x7d, 0x7a, 0x85, 0x32, 0x0a, 0x5d, 0xa1, 0x06, 0xd5, 0x94, - 0x86, 0xee, 0x64, 0x3b, 0x60, 0x21, 0xc4, 0x87, 0x8e, 0xe4, 0x76, 0x74, 0x33, 0x39, 0xb5, 0x15, - 0x5e, 0x08, 0xf1, 0xe1, 0x5d, 0x21, 0xa1, 0x97, 0xe1, 0xfb, 0x99, 0xcc, 0x29, 0xbf, 0x40, 0xe6, - 0x14, 0xce, 0x99, 0xa9, 0xaf, 0x3e, 0x67, 0xa6, 0xbf, 0xa2, 0x9c, 0x39, 0xf7, 0x32, 0x73, 0x66, - 0x0d, 0xcc, 0x8a, 0xe3, 0x90, 0x56, 0xc8, 0x8a, 0x3a, 0x30, 0x21, 0x3e, 0xdc, 0xd6, 0x45, 0xf2, - 0xd8, 0xac, 0xaa, 0xbe, 0x9c, 0xac, 0x1a, 0x1e, 0x02, 0xf2, 0x29, 0x91, 0x64, 0xd4, 0x8d, 0x27, - 0xb3, 0x60, 0x72, 0x8f, 0xf9, 0xf0, 0x13, 0x03, 0x2c, 0x0c, 0x7f, 0x1f, 0x2e, 0x66, 0xd7, 0xa8, - 0xef, 0xab, 0xb5, 0xcd, 0xb1, 0x45, 0xd3, 0x6c, 0xff, 0x9d, 0x01, 0x6a, 0x27, 0x7c, 0x97, 0xdd, - 0x2a, 0xaa, 0xe1, 0x78, 0x8c, 0xda, 0x7b, 0x2f, 0x8e, 0x71, 0x82, 0xb9, 0xb9, 0x0f, 0xa7, 0x63, - 0x9a, 0x9b, 0xc5, 0x18, 0xd7, 0xdc, 0x51, 0x5f, 0x1b, 0xe1, 0x47, 0x06, 0x98, 0x1b, 0xbc, 0x1d, - 0x14, 0x85, 0xcf, 0xcb, 0xd5, 0xbe, 0x37, 0x9e, 0x5c, 0xce, 0x94, 0x81, 0x92, 0x5d, 0xd8, 0x94, - 0xbc, 0x5c, 0x71, 0x53, 0x46, 0xe7, 0x83, 0x34, 0x65, 0x60, 0x42, 0x2f, 0x6c, 0x4a, 0x5e, 0xae, - 0xb8, 0x29, 0xa3, 0xe7, 0x73, 0x51, 0xcb, 0x67, 0x73, 0xdf, 0x82, 0xbf, 0x75, 0x36, 0xdf, 0x94, - 0x54, 0xed, 0xe6, 0x38, 0x52, 0xa9, 0x11, 0x01, 0x98, 0x52, 0xf3, 0xf4, 0xb5, 0xa2, 0x30, 0x92, - 0xbd, 0xf6, 0xf6, 0x99, 0xd8, 0x53, 0x75, 0x11, 0x98, 0xd6, 0xa3, 0xab, 0x75, 0x06, 0x80, 0xbb, - 0x5d, 0x5e, 0x7b, 0xe7, 0x6c, 0xfc, 0xa9, 0xc6, 0xdf, 0x1a, 0x60, 0xe5, 0xf8, 0x51, 0xb2, 0x70, - 0x15, 0x3b, 0x16, 0xa2, 0xb6, 0xfb, 0xc2, 0x10, 0xa9, 0xad, 0xbf, 0x34, 0x00, 0x1c, 0xf1, 0xb9, - 0x66, 0xa3, 0x70, 0xfa, 0x0d, 0xc9, 0xd6, 0xb6, 0xc6, 0x97, 0x4d, 0xcc, 0xaa, 0x4d, 0xfd, 0xe2, - 0xcb, 0xc7, 0x57, 0x8d, 0xad, 0x0f, 0x9e, 0x3c, 0x5b, 0x35, 0x3e, 0x7f, 0xb6, 0x6a, 0xfc, 0xe3, - 0xd9, 0xaa, 0xf1, 0xf1, 0xf3, 0xd5, 0x89, 0xcf, 0x9f, 0xaf, 0x4e, 0xfc, 0xe5, 0xf9, 0xea, 0xc4, - 0x4f, 0xbe, 0xeb, 0x13, 0xde, 0xee, 0xb6, 0x2c, 0x97, 0x06, 0xfa, 0x8f, 0xd5, 0x66, 0x5f, 0xeb, - 0xb5, 0xf4, 0x7f, 0xd1, 0xde, 0xbb, 0xcd, 0x47, 0xf9, 0x3f, 0x47, 0xe5, 0xdf, 0x40, 0xad, 0x69, - 0xf9, 0xa5, 0xee, 0x9b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x63, 0xed, 0x45, 0x98, 0x1e, - 0x00, 0x00, + // 2111 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcf, 0x6f, 0x1b, 0xc7, + 0xf5, 0xd7, 0x52, 0x94, 0x4c, 0x8e, 0x7e, 0xaf, 0xe4, 0x68, 0x45, 0x3b, 0x22, 0xcd, 0x6f, 0xbe, + 0xa9, 0xe0, 0x46, 0xbb, 0xb1, 0xda, 0x24, 0xa8, 0xea, 0x16, 0xd0, 0x0f, 0xb7, 0x56, 0x5a, 0x59, + 0xca, 0xca, 0x75, 0x80, 0x16, 0xe8, 0x76, 0xb8, 0x3b, 0x5a, 0x0e, 0xcc, 0xdd, 0x59, 0xec, 0x0c, + 0x29, 0xab, 0xa7, 0x22, 0xa7, 0x1c, 0x13, 0xa0, 0x87, 0x1e, 0x73, 0x68, 0x0f, 0x05, 0x5a, 0xc0, + 0x87, 0xf4, 0xd6, 0x3f, 0xc0, 0x40, 0x2f, 0x81, 0x4f, 0x45, 0x51, 0xb8, 0x85, 0x7d, 0x48, 0x2f, + 0xbd, 0xf4, 0xd6, 0x5b, 0x31, 0x3f, 0x76, 0xc9, 0x25, 0x29, 0x69, 0x45, 0xc3, 0xcd, 0xa1, 0x17, + 0x62, 0x77, 0xde, 0x7b, 0x9f, 0xf7, 0x63, 0xe6, 0xbd, 0x37, 0x6f, 0x09, 0xde, 0xc2, 0x21, 0x43, + 0xb1, 0xdb, 0x84, 0x38, 0x74, 0x28, 0x72, 0xdb, 0x31, 0x66, 0xa7, 0x96, 0xeb, 0x76, 0xac, 0x28, + 0x26, 0x1d, 0xec, 0xa1, 0xd8, 0xea, 0xdc, 0xb2, 0xd8, 0x23, 0x33, 0x8a, 0x09, 0x23, 0xfa, 0xff, + 0x0d, 0xe1, 0x36, 0x5d, 0xb7, 0x63, 0x26, 0xdc, 0x66, 0xe7, 0x56, 0x65, 0x01, 0x06, 0x38, 0x24, + 0x96, 0xf8, 0x95, 0x72, 0x95, 0xeb, 0x3e, 0x21, 0x7e, 0x0b, 0x59, 0x30, 0xc2, 0x16, 0x0c, 0x43, + 0xc2, 0x20, 0xc3, 0x24, 0xa4, 0x8a, 0x5a, 0x55, 0x54, 0xf1, 0xd6, 0x68, 0x1f, 0x5b, 0x0c, 0x07, + 0x88, 0x32, 0x18, 0x44, 0x8a, 0x61, 0xb5, 0x9f, 0xc1, 0x6b, 0xc7, 0x02, 0x41, 0xd1, 0x57, 0xfa, + 0xe9, 0x30, 0x3c, 0x55, 0xa4, 0x25, 0x9f, 0xf8, 0x44, 0x3c, 0x5a, 0xfc, 0x29, 0x11, 0x70, 0x09, + 0x0d, 0x08, 0x75, 0x24, 0x41, 0xbe, 0x28, 0xd2, 0xb2, 0x7c, 0xb3, 0x02, 0xea, 0x73, 0xd7, 0x03, + 0xea, 0x27, 0x56, 0xe2, 0x86, 0x6b, 0xb9, 0x24, 0x46, 0x96, 0xdb, 0xc2, 0x28, 0x64, 0x9c, 0x2a, + 0x9f, 0x14, 0xc3, 0x46, 0x9e, 0x50, 0xa6, 0x81, 0x92, 0x32, 0x16, 0x07, 0x6d, 0x61, 0xbf, 0xc9, + 0x24, 0x14, 0xb5, 0x18, 0x0a, 0x3d, 0x14, 0x07, 0x58, 0x2a, 0xe8, 0xbe, 0x29, 0x81, 0x9a, 0x4b, + 0x02, 0xc4, 0x1a, 0xc7, 0xcc, 0x62, 0xa7, 0x11, 0xa2, 0x56, 0x67, 0xc3, 0x42, 0x1c, 0x30, 0x74, + 0x91, 0xe4, 0xa8, 0xff, 0x5b, 0x03, 0x4b, 0xfb, 0xd4, 0xdf, 0xa2, 0x14, 0xfb, 0xe1, 0x0e, 0x09, + 0x69, 0x3b, 0x40, 0xf1, 0x0f, 0xd0, 0xa9, 0xfe, 0x3a, 0x28, 0x49, 0xe3, 0xb0, 0x67, 0x68, 0x35, + 0x6d, 0xad, 0xbc, 0x5d, 0x30, 0x34, 0xfb, 0x8a, 0x58, 0xdb, 0xf3, 0xf4, 0xf7, 0xc0, 0x4c, 0x62, + 0x9c, 0x03, 0x3d, 0x2f, 0x36, 0x0a, 0x82, 0x47, 0xff, 0xd7, 0xb3, 0xea, 0xec, 0x29, 0x0c, 0x5a, + 0x9b, 0x75, 0xbe, 0x8a, 0x28, 0xad, 0xdb, 0xd3, 0x09, 0xe3, 0x96, 0xe7, 0xc5, 0xfa, 0x0d, 0x30, + 0xed, 0x2a, 0x35, 0xce, 0x43, 0x74, 0x6a, 0x8c, 0x73, 0x39, 0x7b, 0xca, 0xed, 0x51, 0xfd, 0x36, + 0x98, 0xe4, 0xd6, 0xa0, 0xd8, 0x28, 0x0a, 0x50, 0xe3, 0xe9, 0xe7, 0xeb, 0x4b, 0x2a, 0xec, 0x5b, + 0x12, 0xf5, 0x88, 0xc5, 0x38, 0xf4, 0x6d, 0xc5, 0xa7, 0x57, 0x41, 0x0a, 0xc0, 0xed, 0x9d, 0x10, + 0x98, 0x20, 0x59, 0xda, 0xf3, 0x36, 0x17, 0x3f, 0xfe, 0xac, 0x3a, 0xf6, 0x8f, 0xcf, 0xaa, 0x63, + 0x1f, 0x7d, 0xf9, 0xf8, 0xa6, 0x92, 0xaa, 0xaf, 0x82, 0xeb, 0xc3, 0x5c, 0xb7, 0x11, 0x8d, 0x48, + 0x48, 0x51, 0xfd, 0xb9, 0x06, 0x5e, 0xdf, 0xa7, 0xfe, 0x51, 0xbb, 0x11, 0x60, 0x96, 0x30, 0xec, + 0x63, 0xda, 0x40, 0x4d, 0xd8, 0xc1, 0xa4, 0x1d, 0xeb, 0xef, 0x82, 0x32, 0x15, 0x54, 0x86, 0x62, + 0x15, 0xa5, 0xb3, 0x8d, 0xed, 0xb2, 0xea, 0x87, 0x60, 0x3a, 0xe8, 0xc1, 0x11, 0xc1, 0x9b, 0xda, + 0x78, 0xcb, 0xc4, 0x0d, 0xd7, 0xec, 0xdd, 0x5f, 0xb3, 0x67, 0x47, 0x3b, 0xb7, 0xcc, 0x5e, 0xdd, + 0x76, 0x06, 0xa1, 0x3f, 0x02, 0xe3, 0x03, 0x11, 0x78, 0xad, 0x37, 0x02, 0x5d, 0x53, 0xea, 0x5f, + 0x03, 0xff, 0x7f, 0xae, 0x8f, 0x69, 0x34, 0x9e, 0x16, 0x86, 0x44, 0x63, 0x97, 0xb4, 0x1b, 0x2d, + 0xf4, 0x80, 0x30, 0x1c, 0xfa, 0x23, 0x47, 0xe3, 0x67, 0x60, 0xd9, 0x6b, 0x47, 0x2d, 0xec, 0x42, + 0x86, 0x9c, 0x0e, 0x61, 0xc8, 0x49, 0x0e, 0xa9, 0x0a, 0xcc, 0x9a, 0x99, 0x9c, 0x63, 0x53, 0x9c, + 0x63, 0xb3, 0xb3, 0x61, 0xee, 0x26, 0x12, 0x0f, 0x08, 0x43, 0x77, 0x14, 0xbf, 0x7d, 0xd5, 0x1b, + 0xb6, 0xac, 0xff, 0x14, 0x2c, 0xe3, 0xf0, 0x38, 0x86, 0x2e, 0x2f, 0x03, 0x4e, 0xa3, 0x45, 0xdc, + 0x87, 0x4e, 0x13, 0x41, 0x0f, 0xc5, 0x22, 0x52, 0x53, 0x1b, 0x6f, 0x5e, 0x14, 0xfa, 0xbb, 0x82, + 0xdb, 0xbe, 0xda, 0x85, 0xd9, 0xe6, 0x28, 0x72, 0xb9, 0x3f, 0xfa, 0xc5, 0x97, 0x8a, 0x7e, 0x6f, + 0x4c, 0xd3, 0xe8, 0xff, 0x5a, 0x03, 0x73, 0xfb, 0xd4, 0xff, 0x51, 0xe4, 0x41, 0x86, 0x0e, 0x61, + 0x0c, 0x03, 0xca, 0xe3, 0x0d, 0xdb, 0xac, 0x49, 0x78, 0xe9, 0xb8, 0x38, 0xde, 0x29, 0xab, 0xbe, + 0x07, 0x26, 0x23, 0x81, 0xa0, 0xc2, 0xfb, 0x75, 0x33, 0x47, 0xa1, 0x36, 0xa5, 0xd2, 0xed, 0xe2, + 0x93, 0x67, 0xd5, 0x31, 0x5b, 0x01, 0x6c, 0xce, 0x0a, 0x7f, 0x52, 0xe8, 0xfa, 0x0a, 0x58, 0xee, + 0xb3, 0x32, 0xf5, 0xe0, 0xaf, 0x25, 0xb0, 0xb8, 0x4f, 0xfd, 0xc4, 0xcb, 0x2d, 0xcf, 0xc3, 0x3c, + 0x8c, 0xfa, 0x4a, 0x7f, 0xa1, 0xe9, 0x16, 0x99, 0xef, 0x83, 0x59, 0x1c, 0x62, 0x86, 0x61, 0xcb, + 0x69, 0x22, 0xbe, 0x37, 0xca, 0xe0, 0x8a, 0xd8, 0x2d, 0x5e, 0x5d, 0x4d, 0x55, 0x53, 0xc5, 0x0e, + 0x71, 0x0e, 0x65, 0xdf, 0x8c, 0x92, 0x93, 0x8b, 0xbc, 0xe8, 0xf8, 0x28, 0x44, 0x14, 0x53, 0xa7, + 0x09, 0x69, 0x53, 0x6c, 0xfa, 0xb4, 0x3d, 0xa5, 0xd6, 0xee, 0x42, 0xda, 0xe4, 0x5b, 0xd8, 0xc0, + 0x21, 0x8c, 0x4f, 0x25, 0x47, 0x51, 0x70, 0x00, 0xb9, 0x24, 0x18, 0x76, 0x00, 0xa0, 0x11, 0x3c, + 0x09, 0x1d, 0xde, 0x6f, 0x44, 0x89, 0xe1, 0x86, 0xc8, 0x5e, 0x62, 0x26, 0xbd, 0xc4, 0xbc, 0x9f, + 0x34, 0xa3, 0xed, 0x12, 0x37, 0xe4, 0x93, 0xbf, 0x55, 0x35, 0xbb, 0x2c, 0xe4, 0x38, 0x45, 0xbf, + 0x07, 0xe6, 0xdb, 0x61, 0x83, 0x84, 0x1e, 0x0e, 0x7d, 0x27, 0x42, 0x31, 0x26, 0x9e, 0x31, 0x29, + 0xa0, 0x56, 0x06, 0xa0, 0x76, 0x55, 0xdb, 0x92, 0x48, 0xbf, 0xe2, 0x48, 0x73, 0xa9, 0xf0, 0xa1, + 0x90, 0xd5, 0x3f, 0x00, 0xba, 0xeb, 0x76, 0x84, 0x49, 0xa4, 0xcd, 0x12, 0xc4, 0x2b, 0xf9, 0x11, + 0xe7, 0x5d, 0xb7, 0x73, 0x5f, 0x4a, 0x2b, 0xc8, 0x9f, 0x80, 0x65, 0x16, 0xc3, 0x90, 0x1e, 0xa3, + 0xb8, 0x1f, 0xb7, 0x94, 0x1f, 0xf7, 0x6a, 0x82, 0x91, 0x05, 0xbf, 0x0b, 0x6a, 0x69, 0xa2, 0xc4, + 0xc8, 0xc3, 0x94, 0xc5, 0xb8, 0xd1, 0x16, 0x59, 0x99, 0xe4, 0x95, 0x51, 0x16, 0x87, 0x60, 0x35, + 0xe1, 0xb3, 0x33, 0x6c, 0xdf, 0x53, 0x5c, 0xfa, 0x01, 0x78, 0x43, 0xe4, 0x31, 0xe5, 0xc6, 0x39, + 0x19, 0x24, 0xa1, 0x3a, 0xc0, 0x94, 0x72, 0x34, 0x50, 0xd3, 0xd6, 0xc6, 0xed, 0x1b, 0x92, 0xf7, + 0x10, 0xc5, 0xbb, 0x3d, 0x9c, 0xf7, 0x7b, 0x18, 0xf5, 0x75, 0xa0, 0x37, 0x31, 0x65, 0x24, 0xc6, + 0x2e, 0x6c, 0x39, 0x28, 0x64, 0x31, 0x46, 0xd4, 0x98, 0x12, 0xe2, 0x0b, 0x5d, 0xca, 0x1d, 0x49, + 0xd0, 0xdf, 0x07, 0x37, 0xce, 0x54, 0xea, 0xb8, 0x4d, 0x18, 0x86, 0xa8, 0x65, 0x4c, 0x0b, 0x57, + 0xaa, 0xde, 0x19, 0x3a, 0x77, 0x24, 0x9b, 0xbe, 0x08, 0x26, 0x18, 0x89, 0x9c, 0x7b, 0xc6, 0x4c, + 0x4d, 0x5b, 0x9b, 0xb1, 0x8b, 0x8c, 0x44, 0xf7, 0xf4, 0xb7, 0xc1, 0x52, 0x07, 0xb6, 0xb0, 0x07, + 0x19, 0x89, 0xa9, 0x13, 0x91, 0x13, 0x14, 0x3b, 0x2e, 0x8c, 0x8c, 0x59, 0xc1, 0xa3, 0x77, 0x69, + 0x87, 0x9c, 0xb4, 0x03, 0x23, 0xfd, 0x26, 0x58, 0x48, 0x57, 0x1d, 0x8a, 0x98, 0x60, 0x9f, 0x13, + 0xec, 0x73, 0x29, 0xe1, 0x08, 0x31, 0xce, 0x7b, 0x1d, 0x94, 0x61, 0xab, 0x45, 0x4e, 0x5a, 0x98, + 0x32, 0x63, 0xbe, 0x36, 0xbe, 0x56, 0xb6, 0xbb, 0x0b, 0x7a, 0x05, 0x94, 0x3c, 0x14, 0x9e, 0x0a, + 0xe2, 0x82, 0x20, 0xa6, 0xef, 0xd9, 0xaa, 0xa3, 0xe7, 0xaf, 0x3a, 0xd7, 0x40, 0x39, 0xe0, 0xf5, + 0x85, 0xc1, 0x87, 0xc8, 0x58, 0xac, 0x69, 0x6b, 0x45, 0xbb, 0x14, 0xe0, 0xf0, 0x88, 0xbf, 0xeb, + 0x26, 0x58, 0x14, 0xda, 0x1d, 0x1c, 0xf2, 0xfd, 0xed, 0x20, 0xa7, 0x03, 0x5b, 0xd4, 0x58, 0xaa, + 0x69, 0x6b, 0x25, 0x7b, 0x41, 0x90, 0xf6, 0x14, 0xe5, 0x01, 0x6c, 0xd1, 0xcd, 0xf9, 0x6c, 0xdd, + 0x31, 0xb4, 0xfa, 0x1f, 0x35, 0xa0, 0xf7, 0x94, 0x17, 0x1b, 0x05, 0xa4, 0x03, 0x5b, 0xe7, 0x55, + 0x97, 0x2d, 0x50, 0xa6, 0x3c, 0xec, 0x22, 0x9f, 0x0b, 0x97, 0xc8, 0xe7, 0x12, 0x17, 0x13, 0xe9, + 0x9c, 0x89, 0xc5, 0x78, 0xee, 0x58, 0x0c, 0x31, 0x3f, 0x02, 0x0b, 0xfb, 0xd4, 0x17, 0x56, 0xa3, + 0xc4, 0x87, 0xfe, 0xb6, 0xa2, 0xf5, 0xb7, 0x15, 0xdd, 0x04, 0x13, 0xe4, 0x84, 0x5f, 0x94, 0x0a, + 0x17, 0xe8, 0x96, 0x6c, 0x9b, 0x80, 0xeb, 0x95, 0xcf, 0xf5, 0x6b, 0x60, 0x65, 0x40, 0x63, 0x5a, + 0xac, 0x7f, 0xaf, 0x81, 0xab, 0x3c, 0x9a, 0x4d, 0x18, 0xfa, 0xc8, 0x46, 0x27, 0x30, 0xf6, 0x76, + 0x51, 0x48, 0x02, 0xaa, 0xd7, 0xc1, 0x8c, 0x27, 0x9e, 0x1c, 0x46, 0xf8, 0xcd, 0xcf, 0xd0, 0xc4, + 0xf9, 0x98, 0x92, 0x8b, 0xf7, 0xc9, 0x96, 0xe7, 0xe9, 0x6b, 0x60, 0xbe, 0xcb, 0x13, 0x0b, 0x0d, + 0x46, 0x41, 0xb0, 0xcd, 0x26, 0x6c, 0x52, 0xef, 0xc8, 0x01, 0xec, 0xef, 0x3b, 0x55, 0x71, 0x37, + 0x19, 0x34, 0x37, 0x75, 0xe8, 0x9f, 0x1a, 0x28, 0xed, 0x53, 0xff, 0x20, 0x62, 0x7b, 0xe1, 0xff, + 0xc2, 0xdd, 0x56, 0x07, 0xf3, 0x89, 0xbb, 0x69, 0x0c, 0xfe, 0xa4, 0x81, 0xb2, 0x5c, 0x3c, 0x68, + 0xb3, 0x57, 0x16, 0x84, 0xae, 0x87, 0xe3, 0xa3, 0x79, 0x58, 0xcc, 0xe7, 0xe1, 0xa2, 0xc8, 0x18, + 0xe9, 0x4c, 0xea, 0xe2, 0x6f, 0x0a, 0xe2, 0x4e, 0xcf, 0x8b, 0x9c, 0x12, 0xdf, 0x21, 0x81, 0xaa, + 0xb6, 0x36, 0x64, 0x68, 0xd0, 0x2d, 0x2d, 0xa7, 0x5b, 0xbd, 0xe1, 0x2a, 0x0c, 0x86, 0xeb, 0x0e, + 0x28, 0xc6, 0x90, 0x21, 0xe5, 0xf3, 0x2d, 0x5e, 0x2b, 0xfe, 0xf2, 0xac, 0x7a, 0x4d, 0xfa, 0x4d, + 0xbd, 0x87, 0x26, 0x26, 0x56, 0x00, 0x59, 0xd3, 0xfc, 0x21, 0xf2, 0xa1, 0x7b, 0xba, 0x8b, 0xdc, + 0xa7, 0x9f, 0xaf, 0x03, 0x15, 0x96, 0x5d, 0xe4, 0xda, 0x42, 0xfc, 0xbf, 0x76, 0x3c, 0xde, 0x04, + 0x6f, 0x9c, 0x17, 0xa6, 0x34, 0x9e, 0x8f, 0xc7, 0xc5, 0x85, 0x2e, 0x1d, 0x0c, 0x88, 0x87, 0x8f, + 0xf9, 0xf5, 0x9a, 0x37, 0xcc, 0x25, 0x30, 0xc1, 0x30, 0x6b, 0x21, 0x55, 0x97, 0xe4, 0x8b, 0x5e, + 0x03, 0x53, 0x1e, 0xa2, 0x6e, 0x8c, 0x23, 0xd1, 0xcc, 0x0b, 0x32, 0x05, 0x7a, 0x96, 0x32, 0x25, + 0x79, 0x3c, 0x5b, 0x92, 0xd3, 0x46, 0x58, 0xcc, 0xd1, 0x08, 0x27, 0x2e, 0xd7, 0x08, 0x27, 0x73, + 0x34, 0xc2, 0x2b, 0xe7, 0x35, 0xc2, 0xd2, 0x79, 0x8d, 0xb0, 0x3c, 0x62, 0x23, 0x04, 0xf9, 0x1a, + 0xe1, 0x54, 0xfe, 0x46, 0x78, 0x03, 0x54, 0xcf, 0xd8, 0xb1, 0x74, 0x57, 0xff, 0x30, 0x21, 0x72, + 0x67, 0x27, 0x46, 0x90, 0x75, 0xbb, 0xcd, 0xa8, 0xe3, 0xdb, 0x4a, 0x7f, 0x66, 0x74, 0xf7, 0xf3, + 0x43, 0x50, 0x0a, 0x10, 0x83, 0x1e, 0x64, 0x50, 0x0d, 0x5a, 0xef, 0xe4, 0x9a, 0x35, 0x52, 0xeb, + 0x95, 0xb0, 0xba, 0xd5, 0xa7, 0x60, 0xfa, 0x47, 0x1a, 0x58, 0x51, 0x57, 0x7c, 0xfc, 0x73, 0xe1, + 0x9c, 0x23, 0x26, 0x12, 0xc4, 0x50, 0x4c, 0xc5, 0xe9, 0x99, 0xda, 0xb8, 0x73, 0x29, 0x55, 0x7b, + 0x19, 0xb4, 0xc3, 0x14, 0xcc, 0x36, 0xf0, 0x19, 0x14, 0xbd, 0x0d, 0x0c, 0x79, 0x1a, 0x69, 0x13, + 0x46, 0xe2, 0x42, 0xdf, 0x35, 0x41, 0xce, 0x07, 0xdf, 0xce, 0x37, 0x59, 0x71, 0x90, 0x23, 0x89, + 0xd1, 0xa3, 0xf8, 0xb5, 0x68, 0xe8, 0xba, 0xfe, 0x08, 0xac, 0xa4, 0x07, 0x14, 0x79, 0x4e, 0x2c, + 0xda, 0x9d, 0x23, 0x1b, 0xab, 0x1a, 0x26, 0x6e, 0xe7, 0xd2, 0xbb, 0xd5, 0x45, 0xc9, 0xf4, 0xcc, + 0x65, 0x38, 0x9c, 0xa0, 0x87, 0xa0, 0x67, 0xfe, 0xed, 0xf5, 0x56, 0x0e, 0x1c, 0xdf, 0xca, 0xa5, + 0x75, 0x2f, 0x45, 0xe8, 0xf1, 0x75, 0x09, 0x0f, 0x59, 0x55, 0x5d, 0xbe, 0x3b, 0x2d, 0xdf, 0x16, + 0x57, 0x96, 0xec, 0xb1, 0x4d, 0x0e, 0xf5, 0x85, 0x97, 0xa5, 0xfa, 0xa7, 0x93, 0xe2, 0xd4, 0xcb, + 0xe1, 0x34, 0x3d, 0xf5, 0xe9, 0x15, 0x4a, 0xcb, 0x75, 0x85, 0xea, 0x57, 0x53, 0x18, 0xb8, 0x93, + 0xed, 0x82, 0x85, 0x10, 0x9d, 0x38, 0x82, 0xdb, 0x51, 0xcd, 0xe4, 0xc2, 0x56, 0x38, 0x17, 0xa2, + 0x93, 0x03, 0x2e, 0xa1, 0x96, 0xf5, 0x0f, 0x7a, 0x32, 0xa7, 0xf8, 0x12, 0x99, 0x93, 0x3b, 0x67, + 0x26, 0xbe, 0xfa, 0x9c, 0x99, 0xfc, 0x8a, 0x72, 0xe6, 0xca, 0xab, 0xcc, 0x99, 0x1a, 0x98, 0xe6, + 0xc7, 0x21, 0xad, 0x90, 0x25, 0x79, 0x60, 0x42, 0x74, 0xb2, 0xa3, 0x8a, 0xe4, 0x99, 0x59, 0x55, + 0x7e, 0x35, 0x59, 0x35, 0x38, 0x04, 0x64, 0x53, 0x22, 0xc9, 0xa8, 0x8d, 0x27, 0xd3, 0x60, 0x7c, + 0x9f, 0xfa, 0xfa, 0xa7, 0x1a, 0x58, 0x18, 0xfc, 0x40, 0x9c, 0xcf, 0xae, 0x61, 0x1f, 0x58, 0x2b, + 0x5b, 0x23, 0x8b, 0xa6, 0xd9, 0xfe, 0x3b, 0x0d, 0x54, 0xce, 0xf9, 0x30, 0xbb, 0x9d, 0x57, 0xc3, + 0xd9, 0x18, 0x95, 0xf7, 0x5f, 0x1e, 0xe3, 0x1c, 0x73, 0x33, 0x5f, 0x4e, 0x47, 0x34, 0xb7, 0x17, + 0x63, 0x54, 0x73, 0x87, 0x7d, 0x6d, 0xd4, 0x3f, 0xd6, 0xc0, 0x6c, 0xff, 0xed, 0x20, 0x2f, 0x7c, + 0x56, 0xae, 0xf2, 0xdd, 0xd1, 0xe4, 0x32, 0xa6, 0xf4, 0x95, 0xec, 0xdc, 0xa6, 0x64, 0xe5, 0xf2, + 0x9b, 0x32, 0x3c, 0x1f, 0x84, 0x29, 0x7d, 0x13, 0x7a, 0x6e, 0x53, 0xb2, 0x72, 0xf9, 0x4d, 0x19, + 0x3e, 0x9f, 0xf3, 0x5a, 0x3e, 0x9d, 0xf9, 0x16, 0xfc, 0xcd, 0xcb, 0xf9, 0x26, 0xa5, 0x2a, 0xb7, + 0x47, 0x91, 0x4a, 0x8d, 0x08, 0xc0, 0x84, 0x9c, 0xa7, 0xd7, 0xf3, 0xc2, 0x08, 0xf6, 0xca, 0x3b, + 0x97, 0x62, 0x4f, 0xd5, 0x45, 0x60, 0x52, 0x8d, 0xae, 0xe6, 0x25, 0x00, 0x0e, 0xda, 0xac, 0xf2, + 0xee, 0xe5, 0xf8, 0x53, 0x8d, 0xbf, 0xd5, 0xc0, 0xca, 0xd9, 0xa3, 0x64, 0xee, 0x2a, 0x76, 0x26, + 0x44, 0x65, 0xef, 0xa5, 0x21, 0x52, 0x5b, 0x7f, 0xa9, 0x01, 0x7d, 0xc8, 0xe7, 0x9a, 0xcd, 0xdc, + 0xe9, 0x37, 0x20, 0x5b, 0xd9, 0x1e, 0x5d, 0x36, 0x31, 0xab, 0x32, 0xf1, 0x8b, 0x2f, 0x1f, 0xdf, + 0xd4, 0xb6, 0x3f, 0x7c, 0xf2, 0x7c, 0x55, 0xfb, 0xe2, 0xf9, 0xaa, 0xf6, 0xf7, 0xe7, 0xab, 0xda, + 0x27, 0x2f, 0x56, 0xc7, 0xbe, 0x78, 0xb1, 0x3a, 0xf6, 0xe7, 0x17, 0xab, 0x63, 0x3f, 0xfe, 0x8e, + 0x8f, 0x59, 0xb3, 0xdd, 0x30, 0x5d, 0x12, 0xa8, 0xbf, 0x56, 0xad, 0xae, 0xd6, 0xf5, 0xf4, 0x9f, + 0xd1, 0xce, 0x7b, 0xd6, 0xa3, 0xec, 0xdf, 0xa3, 0xe2, 0x9f, 0xa0, 0xc6, 0xa4, 0xf8, 0x52, 0xf7, + 0x8d, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x73, 0xe4, 0xa6, 0xd4, 0x9a, 0x1e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4625,7 +4652,7 @@ func (m *MsgSubmitConsumerDoubleVoting) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.DuplicateVoteEvidence == nil { - m.DuplicateVoteEvidence = &types.DuplicateVoteEvidence{} + m.DuplicateVoteEvidence = &v2.DuplicateVoteEvidence{} } if err := m.DuplicateVoteEvidence.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/x/ccv/types/denom_helpers.go b/x/ccv/types/denom_helpers.go index 3c5f425110..81e57bb87c 100644 --- a/x/ccv/types/denom_helpers.go +++ b/x/ccv/types/denom_helpers.go @@ -13,8 +13,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" - cmtbytes "github.com/cometbft/cometbft/libs/bytes" - cmttypes "github.com/cometbft/cometbft/types" + cmtbytes "github.com/cometbft/cometbft/v2/libs/bytes" + cmttypes "github.com/cometbft/cometbft/v2/types" ) // The code in this file is removed in ibc v9. It is copied from ibc v8 to here in order to support the migration to v9 diff --git a/x/ccv/types/expected_keepers.go b/x/ccv/types/expected_keepers.go index d60bf3718e..5661ae2866 100644 --- a/x/ccv/types/expected_keepers.go +++ b/x/ccv/types/expected_keepers.go @@ -18,7 +18,7 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) // StakingKeeper defines the contract expected by provider-chain ccv module from a Staking Module that will keep track diff --git a/x/ccv/types/genesis.go b/x/ccv/types/genesis.go index 9725349d44..df0ff2518d 100644 --- a/x/ccv/types/genesis.go +++ b/x/ccv/types/genesis.go @@ -7,7 +7,7 @@ import ( errorsmod "cosmossdk.io/errors" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) // NewInitialConsumerGenesisState returns a ConsumerGenesisState for a completely new consumer chain. diff --git a/x/ccv/types/shared_consumer.pb.go b/x/ccv/types/shared_consumer.pb.go index 825cec8df1..f90d7f39cf 100644 --- a/x/ccv/types/shared_consumer.pb.go +++ b/x/ccv/types/shared_consumer.pb.go @@ -5,7 +5,7 @@ package types import ( fmt "fmt" - types "github.com/cometbft/cometbft/abci/types" + v2 "github.com/cometbft/cometbft/api/cometbft/abci/v2" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" @@ -65,7 +65,8 @@ type ConsumerParams struct { // Unbonding period for the consumer, // which should be smaller than that of the provider in general. UnbondingPeriod time.Duration `protobuf:"bytes,9,opt,name=unbonding_period,json=unbondingPeriod,proto3,stdduration" json:"unbonding_period"` - // !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see docs/docs/adrs/adr-015-partial-set-security.md + // !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see + // docs/docs/adrs/adr-015-partial-set-security.md SoftOptOutThreshold string `protobuf:"bytes,10,opt,name=soft_opt_out_threshold,json=softOptOutThreshold,proto3" json:"soft_opt_out_threshold,omitempty"` // Deprecated: Do not use. // Reward denoms. These are the denominations which are allowed to be sent to // the provider as rewards. @@ -301,14 +302,14 @@ func (m *ConsumerGenesisState) GetConnectionId() string { // ProviderInfo defines all information a consumer needs from a provider // Shared data type between provider and consumer type ProviderInfo struct { - // The client state for the provider client filled in on new chain, nil on restart. - // If connection_id != "", then client_state is ignored. + // The client state for the provider client filled in on new chain, nil on + // restart. If connection_id != "", then client_state is ignored. ClientState *_07_tendermint.ClientState `protobuf:"bytes,1,opt,name=client_state,json=clientState,proto3" json:"client_state,omitempty"` - // The consensus state for the provider client filled in on new chain, nil on restart. - // If connection_id != "", then consensus_state is ignored. + // The consensus state for the provider client filled in on new chain, nil on + // restart. If connection_id != "", then consensus_state is ignored. ConsensusState *_07_tendermint.ConsensusState `protobuf:"bytes,2,opt,name=consensus_state,json=consensusState,proto3" json:"consensus_state,omitempty"` // InitialValset filled in on new chain and on restart. - InitialValSet []types.ValidatorUpdate `protobuf:"bytes,3,rep,name=initial_val_set,json=initialValSet,proto3" json:"initial_val_set"` + InitialValSet []v2.ValidatorUpdate `protobuf:"bytes,3,rep,name=initial_val_set,json=initialValSet,proto3" json:"initial_val_set"` } func (m *ProviderInfo) Reset() { *m = ProviderInfo{} } @@ -358,7 +359,7 @@ func (m *ProviderInfo) GetConsensusState() *_07_tendermint.ConsensusState { return nil } -func (m *ProviderInfo) GetInitialValSet() []types.ValidatorUpdate { +func (m *ProviderInfo) GetInitialValSet() []v2.ValidatorUpdate { if m != nil { return m.InitialValSet } @@ -376,61 +377,62 @@ func init() { } var fileDescriptor_d0a8be0efc64dfbc = []byte{ - // 864 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x6f, 0xe4, 0x34, - 0x14, 0x6e, 0x3a, 0xbb, 0xed, 0xd4, 0x33, 0x6d, 0x17, 0x53, 0x4a, 0xe8, 0x4a, 0xd3, 0xd9, 0xc2, - 0x61, 0x04, 0xda, 0x84, 0x96, 0x95, 0x56, 0xe2, 0x46, 0xa7, 0x2c, 0xdb, 0x3d, 0xb4, 0xb3, 0x69, - 0x29, 0x12, 0x1c, 0x2c, 0xc7, 0x7e, 0x33, 0x63, 0x91, 0xb1, 0x23, 0xdb, 0x49, 0xe9, 0x1d, 0xc1, - 0x95, 0x23, 0x3f, 0x69, 0x8f, 0x7b, 0xe4, 0x04, 0xa8, 0xfd, 0x23, 0x28, 0x4e, 0x32, 0xcd, 0x20, - 0x0a, 0xe5, 0x96, 0xf7, 0xfc, 0x7d, 0x5f, 0xfc, 0xbe, 0xe7, 0x67, 0xa3, 0x4f, 0x85, 0xb4, 0xa0, - 0xd9, 0x94, 0x0a, 0x49, 0x0c, 0xb0, 0x4c, 0x0b, 0x7b, 0x15, 0x32, 0x96, 0x87, 0xf9, 0x7e, 0x68, - 0xa6, 0x54, 0x03, 0x27, 0x4c, 0x49, 0x93, 0xcd, 0x40, 0x07, 0xa9, 0x56, 0x56, 0xe1, 0x9d, 0x7f, - 0x60, 0x04, 0x8c, 0xe5, 0x41, 0xbe, 0xbf, 0xf3, 0xd8, 0x82, 0xe4, 0xa0, 0x67, 0x42, 0xda, 0x90, - 0xc6, 0x4c, 0x84, 0xf6, 0x2a, 0x05, 0x53, 0x12, 0x77, 0x42, 0x11, 0xb3, 0x30, 0x11, 0x93, 0xa9, - 0x65, 0x89, 0x00, 0x69, 0x4d, 0xd8, 0x40, 0xe7, 0xfb, 0x8d, 0xa8, 0x22, 0xf4, 0x26, 0x4a, 0x4d, - 0x12, 0x08, 0x5d, 0x14, 0x67, 0xe3, 0x90, 0x67, 0x9a, 0x5a, 0xa1, 0x64, 0xb5, 0xbe, 0x35, 0x51, - 0x13, 0xe5, 0x3e, 0xc3, 0xe2, 0xab, 0xcc, 0xee, 0xfd, 0xb8, 0x8a, 0x36, 0x86, 0xd5, 0x96, 0x47, - 0x54, 0xd3, 0x99, 0xc1, 0x3e, 0x5a, 0x05, 0x49, 0xe3, 0x04, 0xb8, 0xef, 0xf5, 0xbd, 0x41, 0x3b, - 0xaa, 0x43, 0x7c, 0x8a, 0x3e, 0x8a, 0x13, 0xc5, 0xbe, 0x37, 0x24, 0x05, 0x4d, 0xb8, 0x30, 0x56, - 0x8b, 0x38, 0x2b, 0xfe, 0x41, 0xac, 0xa6, 0xd2, 0xcc, 0x84, 0x31, 0x42, 0x49, 0x7f, 0xb9, 0xef, - 0x0d, 0x5a, 0xd1, 0x93, 0x12, 0x3b, 0x02, 0x7d, 0xd4, 0x40, 0x9e, 0x37, 0x80, 0xf8, 0x15, 0x7a, - 0x72, 0xa7, 0x0a, 0x61, 0x53, 0x2a, 0x25, 0x24, 0x7e, 0xab, 0xef, 0x0d, 0xd6, 0xa2, 0x5d, 0x7e, - 0x87, 0xc8, 0xb0, 0x84, 0xe1, 0xcf, 0xd1, 0x4e, 0xaa, 0x55, 0x2e, 0x38, 0x68, 0x32, 0x06, 0x20, - 0xa9, 0x52, 0x09, 0xa1, 0x9c, 0x6b, 0x62, 0xac, 0xf6, 0x1f, 0x38, 0x91, 0xed, 0x1a, 0xf1, 0x02, - 0x60, 0xa4, 0x54, 0xf2, 0x05, 0xe7, 0xfa, 0xcc, 0x6a, 0xfc, 0x1a, 0x61, 0xc6, 0x72, 0x62, 0xc5, - 0x0c, 0x54, 0x66, 0x8b, 0xea, 0x84, 0xe2, 0xfe, 0xc3, 0xbe, 0x37, 0xe8, 0x1c, 0x7c, 0x10, 0x94, - 0xc6, 0x06, 0xb5, 0xb1, 0xc1, 0x51, 0x65, 0xec, 0x61, 0xfb, 0xcd, 0xef, 0xbb, 0x4b, 0xbf, 0xfe, - 0xb1, 0xeb, 0x45, 0x8f, 0x18, 0xcb, 0xcf, 0x4b, 0xf6, 0xc8, 0x91, 0xf1, 0x77, 0xe8, 0x7d, 0x57, - 0xcd, 0x18, 0xf4, 0xdf, 0x75, 0x57, 0xee, 0xaf, 0xfb, 0x5e, 0xad, 0xb1, 0x28, 0xfe, 0x12, 0xf5, - 0xeb, 0x73, 0x46, 0x34, 0x2c, 0x58, 0x38, 0xd6, 0x94, 0x15, 0x1f, 0xfe, 0xaa, 0xab, 0xb8, 0x57, - 0xe3, 0xa2, 0x05, 0xd8, 0x8b, 0x0a, 0x85, 0x9f, 0x22, 0x3c, 0x15, 0xc6, 0x2a, 0x2d, 0x18, 0x4d, - 0x08, 0x48, 0xab, 0x05, 0x18, 0xbf, 0xed, 0x1a, 0xf8, 0xce, 0xed, 0xca, 0x97, 0xe5, 0x02, 0x3e, - 0x41, 0x8f, 0x32, 0x19, 0x2b, 0xc9, 0x85, 0x9c, 0xd4, 0xe5, 0xac, 0xdd, 0xbf, 0x9c, 0xcd, 0x39, - 0xb9, 0x2a, 0xe4, 0x39, 0xda, 0x36, 0x6a, 0x6c, 0x89, 0x4a, 0x2d, 0x29, 0x1c, 0xb2, 0x53, 0x0d, - 0x66, 0xaa, 0x12, 0xee, 0xa3, 0x62, 0xfb, 0x87, 0xcb, 0xbe, 0x17, 0xbd, 0x5b, 0x20, 0x4e, 0x53, - 0x7b, 0x9a, 0xd9, 0xf3, 0x7a, 0x19, 0x7f, 0x88, 0xd6, 0x35, 0x5c, 0x52, 0xcd, 0x09, 0x07, 0xa9, - 0x66, 0xc6, 0xef, 0xf4, 0x5b, 0x83, 0xb5, 0xa8, 0x5b, 0x26, 0x8f, 0x5c, 0x0e, 0x3f, 0x43, 0xf3, - 0x86, 0x93, 0x45, 0x74, 0xd7, 0xa1, 0xb7, 0xea, 0xd5, 0xa8, 0xc9, 0x7a, 0x8d, 0xb0, 0x06, 0xab, - 0xaf, 0x08, 0x87, 0x84, 0x5e, 0xd5, 0x55, 0xae, 0xff, 0x8f, 0xc3, 0xe0, 0xe8, 0x47, 0x05, 0xbb, - 0x2a, 0x73, 0x17, 0x75, 0xe6, 0xfd, 0x12, 0xdc, 0xdf, 0x70, 0xad, 0x41, 0x75, 0xea, 0x98, 0xef, - 0xfd, 0xb4, 0x8c, 0xb6, 0xea, 0x31, 0xfc, 0x0a, 0x24, 0x18, 0x61, 0xce, 0x2c, 0xb5, 0x80, 0x5f, - 0xa2, 0x95, 0xd4, 0x8d, 0xa5, 0x9b, 0xc5, 0xce, 0xc1, 0xc7, 0xc1, 0xdd, 0x17, 0x4a, 0xb0, 0x38, - 0xc8, 0x87, 0x0f, 0x8a, 0x1d, 0x45, 0x15, 0x1f, 0xbf, 0x42, 0xed, 0xba, 0x5c, 0x37, 0xa0, 0x9d, - 0x83, 0xc1, 0xbf, 0x69, 0x8d, 0x2a, 0xec, 0xb1, 0x1c, 0xab, 0x4a, 0x69, 0xce, 0xc7, 0x8f, 0xd1, - 0x9a, 0x84, 0x4b, 0xe2, 0x98, 0x6e, 0x3e, 0xdb, 0x51, 0x5b, 0xc2, 0xe5, 0xb0, 0x88, 0xf1, 0x36, - 0x5a, 0x49, 0x35, 0x0c, 0x87, 0x17, 0x6e, 0xe8, 0xda, 0x51, 0x15, 0x15, 0x2d, 0x63, 0x4a, 0x4a, - 0x70, 0x07, 0xaf, 0xb0, 0xe1, 0xa1, 0xb3, 0xa1, 0x7b, 0x9b, 0x3c, 0xe6, 0x7b, 0x3f, 0x2f, 0xa3, - 0x6e, 0xf3, 0xd7, 0xf8, 0x04, 0x75, 0xcb, 0x0b, 0x90, 0x98, 0xc2, 0x90, 0xca, 0x86, 0x4f, 0x02, - 0x11, 0xb3, 0xa0, 0x79, 0x3d, 0x06, 0x8d, 0x0b, 0xb1, 0xb0, 0xc2, 0x65, 0x9d, 0x87, 0x51, 0x87, - 0xdd, 0x06, 0xf8, 0x1b, 0xb4, 0x59, 0xf8, 0x0e, 0xd2, 0x64, 0xa6, 0x92, 0x2c, 0xdd, 0x08, 0xfe, - 0x53, 0xb2, 0xa6, 0x95, 0xaa, 0x1b, 0x6c, 0x21, 0xc6, 0x27, 0x68, 0x53, 0x48, 0x61, 0x05, 0x4d, - 0x48, 0x4e, 0x13, 0x62, 0xc0, 0xfa, 0xad, 0x7e, 0x6b, 0xd0, 0x39, 0xe8, 0x37, 0x75, 0x8a, 0x7b, - 0x3e, 0xb8, 0xa0, 0x89, 0xe0, 0xd4, 0x2a, 0xfd, 0x75, 0xca, 0xa9, 0x85, 0xca, 0xde, 0xf5, 0x8a, - 0x7e, 0x41, 0x93, 0x33, 0xb0, 0x87, 0x27, 0x6f, 0xae, 0x7b, 0xde, 0xdb, 0xeb, 0x9e, 0xf7, 0xe7, - 0x75, 0xcf, 0xfb, 0xe5, 0xa6, 0xb7, 0xf4, 0xf6, 0xa6, 0xb7, 0xf4, 0xdb, 0x4d, 0x6f, 0xe9, 0xdb, - 0x67, 0x13, 0x61, 0xa7, 0x59, 0x1c, 0x30, 0x35, 0x0b, 0x99, 0x32, 0x33, 0x65, 0xc2, 0xdb, 0x46, - 0x3e, 0x9d, 0xbf, 0x4b, 0xf9, 0xf3, 0xf0, 0x07, 0xf7, 0x38, 0xb9, 0x67, 0x25, 0x5e, 0x71, 0x47, - 0xf6, 0xb3, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x42, 0x46, 0x65, 0xc4, 0x06, 0x00, 0x00, + // 874 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0xae, 0x9b, 0xdd, 0x36, 0x9d, 0xa4, 0xed, 0x32, 0x94, 0x62, 0x0a, 0x4a, 0xd3, 0xc2, 0x21, + 0x02, 0xad, 0xcd, 0x86, 0x95, 0x56, 0xe2, 0x46, 0x53, 0x96, 0xed, 0x1e, 0xda, 0xac, 0x5b, 0x8a, + 0x04, 0x87, 0xd1, 0x78, 0xe6, 0x25, 0x19, 0xe1, 0xcc, 0x58, 0x33, 0x63, 0x97, 0xde, 0x11, 0xe2, + 0xc8, 0x91, 0x3f, 0x69, 0x8f, 0x7b, 0xe4, 0x04, 0xa8, 0xfd, 0x47, 0x90, 0xc7, 0x76, 0x7e, 0x20, + 0x0a, 0xe5, 0xe6, 0xf7, 0xe6, 0xfb, 0x3e, 0xfb, 0x7d, 0x6f, 0xde, 0x33, 0xfa, 0x54, 0x48, 0x0b, + 0x9a, 0x4d, 0xa8, 0x90, 0xc4, 0x00, 0xcb, 0xb4, 0xb0, 0xd7, 0x21, 0x63, 0x79, 0x98, 0x3f, 0x09, + 0xcd, 0x84, 0x6a, 0xe0, 0x84, 0x29, 0x69, 0xb2, 0x29, 0xe8, 0x20, 0xd5, 0xca, 0x2a, 0xbc, 0xf7, + 0x0f, 0x8c, 0x80, 0xb1, 0x3c, 0xc8, 0x9f, 0xec, 0x7d, 0xc0, 0xd4, 0x14, 0x6c, 0x3c, 0xb2, 0x21, + 0x8d, 0x99, 0x08, 0xf3, 0x7e, 0x68, 0xaf, 0x53, 0x30, 0x25, 0x73, 0x2f, 0x14, 0x31, 0x0b, 0x13, + 0x31, 0x9e, 0x58, 0x96, 0x08, 0x90, 0xd6, 0x84, 0x16, 0x24, 0x07, 0x3d, 0x15, 0xd2, 0x16, 0xef, + 0x9b, 0x47, 0x15, 0xa1, 0x33, 0x56, 0x6a, 0x9c, 0x40, 0xe8, 0xa2, 0x38, 0x1b, 0x85, 0x3c, 0xd3, + 0xd4, 0x0a, 0x25, 0xab, 0xf3, 0x9d, 0xb1, 0x1a, 0x2b, 0xf7, 0x18, 0x16, 0x4f, 0x65, 0xf6, 0xf0, + 0xc7, 0x75, 0xb4, 0x35, 0xa8, 0xbe, 0x79, 0x48, 0x35, 0x9d, 0x1a, 0xec, 0xa3, 0x75, 0x90, 0x34, + 0x4e, 0x80, 0xfb, 0x5e, 0xd7, 0xeb, 0x35, 0xa3, 0x3a, 0xc4, 0x67, 0xe8, 0xa3, 0x38, 0x51, 0xec, + 0x7b, 0x43, 0x52, 0xd0, 0x84, 0x0b, 0x63, 0xb5, 0x88, 0xb3, 0xe2, 0x1d, 0xc4, 0x6a, 0x2a, 0xcd, + 0x54, 0x18, 0x23, 0x94, 0xf4, 0x57, 0xbb, 0x5e, 0xaf, 0x11, 0x1d, 0x94, 0xd8, 0x21, 0xe8, 0xe3, + 0x05, 0xe4, 0xc5, 0x02, 0x10, 0xbf, 0x44, 0x07, 0x77, 0xaa, 0x10, 0x36, 0xa1, 0x52, 0x42, 0xe2, + 0x37, 0xba, 0x5e, 0x6f, 0x23, 0xda, 0xe7, 0x77, 0x88, 0x0c, 0x4a, 0x18, 0xfe, 0x1c, 0xed, 0xa5, + 0x5a, 0xe5, 0x82, 0x83, 0x26, 0x23, 0x00, 0x92, 0x2a, 0x95, 0x10, 0xca, 0xb9, 0x26, 0xc6, 0x6a, + 0xff, 0x81, 0x13, 0xd9, 0xad, 0x11, 0xcf, 0x01, 0x86, 0x4a, 0x25, 0x5f, 0x70, 0xae, 0xcf, 0xad, + 0xc6, 0xaf, 0x10, 0x66, 0x2c, 0x27, 0x56, 0x4c, 0x41, 0x65, 0xb6, 0xa8, 0x4e, 0x28, 0xee, 0x3f, + 0xec, 0x7a, 0xbd, 0x56, 0xff, 0xbd, 0xa0, 0x34, 0x36, 0xa8, 0x8d, 0x0d, 0x8e, 0x2b, 0x63, 0x8f, + 0x9a, 0xaf, 0x7f, 0xdf, 0x5f, 0xf9, 0xf5, 0x8f, 0x7d, 0x2f, 0x7a, 0xc4, 0x58, 0x7e, 0x51, 0xb2, + 0x87, 0x8e, 0x8c, 0xbf, 0x43, 0xef, 0xba, 0x6a, 0x46, 0xa0, 0xff, 0xae, 0xbb, 0x76, 0x7f, 0xdd, + 0x77, 0x6a, 0x8d, 0x65, 0xf1, 0x17, 0xa8, 0x5b, 0x5f, 0x34, 0xa2, 0x61, 0xc9, 0xc2, 0x91, 0xa6, + 0xac, 0x78, 0xf0, 0xd7, 0x5d, 0xc5, 0x9d, 0x1a, 0x17, 0x2d, 0xc1, 0x9e, 0x57, 0x28, 0xfc, 0x18, + 0xe1, 0x89, 0x30, 0x56, 0x69, 0xc1, 0x68, 0x42, 0x40, 0x5a, 0x2d, 0xc0, 0xf8, 0x4d, 0xd7, 0xc0, + 0xb7, 0xe6, 0x27, 0x5f, 0x96, 0x07, 0xf8, 0x14, 0x3d, 0xca, 0x64, 0xac, 0x24, 0x17, 0x72, 0x5c, + 0x97, 0xb3, 0x71, 0xff, 0x72, 0xb6, 0x67, 0xe4, 0xaa, 0x90, 0x67, 0x68, 0xd7, 0xa8, 0x91, 0x25, + 0x2a, 0xb5, 0xa4, 0x70, 0xc8, 0x4e, 0x34, 0x98, 0x89, 0x4a, 0xb8, 0x8f, 0x8a, 0xcf, 0x3f, 0x5a, + 0xf5, 0xbd, 0xe8, 0xed, 0x02, 0x71, 0x96, 0xda, 0xb3, 0xcc, 0x5e, 0xd4, 0xc7, 0xf8, 0x43, 0xb4, + 0xa9, 0xe1, 0x8a, 0x6a, 0x4e, 0x38, 0x48, 0x35, 0x35, 0x7e, 0xab, 0xdb, 0xe8, 0x6d, 0x44, 0xed, + 0x32, 0x79, 0xec, 0x72, 0xf8, 0x29, 0x9a, 0x35, 0x9c, 0x2c, 0xa3, 0xdb, 0x0e, 0xbd, 0x53, 0x9f, + 0x46, 0x8b, 0xac, 0x57, 0x08, 0x6b, 0xb0, 0xfa, 0x9a, 0x70, 0x48, 0xe8, 0x75, 0x5d, 0xe5, 0xe6, + 0xff, 0xb8, 0x0c, 0x8e, 0x7e, 0x5c, 0xb0, 0xab, 0x32, 0xf7, 0x51, 0x6b, 0xd6, 0x2f, 0xc1, 0xfd, + 0x2d, 0xd7, 0x1a, 0x54, 0xa7, 0x4e, 0xf8, 0xe1, 0x4f, 0xab, 0x68, 0xa7, 0x1e, 0xc3, 0xaf, 0x40, + 0x82, 0x11, 0xe6, 0xdc, 0x52, 0x0b, 0xf8, 0x05, 0x5a, 0x4b, 0xdd, 0x58, 0xba, 0x59, 0x6c, 0xf5, + 0x3f, 0x0e, 0xee, 0xde, 0x28, 0xc1, 0xf2, 0x20, 0x1f, 0x3d, 0x28, 0xbe, 0x28, 0xaa, 0xf8, 0xf8, + 0x25, 0x6a, 0xd6, 0xe5, 0xba, 0x01, 0x6d, 0xf5, 0x7b, 0xff, 0xa6, 0x35, 0xac, 0xb0, 0x27, 0x72, + 0xa4, 0x2a, 0xa5, 0x19, 0x1f, 0xbf, 0x8f, 0x36, 0x24, 0x5c, 0x11, 0xc7, 0x74, 0xf3, 0xd9, 0x8c, + 0x9a, 0x12, 0xae, 0x06, 0x45, 0x8c, 0x77, 0xd1, 0x5a, 0xaa, 0x61, 0x30, 0xb8, 0x74, 0x43, 0xd7, + 0x8c, 0xaa, 0xa8, 0x68, 0x19, 0x53, 0x52, 0x82, 0xbb, 0x78, 0x85, 0x0d, 0x0f, 0x9d, 0x0d, 0xed, + 0x79, 0xf2, 0x84, 0x1f, 0xfe, 0xbc, 0x8a, 0xda, 0x8b, 0xaf, 0xc6, 0xa7, 0xa8, 0x5d, 0x2e, 0x40, + 0x62, 0x0a, 0x43, 0x2a, 0x1b, 0x3e, 0x09, 0x44, 0xcc, 0x82, 0xc5, 0xf5, 0x18, 0x2c, 0x2c, 0xc4, + 0xc2, 0x0a, 0x97, 0x75, 0x1e, 0x46, 0x2d, 0x36, 0x0f, 0xf0, 0x37, 0x68, 0xbb, 0xf0, 0x1d, 0xa4, + 0xc9, 0x4c, 0x25, 0x59, 0xba, 0x11, 0xfc, 0xa7, 0x64, 0x4d, 0x2b, 0x55, 0xb7, 0xd8, 0x52, 0x8c, + 0xcf, 0xd0, 0xb6, 0x90, 0xc2, 0x0a, 0x9a, 0x90, 0x9c, 0x26, 0xc4, 0x80, 0xf5, 0x1b, 0xdd, 0x46, + 0xaf, 0xd5, 0x3f, 0x08, 0xea, 0x45, 0x1f, 0x14, 0x8b, 0x3e, 0xc8, 0xfb, 0xc1, 0x25, 0x4d, 0x04, + 0xa7, 0x56, 0xe9, 0xaf, 0x53, 0x4e, 0x2d, 0x54, 0xfe, 0x6e, 0x56, 0xfc, 0x4b, 0x9a, 0x9c, 0x83, + 0x3d, 0x3a, 0x7d, 0x7d, 0xd3, 0xf1, 0xde, 0xdc, 0x74, 0xbc, 0x3f, 0x6f, 0x3a, 0xde, 0x2f, 0xb7, + 0x9d, 0x95, 0x37, 0xb7, 0x9d, 0x95, 0xdf, 0x6e, 0x3b, 0x2b, 0xdf, 0x3e, 0x1d, 0x0b, 0x3b, 0xc9, + 0xe2, 0x42, 0x37, 0x64, 0xca, 0x4c, 0x95, 0x09, 0xe7, 0x9d, 0x7c, 0x3c, 0xfb, 0x33, 0xe5, 0xcf, + 0xc2, 0x1f, 0xdc, 0xef, 0xc9, 0xfd, 0x57, 0xe2, 0x35, 0x77, 0x67, 0x3f, 0xfb, 0x2b, 0x00, 0x00, + 0xff, 0xff, 0xa0, 0x79, 0xab, 0xf4, 0xc6, 0x06, 0x00, 0x00, } func (m *ConsumerParams) Marshal() (dAtA []byte, err error) { @@ -1595,7 +1597,7 @@ func (m *ProviderInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.InitialValSet = append(m.InitialValSet, types.ValidatorUpdate{}) + m.InitialValSet = append(m.InitialValSet, v2.ValidatorUpdate{}) if err := m.InitialValSet[len(m.InitialValSet)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/x/ccv/types/utils.go b/x/ccv/types/utils.go index 1567359ff0..964e53cabb 100644 --- a/x/ccv/types/utils.go +++ b/x/ccv/types/utils.go @@ -17,19 +17,19 @@ import ( "github.com/cosmos/cosmos-sdk/types/bech32" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" - tmprotocrypto "github.com/cometbft/cometbft/proto/tendermint/crypto" + tmprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" + abci "github.com/cometbft/cometbft/v2/abci/types" ) func AccumulateChanges(currentChanges, newChanges []abci.ValidatorUpdate) []abci.ValidatorUpdate { m := make(map[string]abci.ValidatorUpdate) for i := 0; i < len(currentChanges); i++ { - m[currentChanges[i].PubKey.String()] = currentChanges[i] + m[string(currentChanges[i].PubKeyBytes)] = currentChanges[i] } for i := 0; i < len(newChanges); i++ { - m[newChanges[i].PubKey.String()] = newChanges[i] + m[string(newChanges[i].PubKeyBytes)] = newChanges[i] } var out []abci.ValidatorUpdate @@ -44,7 +44,7 @@ func AccumulateChanges(currentChanges, newChanges []abci.ValidatorUpdate) []abci if out[i].Power != out[j].Power { return out[i].Power > out[j].Power } - return out[i].PubKey.String() > out[j].PubKey.String() + return string(out[i].PubKeyBytes) > string(out[j].PubKeyBytes) }) return out diff --git a/x/ccv/types/utils_test.go b/x/ccv/types/utils_test.go index c315068a3e..49fee4d113 100644 --- a/x/ccv/types/utils_test.go +++ b/x/ccv/types/utils_test.go @@ -3,12 +3,13 @@ package types_test import ( "testing" + "github.com/cometbft/cometbft/v2/crypto/encoding" ibctesting "github.com/cosmos/ibc-go/v10/testing" "github.com/stretchr/testify/require" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/x/ccv/types" ) @@ -17,7 +18,12 @@ func TestAccumulateChanges(t *testing.T) { _, testKeys, _ := ibctesting.GenerateKeys(t, 2) tmPubKey, _ := cryptocodec.ToCmtProtoPublicKey(testKeys[0]) + pk1, err := encoding.PubKeyFromProto(tmPubKey) + require.NoError(t, err) + tmPubKey2, _ := cryptocodec.ToCmtProtoPublicKey(testKeys[1]) + pk2, err := encoding.PubKeyFromProto(tmPubKey2) + require.NoError(t, err) testCases := []struct { name string @@ -34,49 +40,49 @@ func TestAccumulateChanges(t *testing.T) { { name: "one change", changes1: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 1}, + {PubKeyBytes: pk1.Bytes(), PubKeyType: pk1.Type(), Power: 1}, }, changes2: []abci.ValidatorUpdate{}, expected: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 1}, + {PubKeyType: pk1.Type(), PubKeyBytes: pk1.Bytes(), Power: 1}, }, }, { name: "two changes", changes1: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 1}, + {PubKeyBytes: pk1.Bytes(), PubKeyType: pk1.Type(), Power: 1}, }, changes2: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 2}, + {PubKeyBytes: pk1.Bytes(), PubKeyType: pk1.Type(), Power: 2}, }, expected: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 2}, + {PubKeyBytes: pk1.Bytes(), PubKeyType: pk1.Type(), Power: 2}, }, }, { name: "two changes with different pubkeys", changes1: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 1}, + {PubKeyType: pk1.Type(), PubKeyBytes: pk1.Bytes(), Power: 1}, }, changes2: []abci.ValidatorUpdate{ - {PubKey: tmPubKey2, Power: 2}, + {PubKeyBytes: pk2.Bytes(), PubKeyType: pk2.Type(), Power: 2}, }, expected: []abci.ValidatorUpdate{ - {PubKey: tmPubKey2, Power: 2}, - {PubKey: tmPubKey, Power: 1}, + {PubKeyType: pk2.Type(), PubKeyBytes: pk2.Bytes(), Power: 2}, + {PubKeyBytes: pk1.Bytes(), PubKeyType: pk1.Type(), Power: 1}, }, }, { name: "two changes with different pubkeys and same power", changes1: []abci.ValidatorUpdate{ - {PubKey: tmPubKey, Power: 1}, + {PubKeyBytes: pk1.Bytes(), PubKeyType: pk1.Type(), Power: 1}, }, changes2: []abci.ValidatorUpdate{ - {PubKey: tmPubKey2, Power: 1}, + {PubKeyType: pk2.Type(), PubKeyBytes: pk2.Bytes(), Power: 1}, }, expected: []abci.ValidatorUpdate{ - {PubKey: tmPubKey2, Power: 1}, - {PubKey: tmPubKey, Power: 1}, + {PubKeyBytes: pk2.Bytes(), PubKeyType: pk2.Type(), Power: 1}, + {PubKeyType: pk1.Type(), PubKeyBytes: pk1.Bytes(), Power: 1}, }, }, } diff --git a/x/ccv/types/wire.go b/x/ccv/types/wire.go index 9e49d546da..15df89b60a 100644 --- a/x/ccv/types/wire.go +++ b/x/ccv/types/wire.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" ) func NewValidatorSetChangePacketData(valUpdates []abci.ValidatorUpdate, valUpdateID uint64, slashAcks []string) ValidatorSetChangePacketData { diff --git a/x/ccv/types/wire.pb.go b/x/ccv/types/wire.pb.go index 5a4d462940..8cb4161422 100644 --- a/x/ccv/types/wire.pb.go +++ b/x/ccv/types/wire.pb.go @@ -5,8 +5,8 @@ package types import ( fmt "fmt" - types "github.com/cometbft/cometbft/abci/types" - types1 "github.com/cosmos/cosmos-sdk/x/staking/types" + v2 "github.com/cometbft/cometbft/api/cometbft/abci/v2" + types "github.com/cosmos/cosmos-sdk/x/staking/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -97,8 +97,8 @@ func (InfractionType) EnumDescriptor() ([]byte, []int) { // asynchronously once unbonding period is over, and this will function as // `UnbondingOver` message for this packet. type ValidatorSetChangePacketData struct { - ValidatorUpdates []types.ValidatorUpdate `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates" yaml:"validator_updates"` - ValsetUpdateId uint64 `protobuf:"varint,2,opt,name=valset_update_id,json=valsetUpdateId,proto3" json:"valset_update_id,omitempty"` + ValidatorUpdates []v2.ValidatorUpdate `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates" yaml:"validator_updates"` + ValsetUpdateId uint64 `protobuf:"varint,2,opt,name=valset_update_id,json=valsetUpdateId,proto3" json:"valset_update_id,omitempty"` // consensus address of consumer chain validators // successfully slashed on the provider chain SlashAcks []string `protobuf:"bytes,3,rep,name=slash_acks,json=slashAcks,proto3" json:"slash_acks,omitempty"` @@ -137,7 +137,7 @@ func (m *ValidatorSetChangePacketData) XXX_DiscardUnknown() { var xxx_messageInfo_ValidatorSetChangePacketData proto.InternalMessageInfo -func (m *ValidatorSetChangePacketData) GetValidatorUpdates() []types.ValidatorUpdate { +func (m *ValidatorSetChangePacketData) GetValidatorUpdates() []v2.ValidatorUpdate { if m != nil { return m.ValidatorUpdates } @@ -209,11 +209,11 @@ func (m *VSCMaturedPacketData) GetValsetUpdateId() uint64 { // to request the slashing of a validator as a result of an infraction // committed on the consumer chain. type SlashPacketData struct { - Validator types.Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator" yaml:"validator"` + Validator v2.Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator" yaml:"validator"` // map to the infraction block height on the provider ValsetUpdateId uint64 `protobuf:"varint,2,opt,name=valset_update_id,json=valsetUpdateId,proto3" json:"valset_update_id,omitempty"` // tell if the slashing is for a downtime or a double-signing infraction - Infraction types1.Infraction `protobuf:"varint,3,opt,name=infraction,proto3,enum=cosmos.staking.v1beta1.Infraction" json:"infraction,omitempty"` + Infraction types.Infraction `protobuf:"varint,3,opt,name=infraction,proto3,enum=cosmos.staking.v1beta1.Infraction" json:"infraction,omitempty"` } func (m *SlashPacketData) Reset() { *m = SlashPacketData{} } @@ -249,11 +249,11 @@ func (m *SlashPacketData) XXX_DiscardUnknown() { var xxx_messageInfo_SlashPacketData proto.InternalMessageInfo -func (m *SlashPacketData) GetValidator() types.Validator { +func (m *SlashPacketData) GetValidator() v2.Validator { if m != nil { return m.Validator } - return types.Validator{} + return v2.Validator{} } func (m *SlashPacketData) GetValsetUpdateId() uint64 { @@ -263,11 +263,11 @@ func (m *SlashPacketData) GetValsetUpdateId() uint64 { return 0 } -func (m *SlashPacketData) GetInfraction() types1.Infraction { +func (m *SlashPacketData) GetInfraction() types.Infraction { if m != nil { return m.Infraction } - return types1.Infraction_INFRACTION_UNSPECIFIED + return types.Infraction_INFRACTION_UNSPECIFIED } // ConsumerPacketData contains a consumer packet data and a type tag @@ -364,7 +364,8 @@ func (*ConsumerPacketData) XXX_OneofWrappers() []interface{} { } } -// Note this type is used during IBC handshake methods for both the consumer and provider +// Note this type is used during IBC handshake methods for both the consumer and +// provider type HandshakeMetadata struct { ProviderFeePoolAddr string `protobuf:"bytes,1,opt,name=provider_fee_pool_addr,json=providerFeePoolAddr,proto3" json:"provider_fee_pool_addr,omitempty"` Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` @@ -418,7 +419,8 @@ func (m *HandshakeMetadata) GetVersion() string { } // ConsumerPacketData contains a consumer packet data and a type tag -// that is compatible with ICS v1 and v2 over the wire. It is not used for internal storage. +// that is compatible with ICS v1 and v2 over the wire. It is not used for +// internal storage. type ConsumerPacketDataV1 struct { Type ConsumerPacketDataType `protobuf:"varint,1,opt,name=type,proto3,enum=interchain_security.ccv.v1.ConsumerPacketDataType" json:"type,omitempty"` // Types that are valid to be assigned to Data: @@ -515,7 +517,7 @@ func (*ConsumerPacketDataV1) XXX_OneofWrappers() []interface{} { // This packet is sent from the consumer chain to the provider chain // It is backward compatible with the ICS v1 and v2 version of the packet. type SlashPacketDataV1 struct { - Validator types.Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator" yaml:"validator"` + Validator v2.Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator" yaml:"validator"` // map to the infraction block height on the provider ValsetUpdateId uint64 `protobuf:"varint,2,opt,name=valset_update_id,json=valsetUpdateId,proto3" json:"valset_update_id,omitempty"` // tell if the slashing is for a downtime or a double-signing infraction @@ -555,11 +557,11 @@ func (m *SlashPacketDataV1) XXX_DiscardUnknown() { var xxx_messageInfo_SlashPacketDataV1 proto.InternalMessageInfo -func (m *SlashPacketDataV1) GetValidator() types.Validator { +func (m *SlashPacketDataV1) GetValidator() v2.Validator { if m != nil { return m.Validator } - return types.Validator{} + return v2.Validator{} } func (m *SlashPacketDataV1) GetValsetUpdateId() uint64 { @@ -593,60 +595,60 @@ func init() { } var fileDescriptor_8fd0dc67df6b10ed = []byte{ - // 834 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcd, 0x6e, 0xdb, 0x46, - 0x10, 0x26, 0x65, 0x23, 0xad, 0x57, 0x85, 0x4c, 0x33, 0x6a, 0xc0, 0x32, 0xad, 0x42, 0x10, 0x2d, - 0x20, 0xb8, 0x08, 0x59, 0xc9, 0x01, 0x0a, 0xb4, 0x97, 0xea, 0x87, 0xae, 0xd9, 0xc6, 0xb2, 0x40, - 0x4a, 0x0a, 0xd2, 0x0b, 0xb1, 0x22, 0xd7, 0xd2, 0x42, 0x12, 0x97, 0xe0, 0xae, 0x98, 0xea, 0x0d, - 0x0a, 0x9d, 0xfa, 0x02, 0x3a, 0x15, 0x3d, 0xe4, 0x31, 0x7a, 0xcb, 0x31, 0x40, 0x2f, 0xb9, 0x34, - 0x28, 0xec, 0x37, 0xe8, 0x13, 0x14, 0xa4, 0x7e, 0x2d, 0xd1, 0x06, 0x02, 0x14, 0x68, 0x6e, 0xe4, - 0xec, 0x7c, 0xdf, 0xce, 0x7c, 0xdf, 0x2c, 0x06, 0x7c, 0x81, 0x7d, 0x86, 0x42, 0xb7, 0x0f, 0xb1, - 0xef, 0x50, 0xe4, 0x8e, 0x43, 0xcc, 0x26, 0xba, 0xeb, 0x46, 0x7a, 0x54, 0xd2, 0x5f, 0xe0, 0x10, - 0x69, 0x41, 0x48, 0x18, 0x11, 0xe5, 0x94, 0x34, 0xcd, 0x75, 0x23, 0x2d, 0x2a, 0xc9, 0x9f, 0xbb, - 0x84, 0x8e, 0x08, 0xd5, 0x29, 0x83, 0x03, 0xec, 0xf7, 0xf4, 0xa8, 0xd4, 0x45, 0x0c, 0x96, 0x96, - 0xff, 0x73, 0x06, 0x39, 0xdf, 0x23, 0x3d, 0x92, 0x7c, 0xea, 0xf1, 0xd7, 0x22, 0xfa, 0x90, 0x21, - 0xdf, 0x43, 0xe1, 0x08, 0xfb, 0x4c, 0x87, 0x5d, 0x17, 0xeb, 0x6c, 0x12, 0x20, 0x3a, 0x3f, 0x54, - 0xdf, 0xf0, 0xe0, 0xd3, 0x0e, 0x1c, 0x62, 0x0f, 0x32, 0x12, 0xda, 0x88, 0xd5, 0xfa, 0xd0, 0xef, - 0xa1, 0x26, 0x74, 0x07, 0x88, 0xd5, 0x21, 0x83, 0x22, 0x01, 0x47, 0xd1, 0xf2, 0xdc, 0x19, 0x07, - 0x1e, 0x64, 0x88, 0x4a, 0xbc, 0xb2, 0x57, 0xcc, 0x96, 0x15, 0x6d, 0xcd, 0xac, 0xc5, 0xcc, 0xda, - 0x8a, 0xa9, 0x9d, 0x24, 0x56, 0x95, 0x57, 0x6f, 0x1f, 0x71, 0xff, 0xbc, 0x7d, 0x24, 0x4d, 0xe0, - 0x68, 0xf8, 0x8d, 0xba, 0x43, 0xa4, 0x5a, 0x42, 0x74, 0x13, 0x42, 0xc5, 0x22, 0x88, 0x63, 0x14, - 0xb1, 0x45, 0x92, 0x83, 0x3d, 0x29, 0xa3, 0xf0, 0xc5, 0x7d, 0x2b, 0x37, 0x8f, 0xcf, 0x13, 0x4d, - 0x4f, 0xfc, 0x0c, 0x00, 0x3a, 0x84, 0xb4, 0xef, 0x40, 0x77, 0x40, 0xa5, 0x3d, 0x65, 0xaf, 0x78, - 0x60, 0x1d, 0x24, 0x91, 0x8a, 0x3b, 0xa0, 0xea, 0x77, 0x20, 0xdf, 0xb1, 0x6b, 0xe7, 0x90, 0x8d, - 0x43, 0xe4, 0x6d, 0x74, 0x94, 0x76, 0x01, 0x9f, 0x76, 0x81, 0xfa, 0x27, 0x0f, 0x0e, 0xed, 0x98, - 0x6f, 0x03, 0x6d, 0x81, 0x83, 0x55, 0xc9, 0x09, 0x2c, 0x5b, 0x96, 0x6f, 0xd7, 0xa1, 0x2a, 0x2d, - 0x14, 0x10, 0xb6, 0x14, 0x50, 0xad, 0x35, 0xcd, 0x3b, 0xb4, 0x5c, 0x05, 0x00, 0xfb, 0x97, 0x21, - 0x74, 0x19, 0x26, 0xbe, 0xb4, 0xa7, 0xf0, 0xc5, 0x5c, 0x59, 0xd5, 0xe6, 0xc3, 0xa1, 0x2d, 0x87, - 0x61, 0x31, 0x1c, 0x9a, 0xb9, 0xca, 0xb4, 0x36, 0x50, 0xea, 0xef, 0x19, 0x20, 0xd6, 0x88, 0x4f, - 0xc7, 0x23, 0x14, 0x6e, 0x34, 0x76, 0x0a, 0xf6, 0xe3, 0xc1, 0x48, 0x7a, 0xca, 0x95, 0xcb, 0xda, - 0xed, 0xd3, 0xa8, 0xed, 0xa2, 0x5b, 0x93, 0x00, 0x59, 0x09, 0x5e, 0x7c, 0x06, 0x0e, 0xe9, 0x4d, - 0xcd, 0x92, 0x5e, 0xb2, 0xe5, 0x2f, 0xef, 0xa2, 0xdc, 0x92, 0xf9, 0x8c, 0xb3, 0xb6, 0x59, 0xc4, - 0x4b, 0x90, 0x8f, 0xa8, 0xbb, 0xe3, 0x67, 0xa2, 0x42, 0xb6, 0xfc, 0xd5, 0x5d, 0xec, 0x69, 0x73, - 0x70, 0xc6, 0x59, 0xa9, 0x7c, 0xd5, 0x7b, 0x60, 0xdf, 0x83, 0x0c, 0xaa, 0x5d, 0x70, 0x74, 0x06, - 0x7d, 0x8f, 0xf6, 0xe1, 0x00, 0x9d, 0x23, 0x06, 0xe3, 0xa0, 0x78, 0x02, 0x1e, 0x04, 0x21, 0x89, - 0xb0, 0x87, 0x42, 0xe7, 0x12, 0x21, 0x27, 0x20, 0x64, 0xe8, 0x40, 0xcf, 0x9b, 0xcf, 0xc2, 0x81, - 0x75, 0x7f, 0x79, 0x7a, 0x8a, 0x50, 0x93, 0x90, 0x61, 0xc5, 0xf3, 0x42, 0x51, 0x02, 0x1f, 0x44, - 0x28, 0xa4, 0xb1, 0x65, 0x99, 0x24, 0x6b, 0xf9, 0xab, 0xbe, 0xcc, 0x80, 0xfc, 0xae, 0x9a, 0x9d, - 0xd2, 0x7f, 0xe6, 0xc6, 0xf3, 0xdb, 0xdc, 0x78, 0xfc, 0x0e, 0x6e, 0x74, 0x4a, 0xef, 0x83, 0x1f, - 0x7f, 0xf1, 0xe0, 0x68, 0xa7, 0xb0, 0xff, 0xf9, 0x3d, 0xfe, 0x90, 0xf2, 0x1e, 0x8f, 0xef, 0xea, - 0x7c, 0xfd, 0x26, 0x13, 0x93, 0x36, 0xd0, 0xc7, 0x7f, 0xf0, 0xe0, 0x41, 0xba, 0x97, 0xe2, 0xb7, - 0x40, 0xa9, 0x5d, 0x34, 0xec, 0xf6, 0xb9, 0x61, 0x39, 0xcd, 0x4a, 0xed, 0x47, 0xa3, 0xe5, 0xb4, - 0x9e, 0x37, 0x0d, 0xa7, 0xdd, 0xb0, 0x9b, 0x46, 0xcd, 0x3c, 0x35, 0x8d, 0xba, 0xc0, 0xc9, 0x1f, - 0x4f, 0x67, 0xca, 0x51, 0xdb, 0xa7, 0x01, 0x72, 0xf1, 0x25, 0x5e, 0x6a, 0x28, 0xea, 0x40, 0x4e, - 0x05, 0xdb, 0x4f, 0x2b, 0xf6, 0x99, 0xc0, 0xcb, 0x87, 0xd3, 0x99, 0x92, 0xdd, 0x10, 0x56, 0x3c, - 0x01, 0x9f, 0xa4, 0x02, 0x62, 0xd7, 0x84, 0x8c, 0x9c, 0x9f, 0xce, 0x14, 0xa1, 0xb3, 0xe5, 0x94, - 0xbc, 0xff, 0xcb, 0x6f, 0x05, 0xee, 0xf8, 0x25, 0x0f, 0x72, 0x37, 0x5b, 0x14, 0x9f, 0x80, 0x87, - 0x66, 0xe3, 0xd4, 0xaa, 0xd4, 0x5a, 0xe6, 0x45, 0x23, 0xad, 0xec, 0xfb, 0xd3, 0x99, 0x72, 0xb8, - 0x06, 0x19, 0xa3, 0x80, 0x4d, 0x44, 0x7d, 0x17, 0x55, 0xbf, 0x68, 0x57, 0x9f, 0x1a, 0x8e, 0x6d, - 0x7e, 0xdf, 0x10, 0x78, 0x39, 0x37, 0x9d, 0x29, 0xa0, 0x4e, 0xc6, 0xdd, 0x21, 0xb2, 0x71, 0xcf, - 0x17, 0x8f, 0x81, 0xb4, 0x0b, 0x78, 0xd6, 0x68, 0x99, 0xe7, 0x86, 0x90, 0x91, 0x3f, 0x9a, 0xce, - 0x94, 0x0f, 0xeb, 0xe4, 0x85, 0xcf, 0xf0, 0x08, 0xcd, 0x6b, 0xad, 0x36, 0x5e, 0x5d, 0x15, 0xf8, - 0xd7, 0x57, 0x05, 0xfe, 0xef, 0xab, 0x02, 0xff, 0xeb, 0x75, 0x81, 0x7b, 0x7d, 0x5d, 0xe0, 0xde, - 0x5c, 0x17, 0xb8, 0x9f, 0x9e, 0xf4, 0x30, 0xeb, 0x8f, 0xbb, 0x9a, 0x4b, 0x46, 0xfa, 0x62, 0xf1, - 0xae, 0x2d, 0x7d, 0xbc, 0x5a, 0xe1, 0xd1, 0xd7, 0xfa, 0xcf, 0xc9, 0x1e, 0x4f, 0x16, 0x6a, 0xf7, - 0x5e, 0xb2, 0x51, 0x4f, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xac, 0x81, 0x69, 0x45, 0xef, 0x07, - 0x00, 0x00, + // 839 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x4f, 0x6f, 0xe3, 0x44, + 0x14, 0xb7, 0xd3, 0x6a, 0xa1, 0x13, 0x94, 0xba, 0xde, 0xb0, 0x32, 0xde, 0x25, 0x6b, 0x2c, 0x90, + 0xa2, 0xa2, 0xb5, 0x89, 0xbb, 0x12, 0x12, 0x5c, 0xc8, 0x1f, 0x97, 0x1a, 0xb6, 0x69, 0x64, 0x27, + 0x59, 0x2d, 0x17, 0x6b, 0x62, 0x4f, 0x92, 0x51, 0x12, 0x8f, 0xe5, 0x99, 0x78, 0xc9, 0x37, 0x40, + 0x39, 0xf1, 0x05, 0x72, 0x42, 0x1c, 0xf6, 0x63, 0x70, 0xdb, 0xe3, 0x1e, 0x38, 0xc0, 0xa5, 0x42, + 0xed, 0x37, 0xe0, 0x13, 0x20, 0x3b, 0x49, 0x9b, 0x36, 0xde, 0x4a, 0x2b, 0x21, 0xc1, 0xcd, 0x7e, + 0xf3, 0x7e, 0xbf, 0x79, 0xef, 0xf7, 0x7b, 0xa3, 0x07, 0x3e, 0xc3, 0x01, 0x43, 0x91, 0x37, 0x84, + 0x38, 0x70, 0x29, 0xf2, 0xa6, 0x11, 0x66, 0x33, 0xdd, 0xf3, 0x62, 0x3d, 0xae, 0xe8, 0x2f, 0x71, + 0x84, 0xb4, 0x30, 0x22, 0x8c, 0x88, 0x72, 0x46, 0x9a, 0xe6, 0x79, 0xb1, 0x16, 0x57, 0xe4, 0x4f, + 0x3d, 0x42, 0x27, 0x84, 0xea, 0x94, 0xc1, 0x11, 0x0e, 0x06, 0x7a, 0x5c, 0xe9, 0x21, 0x06, 0x2b, + 0xeb, 0xff, 0x25, 0x83, 0x5c, 0x1c, 0x90, 0x01, 0x49, 0x3f, 0xf5, 0xe4, 0x6b, 0x15, 0x7d, 0xe4, + 0x91, 0x09, 0x62, 0xbd, 0x3e, 0xd3, 0x61, 0xcf, 0xc3, 0x7a, 0x6c, 0xe8, 0x6c, 0x16, 0x22, 0xba, + 0x3c, 0x55, 0xff, 0xe4, 0xc1, 0xa3, 0x2e, 0x1c, 0x63, 0x1f, 0x32, 0x12, 0x39, 0x88, 0xd5, 0x87, + 0x30, 0x18, 0xa0, 0x16, 0xf4, 0x46, 0x88, 0x35, 0x20, 0x83, 0x62, 0x08, 0x0e, 0xe2, 0xf5, 0xb9, + 0x3b, 0x0d, 0x7d, 0xc8, 0x10, 0x95, 0x78, 0x65, 0xa7, 0x9c, 0x37, 0x3e, 0xd1, 0xd6, 0xd4, 0x5a, + 0x42, 0xad, 0xc5, 0x86, 0x76, 0x45, 0xd5, 0x49, 0x33, 0x6b, 0xca, 0xeb, 0xf3, 0xc7, 0xdc, 0xdf, + 0xe7, 0x8f, 0xa5, 0x19, 0x9c, 0x8c, 0xbf, 0x52, 0xb7, 0x98, 0x54, 0x5b, 0x88, 0x6f, 0x42, 0xa8, + 0x58, 0x06, 0x49, 0x8c, 0x22, 0xb6, 0x4a, 0x72, 0xb1, 0x2f, 0xe5, 0x14, 0xbe, 0xbc, 0x6b, 0x17, + 0x96, 0xf1, 0x65, 0xa2, 0xe5, 0x8b, 0x1f, 0x03, 0x40, 0xc7, 0x90, 0x0e, 0x5d, 0xe8, 0x8d, 0xa8, + 0xb4, 0xa3, 0xec, 0x94, 0xf7, 0xec, 0xbd, 0x34, 0x52, 0xf5, 0x46, 0x54, 0xfd, 0x06, 0x14, 0xbb, + 0x4e, 0xfd, 0x14, 0xb2, 0x69, 0x84, 0xfc, 0x8d, 0x96, 0xb2, 0x2e, 0xe0, 0xb3, 0x2e, 0x50, 0x7f, + 0xe7, 0xc1, 0xbe, 0x93, 0xf0, 0x6d, 0xa0, 0x1d, 0xb0, 0x77, 0x55, 0x72, 0x0a, 0xcb, 0x1b, 0x0f, + 0xef, 0x10, 0xa2, 0x26, 0xad, 0x24, 0x10, 0x6e, 0x49, 0xa0, 0xda, 0xd7, 0x3c, 0xef, 0xd0, 0x73, + 0x0d, 0x00, 0x1c, 0xf4, 0x23, 0xe8, 0x31, 0x4c, 0x02, 0x69, 0x47, 0xe1, 0xcb, 0x05, 0x43, 0xd5, + 0x96, 0xf3, 0xa1, 0xad, 0xe7, 0x61, 0x35, 0x1f, 0x9a, 0x75, 0x95, 0x69, 0x6f, 0xa0, 0xd4, 0x5f, + 0x73, 0x40, 0xac, 0x93, 0x80, 0x4e, 0x27, 0x28, 0xda, 0xe8, 0xec, 0x18, 0xec, 0x26, 0xa3, 0x91, + 0x36, 0x55, 0x30, 0x0c, 0xed, 0xed, 0x03, 0xa9, 0x6d, 0xa3, 0xdb, 0xb3, 0x10, 0xd9, 0x29, 0x5e, + 0x7c, 0x0e, 0xf6, 0xe9, 0x4d, 0xd1, 0xd2, 0x5e, 0xf2, 0xc6, 0xe7, 0x77, 0x51, 0xde, 0xd2, 0xf9, + 0x84, 0xb3, 0x6f, 0xb3, 0x88, 0x7d, 0x50, 0x8c, 0xa9, 0xb7, 0x65, 0x68, 0xaa, 0x42, 0xde, 0xf8, + 0xe2, 0x2e, 0xf6, 0xac, 0x41, 0x38, 0xe1, 0xec, 0x4c, 0xbe, 0xda, 0x3d, 0xb0, 0xeb, 0x43, 0x06, + 0xd5, 0x1e, 0x38, 0x38, 0x81, 0x81, 0x4f, 0x87, 0x70, 0x84, 0x4e, 0x11, 0x83, 0x49, 0x50, 0x3c, + 0x02, 0x0f, 0xc2, 0x88, 0xc4, 0xd8, 0x47, 0x91, 0xdb, 0x47, 0xc8, 0x0d, 0x09, 0x19, 0xbb, 0xd0, + 0xf7, 0x97, 0xc3, 0xb0, 0x67, 0xdf, 0x5f, 0x9f, 0x1e, 0x23, 0xd4, 0x22, 0x64, 0x5c, 0xf5, 0xfd, + 0x48, 0x94, 0xc0, 0x7b, 0x31, 0x8a, 0x68, 0x62, 0x59, 0x2e, 0xcd, 0x5a, 0xff, 0xaa, 0xaf, 0x72, + 0xa0, 0xb8, 0xad, 0x66, 0xb7, 0xf2, 0xaf, 0xb9, 0xf1, 0xe2, 0x6d, 0x6e, 0x3c, 0x79, 0x07, 0x37, + 0xba, 0x95, 0xff, 0x83, 0x1f, 0xe7, 0x3c, 0x38, 0xd8, 0x2a, 0xec, 0xbf, 0x7e, 0x90, 0xdf, 0x65, + 0x3c, 0xc8, 0xc3, 0xbb, 0x5a, 0xbf, 0x7e, 0x94, 0xa9, 0x4b, 0x1b, 0xe8, 0xc3, 0xdf, 0x78, 0xf0, + 0x20, 0xdb, 0x4c, 0xf1, 0x6b, 0xa0, 0xd4, 0xcf, 0x9a, 0x4e, 0xe7, 0xd4, 0xb4, 0xdd, 0x56, 0xb5, + 0xfe, 0xbd, 0xd9, 0x76, 0xdb, 0x2f, 0x5a, 0xa6, 0xdb, 0x69, 0x3a, 0x2d, 0xb3, 0x6e, 0x1d, 0x5b, + 0x66, 0x43, 0xe0, 0xe4, 0x0f, 0xe7, 0x0b, 0xe5, 0xa0, 0x13, 0xd0, 0x10, 0x79, 0xb8, 0x8f, 0xd7, + 0x22, 0x8a, 0x3a, 0x90, 0x33, 0xc1, 0xce, 0xb3, 0xaa, 0x73, 0x22, 0xf0, 0xf2, 0xfe, 0x7c, 0xa1, + 0xe4, 0x37, 0x94, 0x15, 0x8f, 0xc0, 0x47, 0x99, 0x80, 0xc4, 0x36, 0x21, 0x27, 0x17, 0xe7, 0x0b, + 0x45, 0xe8, 0xde, 0xb2, 0x4a, 0xde, 0xfd, 0xe9, 0x97, 0x12, 0x77, 0xf8, 0x8a, 0x07, 0x85, 0x9b, + 0x2d, 0x8a, 0x4f, 0xc1, 0x43, 0xab, 0x79, 0x6c, 0x57, 0xeb, 0x6d, 0xeb, 0xac, 0x99, 0x55, 0xf6, + 0xfd, 0xf9, 0x42, 0xd9, 0xbf, 0x06, 0x99, 0x93, 0x90, 0xcd, 0x44, 0x7d, 0x1b, 0xd5, 0x38, 0xeb, + 0xd4, 0x9e, 0x99, 0xae, 0x63, 0x7d, 0xdb, 0x14, 0x78, 0xb9, 0x30, 0x5f, 0x28, 0xa0, 0x41, 0xa6, + 0xbd, 0x31, 0x72, 0xf0, 0x20, 0x10, 0x0f, 0x81, 0xb4, 0x0d, 0x78, 0xde, 0x6c, 0x5b, 0xa7, 0xa6, + 0x90, 0x93, 0x3f, 0x98, 0x2f, 0x94, 0xf7, 0x1b, 0xe4, 0x65, 0xc0, 0xf0, 0x04, 0x2d, 0x6b, 0xad, + 0x35, 0x5f, 0x5f, 0x94, 0xf8, 0x37, 0x17, 0x25, 0xfe, 0xaf, 0x8b, 0x12, 0xff, 0xf3, 0x65, 0x89, + 0x7b, 0x73, 0x59, 0xe2, 0xfe, 0xb8, 0x2c, 0x71, 0x3f, 0x3c, 0x1d, 0x60, 0x36, 0x9c, 0xf6, 0x92, + 0x39, 0xd2, 0x57, 0xcb, 0xf7, 0xda, 0xd2, 0x27, 0x57, 0x6b, 0x3c, 0xfe, 0x52, 0xff, 0x31, 0xdd, + 0xe5, 0xe9, 0x4e, 0xed, 0xdd, 0x4b, 0x97, 0xea, 0xd1, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x56, + 0x8f, 0x40, 0x89, 0xf3, 0x07, 0x00, 0x00, } func (m *ValidatorSetChangePacketData) Marshal() (dAtA []byte, err error) { @@ -1249,7 +1251,7 @@ func (m *ValidatorSetChangePacketData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ValidatorUpdates = append(m.ValidatorUpdates, types.ValidatorUpdate{}) + m.ValidatorUpdates = append(m.ValidatorUpdates, v2.ValidatorUpdate{}) if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -1490,7 +1492,7 @@ func (m *SlashPacketData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Infraction |= types1.Infraction(b&0x7F) << shift + m.Infraction |= types.Infraction(b&0x7F) << shift if b < 0x80 { break } diff --git a/x/ccv/types/wire_test.go b/x/ccv/types/wire_test.go index 2c0bc50fc9..308100bf1a 100644 --- a/x/ccv/types/wire_test.go +++ b/x/ccv/types/wire_test.go @@ -4,13 +4,14 @@ import ( "strings" "testing" + "github.com/cometbft/cometbft/v2/crypto/encoding" "github.com/stretchr/testify/require" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - abci "github.com/cometbft/cometbft/abci/types" + abci "github.com/cometbft/cometbft/v2/abci/types" "github.com/cosmos/interchain-security/v7/testutil/crypto" "github.com/cosmos/interchain-security/v7/x/ccv/types" @@ -19,6 +20,8 @@ import ( func TestPacketDataValidateBasic(t *testing.T) { pk, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) require.NoError(t, err) + pk1, err := encoding.PubKeyFromProto(pk) + require.NoError(t, err) cases := []struct { name string @@ -46,8 +49,9 @@ func TestPacketDataValidateBasic(t *testing.T) { types.NewValidatorSetChangePacketData( []abci.ValidatorUpdate{ { - PubKey: pk, - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, }, 3, @@ -67,20 +71,27 @@ func TestPacketDataValidateBasic(t *testing.T) { } func TestMarshalPacketData(t *testing.T) { - pk1, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + publicKey1, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + require.NoError(t, err) + pk1, err := encoding.PubKeyFromProto(publicKey1) + require.NoError(t, err) + + publicKey2, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) require.NoError(t, err) - pk2, err := cryptocodec.ToCmtProtoPublicKey(ed25519.GenPrivKey().PubKey()) + pk2, err := encoding.PubKeyFromProto(publicKey2) require.NoError(t, err) vpd := types.NewValidatorSetChangePacketData( []abci.ValidatorUpdate{ { - PubKey: pk1, - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, { - PubKey: pk2, - Power: 20, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 20, }, }, 1, @@ -101,16 +112,22 @@ func TestMarshalPacketData(t *testing.T) { func TestVSCPacketDataWireBytes(t *testing.T) { cId1 := crypto.NewCryptoIdentityFromIntSeed(4732894) cId2 := crypto.NewCryptoIdentityFromIntSeed(4732895) + pk1, err := encoding.PubKeyFromProto(cId1.TMProtoCryptoPublicKey()) + require.NoError(t, err) + pk2, err := encoding.PubKeyFromProto(cId2.TMProtoCryptoPublicKey()) + require.NoError(t, err) pd := types.NewValidatorSetChangePacketData( []abci.ValidatorUpdate{ { - PubKey: cId1.TMProtoCryptoPublicKey(), - Power: 30, + PubKeyBytes: pk1.Bytes(), + PubKeyType: pk1.Type(), + Power: 30, }, { - PubKey: cId2.TMProtoCryptoPublicKey(), - Power: 20, + PubKeyBytes: pk2.Bytes(), + PubKeyType: pk2.Type(), + Power: 20, }, }, 73, @@ -121,24 +138,7 @@ func TestVSCPacketDataWireBytes(t *testing.T) { str := string(jsonBz) // Expected string formatted for human readability - expectedStr := `{ - "validator_updates": [ - { - "pub_key": { - "ed25519": "SMxP2pXAuxQC7FmBn4dh4Kt5eYdQFWC/wN7oWobZKds=" - }, - "power": "30" - }, - { - "pub_key": { - "ed25519": "J/nGy0vCXhgVbr8S71B4ZgHi4fsMqtDxDlERZ+gG238=" - }, - "power": "20" - } - ], - "valset_update_id": "73", - "slash_acks": ["slash", "acks", "example"] - }` + expectedStr := "{\"validator_updates\":[{\"power\":\"30\",\"pub_key_bytes\":\"SMxP2pXAuxQC7FmBn4dh4Kt5eYdQFWC/wN7oWobZKds=\",\"pub_key_type\":\"ed25519\"},{\"power\":\"20\",\"pub_key_bytes\":\"J/nGy0vCXhgVbr8S71B4ZgHi4fsMqtDxDlERZ+gG238=\",\"pub_key_type\":\"ed25519\"}],\"valset_update_id\":\"73\",\"slash_acks\":[\"slash\",\"acks\",\"example\"]}" // Remove newlines, tabs, and spaces for comparison expectedStr = strings.ReplaceAll(expectedStr, "\n", "")