From d535e7dd7b3fc388af8af9ccb34c7f161e316cc6 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Tue, 17 Oct 2023 10:29:48 +0200 Subject: [PATCH 01/17] Moved to legacy --- x/ccv/provider/types/{proposal.go => legacy_proposal.go} | 0 .../provider/types/{proposal_test.go => legacy_proposal_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename x/ccv/provider/types/{proposal.go => legacy_proposal.go} (100%) rename x/ccv/provider/types/{proposal_test.go => legacy_proposal_test.go} (100%) diff --git a/x/ccv/provider/types/proposal.go b/x/ccv/provider/types/legacy_proposal.go similarity index 100% rename from x/ccv/provider/types/proposal.go rename to x/ccv/provider/types/legacy_proposal.go diff --git a/x/ccv/provider/types/proposal_test.go b/x/ccv/provider/types/legacy_proposal_test.go similarity index 100% rename from x/ccv/provider/types/proposal_test.go rename to x/ccv/provider/types/legacy_proposal_test.go From 75ac111226692b505ad1c2c23ebf2e524ed0b844 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Tue, 24 Oct 2023 14:24:07 -0400 Subject: [PATCH 02/17] Moved proposal to legacy --- .../client/{proposal_handler.go => legacy_proposal_handler.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename x/ccv/provider/client/{proposal_handler.go => legacy_proposal_handler.go} (100%) diff --git a/x/ccv/provider/client/proposal_handler.go b/x/ccv/provider/client/legacy_proposal_handler.go similarity index 100% rename from x/ccv/provider/client/proposal_handler.go rename to x/ccv/provider/client/legacy_proposal_handler.go From b2c5682caaf0955638a317072847d8986b0710ec Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Tue, 24 Oct 2023 14:26:34 -0400 Subject: [PATCH 03/17] Added ConsumerAddition message --- .../ccv/provider/v1/provider.proto | 8 +- .../ccv/provider/v1/tx.proto | 77 +- x/ccv/provider/keeper/msg_server.go | 11 + x/ccv/provider/types/codec.go | 1 + x/ccv/provider/types/errors.go | 1 + x/ccv/provider/types/msg.go | 83 +- x/ccv/provider/types/provider.pb.go | 215 ++-- x/ccv/provider/types/tx.pb.go | 1041 ++++++++++++++++- 8 files changed, 1298 insertions(+), 139 deletions(-) diff --git a/proto/interchain_security/ccv/provider/v1/provider.proto b/proto/interchain_security/ccv/provider/v1/provider.proto index c3efb11cac..779f4cd9b5 100644 --- a/proto/interchain_security/ccv/provider/v1/provider.proto +++ b/proto/interchain_security/ccv/provider/v1/provider.proto @@ -18,15 +18,17 @@ import "cosmos_proto/cosmos.proto"; // // 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. -// +// These schemas can change with proper consideration of compatibility or migration. +// // ConsumerAdditionProposal is a governance proposal on the provider chain to // spawn a new consumer chain. If it passes, then all validators on the provider // chain are expected to validate the consumer chain at spawn time or get // slashed. It is recommended that spawn time occurs after the proposal end // time. +// Deprecated: Use MsgConsumerAddition instead message ConsumerAdditionProposal { + option deprecated = true; option (gogoproto.goproto_getters) = false; option (gogoproto.goproto_stringer) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -182,7 +184,7 @@ message Params { } // SlashAcks contains cons addresses of consumer chain validators -// successfully slashed on the provider chain. +// successfully slashed on the provider chain. message SlashAcks { repeated string addresses = 1; } // ConsumerAdditionProposals holds pending governance proposals on the provider diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index e75cab6308..528c3783ce 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -4,10 +4,13 @@ package interchain_security.ccv.provider.v1; option go_package = "github.com/cosmos/interchain-security/v3/x/ccv/provider/types"; import "google/api/annotations.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/any.proto"; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/msg/v1/msg.proto"; -import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; // Msg defines the Msg service. service Msg { @@ -15,6 +18,9 @@ service Msg { rpc AssignConsumerKey(MsgAssignConsumerKey) returns (MsgAssignConsumerKeyResponse); + + rpc ConsumerAddition(MsgConsumerAddition) + returns (MsgConsumerAdditionResponse); } message MsgAssignConsumerKey { @@ -36,3 +42,72 @@ message MsgAssignConsumerKey { } message MsgAssignConsumerKeyResponse {} + + +// MsgConsumerAddition defines the message used to spawn a new consumer chain using a v1 governance proposal. +// If it passes, then all validators on the provider chain are expected to validate +// the consumer chain at spawn time or get slashed. +// It is recommended that spawn time occurs after the proposal end time. +// +// Note: this replaces ConsumerAdditionProposal which is deprecated and will be removed soon +message MsgConsumerAddition { + option (cosmos.msg.v1.signer) = "signer"; + + // 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. + // 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 = 2 [ (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. + bytes genesis_hash = 3; + // The hash of the consumer chain binary that should be run by validators on + // chain initialization. It is used for off-chain confirmation of binary + // validity by validators and other parties. + bytes binary_hash = 4; + // 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 = 5 + [ (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 = 6 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + // Sent CCV related IBC packets will timeout after this duration + google.protobuf.Duration ccv_timeout_period = 7 + [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; + // Sent transfer related IBC packets will timeout after this duration + google.protobuf.Duration transfer_timeout_period = 8 + [ (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 = 9; + // BlocksPerDistributionTransmission is the number of blocks between + // ibc-token-transfers from the consumer chain to the provider chain. On + // sending transmission event, `consumer_redistribution_fraction` of the + // accumulated tokens are sent to the consumer redistribution address. + int64 blocks_per_distribution_transmission = 10; + // 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 = 11; + // The ID of a token transfer channel used for the Reward Distribution + // sub-protocol. If DistributionTransmissionChannel == "", a new transfer + // channel is created on top of the same connection as the CCV channel. + // Note that transfer_channel_id is the ID of the channel end on the consumer + // chain. it is most relevant for chains performing a sovereign to consumer + // changeover in order to maintan the existing ibc transfer channel + string distribution_transmission_channel = 12; + + // signer address + string signer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"];; +} + +// MsgConsumerAdditionResponse defines the Msg/MsgIBCSoftwareUpgrade response type +message MsgConsumerAdditionResponse {} \ No newline at end of file diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index b68eb7f838..c265b536aa 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -110,3 +110,14 @@ func (k msgServer) AssignConsumerKey(goCtx context.Context, msg *types.MsgAssign return &types.MsgAssignConsumerKeyResponse{}, nil } + +// ConsumerAddition defines a rpc handler method for MsgConsumerAddition +func (k msgServer) ConsumerAddition(goCtx context.Context, msg *types.MsgConsumerAddition) (*types.MsgConsumerAdditionResponse, error) { + if k.GetAuthority() != msg.Signer { + return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer) + } + + // TODO: Call keeper implementation ! + + return &types.MsgConsumerAdditionResponse{}, nil +} diff --git a/x/ccv/provider/types/codec.go b/x/ccv/provider/types/codec.go index a067dc4cb7..2127ae1a56 100644 --- a/x/ccv/provider/types/codec.go +++ b/x/ccv/provider/types/codec.go @@ -26,6 +26,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { registry.RegisterImplementations( (*sdk.Msg)(nil), &MsgAssignConsumerKey{}, + &MsgConsumerAddition{}, ) registry.RegisterImplementations( (*govv1beta1.Content)(nil), diff --git a/x/ccv/provider/types/errors.go b/x/ccv/provider/types/errors.go index 5f29e78e69..e9b5f9a0cf 100644 --- a/x/ccv/provider/types/errors.go +++ b/x/ccv/provider/types/errors.go @@ -23,4 +23,5 @@ var ( ErrInvalidDepositorAddress = errorsmod.Register(ModuleName, 15, "invalid depositor address") ErrNoUnbondingTime = errorsmod.Register(ModuleName, 16, "provider unbonding time not found") ErrInvalidAddress = errorsmod.Register(ModuleName, 17, "invalid address") + ErrUnauthorized = errorsmod.Register(ModuleName, 18, "unauthorized") ) diff --git a/x/ccv/provider/types/msg.go b/x/ccv/provider/types/msg.go index 57eaf84133..365dc5df63 100644 --- a/x/ccv/provider/types/msg.go +++ b/x/ccv/provider/types/msg.go @@ -3,8 +3,10 @@ package types import ( "encoding/json" "strings" + "time" sdk "github.com/cosmos/cosmos-sdk/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" ) // provider message types @@ -12,7 +14,13 @@ const ( TypeMsgAssignConsumerKey = "assign_consumer_key" ) -var _ sdk.Msg = &MsgAssignConsumerKey{} +var ( + _ sdk.Msg = &MsgAssignConsumerKey{} + _ sdk.Msg = &MsgConsumerAddition{} + + _ sdk.HasValidateBasic = &MsgAssignConsumerKey{} + _ sdk.HasValidateBasic = &MsgConsumerAddition{} +) // NewMsgAssignConsumerKey creates a new MsgAssignConsumerKey instance. // Delegator address and validator address are the same. @@ -94,3 +102,76 @@ func ParseConsumerKeyFromJson(jsonStr string) (pkType, key string, err error) { } return pubKey.Type, pubKey.Key, nil } + +// NewMsgConsumerAddition creates a new MsgConsumerAddition instance. +// Delegator address and validator address are the same. +func NewMsgConsumerAddition(signer, chainID string, + initialHeight clienttypes.Height, genesisHash, binaryHash []byte, + spawnTime time.Time, + consumerRedistributionFraction string, + blocksPerDistributionTransmission int64, + distributionTransmissionChannel string, + historicalEntries int64, + ccvTimeoutPeriod time.Duration, + transferTimeoutPeriod time.Duration, + unbondingPeriod time.Duration) *MsgConsumerAddition { + return &MsgConsumerAddition{ + ChainId: chainID, + InitialHeight: initialHeight, + GenesisHash: genesisHash, + BinaryHash: binaryHash, + SpawnTime: spawnTime, + ConsumerRedistributionFraction: consumerRedistributionFraction, + BlocksPerDistributionTransmission: blocksPerDistributionTransmission, + DistributionTransmissionChannel: distributionTransmissionChannel, + HistoricalEntries: historicalEntries, + CcvTimeoutPeriod: ccvTimeoutPeriod, + TransferTimeoutPeriod: transferTimeoutPeriod, + UnbondingPeriod: unbondingPeriod, + } +} + +// TODO: remove if not needed +/* // Route implements the sdk.Msg interface. +func (msg MsgConsumerAddition) Route() string { return RouterKey } + +// Type implements the sdk.Msg interface. +func (msg MsgConsumerAddition) Type() string { + return TypeMsgConsumerAdditionKey +} +*/ + +// GetSigners implements the sdk.Msg interface. It returns the address(es) that +// must sign over msg.GetSignBytes(). +// If the validator address is not same as delegator's, then the validator must +// sign the msg as well. +func (msg *MsgConsumerAddition) GetSigners() []sdk.AccAddress { + valAddr, err := sdk.ValAddressFromBech32(msg.Signer) + if err != nil { + // same behavior as in cosmos-sdk + panic(err) + } + return []sdk.AccAddress{valAddr.Bytes()} +} + +// GetSignBytes returns the message bytes to sign over. +func (msg *MsgConsumerAddition) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} + +// ValidateBasic implements the sdk.Msg interface. +func (msg *MsgConsumerAddition) ValidateBasic() error { + if strings.TrimSpace(msg.ChainId) == "" { + return ErrBlankConsumerChainID + } + //TODO + return nil +} + +// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces +/* func (msg *MsgConsumerAddition) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { + //return unpacker.UnpackAny(msg., new(exported.ClientState)) + return nil +} +*/ diff --git a/x/ccv/provider/types/provider.pb.go b/x/ccv/provider/types/provider.pb.go index b2884a2a42..e4392171a1 100644 --- a/x/ccv/provider/types/provider.pb.go +++ b/x/ccv/provider/types/provider.pb.go @@ -40,6 +40,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // chain are expected to validate the consumer chain at spawn time or get // slashed. It is recommended that spawn time occurs after the proposal end // time. +// Deprecated: Use MsgConsumerAddition instead +// +// Deprecated: Do not use. type ConsumerAdditionProposal struct { // the title of the proposal Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -1353,115 +1356,115 @@ func init() { } var fileDescriptor_f22ec409a72b7b72 = []byte{ - // 1715 bytes of a gzipped FileDescriptorProto + // 1717 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x6f, 0x1b, 0xc7, - 0x15, 0xd7, 0x8a, 0x94, 0x2c, 0x3e, 0xea, 0xcb, 0x2b, 0x3b, 0xa6, 0x54, 0x95, 0x92, 0x37, 0xad, - 0xab, 0x22, 0xf0, 0x32, 0x92, 0x51, 0x20, 0x30, 0x1a, 0x04, 0x12, 0x95, 0xc4, 0x8a, 0x9b, 0x58, + 0x15, 0xd7, 0x8a, 0x94, 0x2c, 0x3e, 0xea, 0xcb, 0x2b, 0x3b, 0xa6, 0x54, 0x95, 0x92, 0x37, 0x6d, + 0xaa, 0x22, 0xf0, 0x32, 0x92, 0x51, 0x20, 0x30, 0x1a, 0x04, 0x12, 0x95, 0xc4, 0x8a, 0x9b, 0x58, 0x59, 0xa9, 0x32, 0xda, 0x1e, 0x16, 0xc3, 0xd9, 0x31, 0x39, 0xd0, 0xee, 0xce, 0x66, 0x66, 0xb8, 0x36, 0x2f, 0x3d, 0xf7, 0x98, 0xde, 0x82, 0x9e, 0xd2, 0xfe, 0x0d, 0xfd, 0x0b, 0x7a, 0x0a, 0x7a, - 0x69, 0x8e, 0x3d, 0xa5, 0x85, 0x7d, 0xe8, 0xa1, 0x7f, 0x43, 0x81, 0x62, 0x66, 0xf6, 0x8b, 0xd4, - 0x87, 0x69, 0x04, 0xb9, 0xed, 0xbc, 0x79, 0xef, 0xf7, 0xbe, 0xdf, 0x1b, 0x12, 0xf6, 0x68, 0x2c, - 0x09, 0xc7, 0x03, 0x44, 0x63, 0x5f, 0x10, 0x3c, 0xe4, 0x54, 0x8e, 0x3a, 0x18, 0xa7, 0x9d, 0x84, - 0xb3, 0x94, 0x06, 0x84, 0x77, 0xd2, 0xdd, 0xe2, 0xdb, 0x4d, 0x38, 0x93, 0xcc, 0x7e, 0xfb, 0x12, - 0x19, 0x17, 0xe3, 0xd4, 0x2d, 0xf8, 0xd2, 0xdd, 0x8d, 0x77, 0xaf, 0x02, 0x4e, 0x77, 0x3b, 0x62, - 0x80, 0x38, 0x09, 0x7c, 0xcc, 0x62, 0x31, 0x8c, 0x72, 0xd8, 0x8d, 0x9f, 0x5e, 0x23, 0xf1, 0x9c, - 0x72, 0x92, 0xb1, 0xdd, 0xea, 0xb3, 0x3e, 0xd3, 0x9f, 0x1d, 0xf5, 0x95, 0x51, 0xb7, 0xfa, 0x8c, - 0xf5, 0x43, 0xd2, 0xd1, 0xa7, 0xde, 0xf0, 0x59, 0x47, 0xd2, 0x88, 0x08, 0x89, 0xa2, 0x24, 0x63, - 0x68, 0x4f, 0x32, 0x04, 0x43, 0x8e, 0x24, 0x65, 0x71, 0x0e, 0x40, 0x7b, 0xb8, 0x83, 0x19, 0x27, - 0x1d, 0x1c, 0x52, 0x12, 0x4b, 0xa5, 0xd5, 0x7c, 0x65, 0x0c, 0x1d, 0xc5, 0x10, 0xd2, 0xfe, 0x40, - 0x1a, 0xb2, 0xe8, 0x48, 0x12, 0x07, 0x84, 0x47, 0xd4, 0x30, 0x97, 0xa7, 0x4c, 0x60, 0xb3, 0x72, - 0x8f, 0xf9, 0x28, 0x91, 0xac, 0x73, 0x4e, 0x46, 0x22, 0xbb, 0xbd, 0x87, 0x99, 0x88, 0x98, 0xe8, - 0x10, 0x15, 0xb1, 0x18, 0x93, 0x4e, 0xba, 0xdb, 0x23, 0x12, 0xed, 0x16, 0x84, 0xdc, 0xee, 0x8c, - 0xaf, 0x87, 0x44, 0xc9, 0x83, 0x19, 0xcd, 0xed, 0x5e, 0x37, 0xf7, 0xbe, 0x89, 0x88, 0x39, 0x98, - 0x2b, 0xe7, 0x7f, 0xf3, 0xd0, 0xea, 0x66, 0x31, 0xde, 0x0f, 0x02, 0xaa, 0xbc, 0x3d, 0xe6, 0x2c, - 0x61, 0x02, 0x85, 0xf6, 0x2d, 0x98, 0x93, 0x54, 0x86, 0xa4, 0x65, 0x6d, 0x5b, 0x3b, 0x0d, 0xcf, - 0x1c, 0xec, 0x6d, 0x68, 0x06, 0x44, 0x60, 0x4e, 0x13, 0xc5, 0xdc, 0x9a, 0xd5, 0x77, 0x55, 0x92, - 0xbd, 0x0e, 0x0b, 0x26, 0x45, 0x34, 0x68, 0xd5, 0xf4, 0xf5, 0x0d, 0x7d, 0x3e, 0x0a, 0xec, 0x8f, - 0x61, 0x99, 0xc6, 0x54, 0x52, 0x14, 0xfa, 0x03, 0xa2, 0x02, 0xd5, 0xaa, 0x6f, 0x5b, 0x3b, 0xcd, - 0xbd, 0x0d, 0x97, 0xf6, 0xb0, 0xab, 0x62, 0xeb, 0x66, 0x11, 0x4d, 0x77, 0xdd, 0x47, 0x9a, 0xe3, - 0xa0, 0xfe, 0xcd, 0x77, 0x5b, 0x33, 0xde, 0x52, 0x26, 0x67, 0x88, 0xf6, 0x5d, 0x58, 0xec, 0x93, - 0x98, 0x08, 0x2a, 0xfc, 0x01, 0x12, 0x83, 0xd6, 0xdc, 0xb6, 0xb5, 0xb3, 0xe8, 0x35, 0x33, 0xda, - 0x23, 0x24, 0x06, 0xf6, 0x16, 0x34, 0x7b, 0x34, 0x46, 0x7c, 0x64, 0x38, 0xe6, 0x35, 0x07, 0x18, - 0x92, 0x66, 0xe8, 0x02, 0x88, 0x04, 0x3d, 0x8f, 0x7d, 0x55, 0x08, 0xad, 0x1b, 0x99, 0x21, 0xa6, - 0x08, 0xdc, 0xbc, 0x08, 0xdc, 0xd3, 0xbc, 0x4a, 0x0e, 0x16, 0x94, 0x21, 0x5f, 0xfe, 0x6b, 0xcb, - 0xf2, 0x1a, 0x5a, 0x4e, 0xdd, 0xd8, 0x9f, 0xc1, 0xea, 0x30, 0xee, 0xb1, 0x38, 0xa0, 0x71, 0xdf, - 0x4f, 0x08, 0xa7, 0x2c, 0x68, 0x2d, 0x68, 0xa8, 0xf5, 0x0b, 0x50, 0x87, 0x59, 0x3d, 0x19, 0xa4, - 0xaf, 0x14, 0xd2, 0x4a, 0x21, 0x7c, 0xac, 0x65, 0xed, 0xcf, 0xc1, 0xc6, 0x38, 0xd5, 0x26, 0xb1, - 0xa1, 0xcc, 0x11, 0x1b, 0xd3, 0x23, 0xae, 0x62, 0x9c, 0x9e, 0x1a, 0xe9, 0x0c, 0xf2, 0x77, 0x70, - 0x47, 0x72, 0x14, 0x8b, 0x67, 0x84, 0x4f, 0xe2, 0xc2, 0xf4, 0xb8, 0xb7, 0x73, 0x8c, 0x71, 0xf0, - 0x47, 0xb0, 0x9d, 0x37, 0xa9, 0xcf, 0x49, 0x40, 0x85, 0xe4, 0xb4, 0x37, 0x54, 0xb2, 0xfe, 0x33, - 0x8e, 0xb0, 0xae, 0x91, 0xa6, 0x2e, 0x82, 0x76, 0xce, 0xe7, 0x8d, 0xb1, 0x7d, 0x94, 0x71, 0xd9, - 0x4f, 0xe0, 0x27, 0xbd, 0x90, 0xe1, 0x73, 0xa1, 0x8c, 0xf3, 0xc7, 0x90, 0xb4, 0xea, 0x88, 0x0a, - 0xa1, 0xd0, 0x16, 0xb7, 0xad, 0x9d, 0x9a, 0x77, 0xd7, 0xf0, 0x1e, 0x13, 0x7e, 0x58, 0xe1, 0x3c, - 0xad, 0x30, 0xda, 0xf7, 0xc1, 0x1e, 0x50, 0x21, 0x19, 0xa7, 0x18, 0x85, 0x3e, 0x89, 0x25, 0xa7, - 0x44, 0xb4, 0x96, 0xb4, 0xf8, 0xcd, 0xf2, 0xe6, 0x43, 0x73, 0x61, 0x7f, 0x02, 0x77, 0xaf, 0x54, - 0xea, 0xe3, 0x01, 0x8a, 0x63, 0x12, 0xb6, 0x96, 0xb5, 0x2b, 0x5b, 0xc1, 0x15, 0x3a, 0xbb, 0x86, - 0xed, 0xe1, 0xbd, 0x3f, 0x7c, 0xbd, 0x35, 0xf3, 0xd5, 0xd7, 0x5b, 0x33, 0x7f, 0xff, 0xeb, 0xfd, - 0x8d, 0xac, 0xe3, 0xfa, 0x2c, 0x75, 0xb3, 0xee, 0x74, 0xbb, 0x2c, 0x96, 0x24, 0x96, 0xce, 0x3f, - 0x2c, 0xb8, 0xd3, 0x2d, 0xc2, 0x12, 0xb1, 0x14, 0x85, 0x3f, 0x64, 0xfb, 0xed, 0x43, 0x43, 0x48, - 0x96, 0x98, 0x82, 0xaf, 0xbf, 0x41, 0xc1, 0x2f, 0x28, 0x31, 0x75, 0xf1, 0xb0, 0xfd, 0x1a, 0x8f, - 0xfe, 0x66, 0xc1, 0x86, 0x8a, 0x42, 0x9f, 0x78, 0xe4, 0x39, 0xe2, 0xc1, 0x21, 0x89, 0x59, 0x24, - 0xbe, 0xb7, 0x53, 0x0e, 0x2c, 0x05, 0x1a, 0xc9, 0x97, 0xcc, 0x47, 0x81, 0xf2, 0xac, 0x66, 0x78, - 0x14, 0xf1, 0x94, 0xed, 0x07, 0x81, 0xbd, 0x03, 0xab, 0x25, 0x0f, 0x57, 0xd1, 0x54, 0x4e, 0x2a, - 0xb6, 0xe5, 0x9c, 0x4d, 0xc7, 0xf8, 0xf5, 0x4e, 0xfc, 0xd7, 0x82, 0xd5, 0x8f, 0x43, 0xd6, 0x43, - 0xe1, 0x49, 0x88, 0xc4, 0x40, 0x55, 0xc8, 0x48, 0x05, 0x8f, 0x93, 0xac, 0x35, 0xb5, 0xf9, 0x53, - 0x07, 0x4f, 0x89, 0xe9, 0x61, 0xf1, 0x01, 0xdc, 0x2c, 0x9a, 0xa5, 0xc8, 0x91, 0xf6, 0xf6, 0x60, - 0xed, 0xe5, 0x77, 0x5b, 0x2b, 0x79, 0x29, 0x74, 0x75, 0xbe, 0x0e, 0xbd, 0x15, 0x3c, 0x46, 0x08, - 0xec, 0x36, 0x34, 0x69, 0x0f, 0xfb, 0x82, 0x7c, 0xe1, 0xc7, 0xc3, 0x48, 0xa7, 0xb7, 0xee, 0x35, - 0x68, 0x0f, 0x9f, 0x90, 0x2f, 0x3e, 0x1b, 0x46, 0xf6, 0x03, 0x78, 0x2b, 0xdf, 0xb0, 0x7e, 0x8a, - 0x42, 0xbd, 0x3f, 0x55, 0xb8, 0xb8, 0xce, 0xf6, 0xa2, 0xb7, 0x96, 0xdf, 0x9e, 0xa1, 0x50, 0x29, - 0xdb, 0x0f, 0x02, 0xee, 0xfc, 0x67, 0x0e, 0xe6, 0x8f, 0x11, 0x47, 0x91, 0xb0, 0x4f, 0x61, 0x45, - 0x92, 0x28, 0x09, 0x91, 0x24, 0xbe, 0x19, 0xc4, 0x99, 0xa7, 0xef, 0xe8, 0x01, 0x5d, 0xdd, 0x6d, - 0x6e, 0x65, 0x9b, 0xa5, 0xbb, 0x6e, 0x57, 0x53, 0x4f, 0x24, 0x92, 0xc4, 0x5b, 0xce, 0x31, 0x0c, - 0xd1, 0x7e, 0x0f, 0x5a, 0x92, 0x0f, 0x85, 0x2c, 0x47, 0x64, 0x39, 0x1b, 0x4c, 0xae, 0xdf, 0xca, - 0xef, 0xcd, 0x54, 0x29, 0x66, 0xc2, 0xe5, 0xd3, 0xb0, 0xf6, 0x7d, 0xa6, 0xe1, 0x09, 0xac, 0xa9, - 0x55, 0x32, 0x89, 0x59, 0x9f, 0x1e, 0xf3, 0xa6, 0x92, 0x1f, 0x07, 0xfd, 0x1c, 0xec, 0x54, 0xe0, - 0x49, 0xcc, 0xb9, 0x37, 0xb0, 0x33, 0x15, 0x78, 0x1c, 0x32, 0x80, 0x4d, 0xa1, 0x8a, 0xcf, 0x8f, - 0x88, 0xd4, 0xb3, 0x35, 0x09, 0x49, 0x4c, 0xc5, 0x20, 0x07, 0x9f, 0x9f, 0x1e, 0x7c, 0x5d, 0x03, - 0x7d, 0xaa, 0x70, 0xbc, 0x1c, 0x26, 0xd3, 0xd2, 0x85, 0xf6, 0xe5, 0x5a, 0x8a, 0x04, 0xdd, 0xd0, - 0x09, 0xfa, 0xd1, 0x25, 0x10, 0x45, 0x96, 0xf6, 0xe0, 0x76, 0x84, 0x5e, 0xf8, 0x72, 0xc0, 0x99, - 0x94, 0x21, 0x09, 0xfc, 0x04, 0xe1, 0x73, 0x22, 0x85, 0x5e, 0x84, 0x35, 0x6f, 0x2d, 0x42, 0x2f, - 0x4e, 0xf3, 0xbb, 0x63, 0x73, 0x65, 0x0b, 0xb8, 0x57, 0xd9, 0x1b, 0x6a, 0x52, 0xf8, 0xba, 0x49, - 0x7d, 0x4e, 0xfa, 0x6a, 0xb8, 0x22, 0xb3, 0x42, 0x08, 0x29, 0x76, 0x5f, 0xd6, 0xaf, 0xea, 0x95, - 0x53, 0x69, 0x58, 0x1a, 0x67, 0x0f, 0x04, 0xa7, 0x5c, 0x2f, 0xc5, 0xdc, 0xf1, 0x2a, 0x58, 0x1f, - 0x11, 0xe2, 0xfc, 0x1c, 0x1a, 0xba, 0xa1, 0xf7, 0xf1, 0xb9, 0xb0, 0x37, 0xa1, 0xa1, 0x3a, 0x83, - 0x08, 0x41, 0x44, 0xcb, 0xd2, 0x73, 0xa2, 0x24, 0x38, 0x12, 0xd6, 0xaf, 0x7a, 0x18, 0x09, 0xfb, - 0x29, 0xdc, 0x48, 0x88, 0xde, 0xda, 0x5a, 0xb0, 0xb9, 0xf7, 0xbe, 0x3b, 0xc5, 0x83, 0xd7, 0xbd, - 0x0a, 0xd0, 0xcb, 0xd1, 0x1c, 0x5e, 0x3e, 0xc7, 0x26, 0xd6, 0x81, 0xb0, 0xcf, 0x26, 0x95, 0xfe, - 0xf2, 0x8d, 0x94, 0x4e, 0xe0, 0x95, 0x3a, 0xdf, 0x81, 0xe6, 0xbe, 0x71, 0xfb, 0x57, 0x54, 0xc8, - 0x8b, 0x61, 0x59, 0xac, 0x86, 0xe5, 0x13, 0x58, 0xce, 0x76, 0xdc, 0x29, 0xd3, 0x43, 0xc9, 0xfe, - 0x31, 0x40, 0xb6, 0x1c, 0xd5, 0x30, 0x33, 0x63, 0xbd, 0x91, 0x51, 0x8e, 0x82, 0xb1, 0x6d, 0x34, - 0x3b, 0xb6, 0x8d, 0x1c, 0x0f, 0x56, 0xce, 0x04, 0xfe, 0x75, 0xfe, 0x00, 0x7a, 0x92, 0x08, 0xfb, - 0x36, 0xcc, 0xab, 0x3e, 0xca, 0x80, 0xea, 0xde, 0x5c, 0x2a, 0xf0, 0x91, 0x9e, 0xec, 0xe5, 0x23, - 0x8b, 0x25, 0x3e, 0x0d, 0x44, 0x6b, 0x76, 0xbb, 0xb6, 0x53, 0xf7, 0x96, 0x87, 0xa5, 0xf8, 0x51, - 0x20, 0x9c, 0xdf, 0x40, 0xb3, 0x02, 0x68, 0x2f, 0xc3, 0x6c, 0x81, 0x35, 0x4b, 0x03, 0xfb, 0x21, - 0xac, 0x97, 0x40, 0xe3, 0xa3, 0xd8, 0x20, 0x36, 0xbc, 0x3b, 0x05, 0xc3, 0xd8, 0x34, 0x16, 0xce, - 0x13, 0xb8, 0x75, 0x54, 0x36, 0x7e, 0x31, 0xe8, 0xc7, 0x3c, 0xb4, 0xc6, 0xf7, 0xed, 0x26, 0x34, - 0x8a, 0x1f, 0x19, 0xda, 0xfb, 0xba, 0x57, 0x12, 0x9c, 0x08, 0x56, 0xcf, 0x04, 0x3e, 0x21, 0x71, - 0x50, 0x82, 0x5d, 0x11, 0x80, 0x83, 0x49, 0xa0, 0xa9, 0x5f, 0xaa, 0xa5, 0x3a, 0x06, 0xeb, 0x67, - 0x28, 0xa4, 0x01, 0x92, 0x8c, 0x9f, 0x10, 0x69, 0x96, 0x74, 0xde, 0x8e, 0x1e, 0xd4, 0x43, 0x2a, - 0x64, 0x56, 0x59, 0xef, 0x5d, 0x59, 0x59, 0xe9, 0xae, 0x7b, 0x15, 0xc8, 0x21, 0x92, 0x28, 0xeb, - 0x45, 0x8d, 0xe5, 0xfc, 0x0c, 0xd6, 0x3e, 0x45, 0x72, 0xc8, 0x49, 0x30, 0x96, 0xe3, 0x55, 0xa8, - 0xa9, 0xfc, 0x59, 0x3a, 0x7f, 0xea, 0xd3, 0xf9, 0x8b, 0x05, 0xad, 0x0f, 0x5f, 0x24, 0x8c, 0x4b, - 0x12, 0x5c, 0x88, 0xc8, 0x35, 0xe1, 0x3d, 0x87, 0x35, 0x15, 0x2c, 0x41, 0xe2, 0xc0, 0x2f, 0xfc, - 0x34, 0x79, 0x6c, 0xee, 0xfd, 0x62, 0xaa, 0xee, 0x98, 0x54, 0x97, 0x39, 0x70, 0x33, 0x9d, 0xa0, - 0x0b, 0xe7, 0x8f, 0x16, 0xb4, 0x1e, 0x93, 0xd1, 0xbe, 0x10, 0xb4, 0x1f, 0x47, 0x24, 0x96, 0x6a, - 0x0e, 0x22, 0x4c, 0xd4, 0xa7, 0xfd, 0x36, 0x2c, 0x15, 0x7b, 0x57, 0xaf, 0x5b, 0x4b, 0xaf, 0xdb, - 0xc5, 0x9c, 0xa8, 0x1a, 0xcc, 0x7e, 0x08, 0x90, 0x70, 0x92, 0xfa, 0xd8, 0x3f, 0x27, 0xa3, 0x2c, - 0x8b, 0x9b, 0xd5, 0x35, 0x6a, 0x7e, 0x02, 0xba, 0xc7, 0xc3, 0x5e, 0x48, 0xf1, 0x63, 0x32, 0xf2, - 0x16, 0x14, 0x7f, 0xf7, 0x31, 0x19, 0xa9, 0x77, 0x53, 0xc2, 0x9e, 0x13, 0xae, 0x77, 0x5f, 0xcd, - 0x33, 0x07, 0xe7, 0x4f, 0x16, 0xdc, 0x29, 0xd2, 0x91, 0x97, 0xeb, 0xf1, 0xb0, 0xa7, 0x24, 0xae, - 0x89, 0xdb, 0x05, 0x6b, 0x67, 0x2f, 0xb1, 0xf6, 0x03, 0x58, 0x2c, 0x1a, 0x44, 0xd9, 0x5b, 0x9b, - 0xc2, 0xde, 0x66, 0x2e, 0xf1, 0x98, 0x8c, 0x9c, 0xdf, 0x57, 0x6c, 0x3b, 0x18, 0x55, 0x66, 0x1f, - 0x7f, 0x8d, 0x6d, 0x85, 0xda, 0xaa, 0x6d, 0xb8, 0x2a, 0x7f, 0xc1, 0x81, 0xda, 0x45, 0x07, 0x9c, - 0x3f, 0x5b, 0x70, 0xab, 0xaa, 0x55, 0x9c, 0xb2, 0x63, 0x3e, 0x8c, 0xc9, 0x75, 0xda, 0xcb, 0xf6, - 0x9b, 0xad, 0xb6, 0xdf, 0x53, 0x58, 0x1e, 0x33, 0x4a, 0x64, 0xd1, 0x78, 0x77, 0xaa, 0x1a, 0xab, - 0x4c, 0x57, 0x6f, 0xa9, 0xea, 0x87, 0x38, 0x78, 0xfa, 0xcd, 0xcb, 0xb6, 0xf5, 0xed, 0xcb, 0xb6, - 0xf5, 0xef, 0x97, 0x6d, 0xeb, 0xcb, 0x57, 0xed, 0x99, 0x6f, 0x5f, 0xb5, 0x67, 0xfe, 0xf9, 0xaa, - 0x3d, 0xf3, 0xdb, 0xf7, 0xfb, 0x54, 0x0e, 0x86, 0x3d, 0x17, 0xb3, 0x28, 0xfb, 0xc9, 0xde, 0x29, - 0x75, 0xdd, 0x2f, 0xfe, 0xfc, 0x48, 0x1f, 0x74, 0x5e, 0x8c, 0xff, 0x19, 0x23, 0x47, 0x09, 0x11, - 0xbd, 0x79, 0x3d, 0x15, 0x1e, 0xfc, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xb2, 0x71, 0xce, 0xbd, - 0x11, 0x00, 0x00, + 0x69, 0x8e, 0x3d, 0xa5, 0x85, 0x7c, 0xe8, 0xa1, 0x7f, 0x44, 0x8b, 0x99, 0xd9, 0x2f, 0x52, 0x1f, + 0xa1, 0x11, 0xe4, 0xb6, 0xf3, 0xe6, 0xbd, 0xdf, 0xfb, 0x7e, 0x6f, 0x48, 0xd8, 0xa3, 0xb1, 0x24, + 0x1c, 0x0f, 0x10, 0x8d, 0x7d, 0x41, 0xf0, 0x90, 0x53, 0x39, 0xea, 0x60, 0x9c, 0x76, 0x12, 0xce, + 0x52, 0x1a, 0x10, 0xde, 0x49, 0x77, 0x8b, 0x6f, 0x37, 0xe1, 0x4c, 0x32, 0xfb, 0xcd, 0x2b, 0x64, + 0x5c, 0x8c, 0x53, 0xb7, 0xe0, 0x4b, 0x77, 0x37, 0xde, 0xb9, 0x0e, 0x38, 0xdd, 0xed, 0x88, 0x01, + 0xe2, 0x24, 0xf0, 0x31, 0x8b, 0xc5, 0x30, 0xca, 0x61, 0x37, 0x7e, 0x7a, 0x83, 0xc4, 0x0b, 0xca, + 0x49, 0xc6, 0x76, 0xa7, 0xcf, 0xfa, 0x4c, 0x7f, 0x76, 0xd4, 0x57, 0x46, 0xdd, 0xea, 0x33, 0xd6, + 0x0f, 0x49, 0x47, 0x9f, 0x7a, 0xc3, 0xe7, 0x1d, 0x49, 0x23, 0x22, 0x24, 0x8a, 0x92, 0x8c, 0xa1, + 0x3d, 0xc9, 0x10, 0x0c, 0x39, 0x92, 0x94, 0xc5, 0x39, 0x00, 0xed, 0xe1, 0x0e, 0x66, 0x9c, 0x74, + 0x70, 0x48, 0x49, 0x2c, 0x95, 0x56, 0xf3, 0x95, 0x31, 0x74, 0x14, 0x43, 0x48, 0xfb, 0x03, 0x69, + 0xc8, 0xa2, 0x23, 0x49, 0x1c, 0x10, 0x1e, 0x51, 0xc3, 0x5c, 0x9e, 0x32, 0x81, 0xcd, 0xca, 0x3d, + 0xe6, 0xa3, 0x44, 0xb2, 0xce, 0x39, 0x19, 0x89, 0xec, 0xf6, 0x2d, 0xcc, 0x44, 0xc4, 0x44, 0x87, + 0xa8, 0x88, 0xc5, 0x98, 0x74, 0xd2, 0xdd, 0x1e, 0x91, 0x68, 0xb7, 0x20, 0xe4, 0x76, 0x67, 0x7c, + 0x3d, 0x24, 0x4a, 0x1e, 0xcc, 0x68, 0x6e, 0xf7, 0xba, 0xb9, 0xf7, 0x4d, 0x44, 0xcc, 0xc1, 0x5c, + 0x39, 0xff, 0x9b, 0x87, 0x56, 0x37, 0x8b, 0xf1, 0x7e, 0x10, 0x50, 0xe5, 0xed, 0x31, 0x67, 0x09, + 0x13, 0x28, 0xb4, 0xef, 0xc0, 0x9c, 0xa4, 0x32, 0x24, 0x2d, 0x6b, 0xdb, 0xda, 0x69, 0x78, 0xe6, + 0x60, 0x6f, 0x43, 0x33, 0x20, 0x02, 0x73, 0x9a, 0x28, 0xe6, 0xd6, 0xac, 0xbe, 0xab, 0x92, 0xec, + 0x75, 0x58, 0x30, 0x29, 0xa2, 0x41, 0xab, 0xa6, 0xaf, 0x6f, 0xe9, 0xf3, 0x51, 0x60, 0x7f, 0x04, + 0xcb, 0x34, 0xa6, 0x92, 0xa2, 0xd0, 0x1f, 0x10, 0x15, 0xa8, 0x56, 0x7d, 0xdb, 0xda, 0x69, 0xee, + 0x6d, 0xb8, 0xb4, 0x87, 0x5d, 0x15, 0x5b, 0x37, 0x8b, 0x68, 0xba, 0xeb, 0x3e, 0xd6, 0x1c, 0x07, + 0xf5, 0xaf, 0xbf, 0xdd, 0x9a, 0xf1, 0x96, 0x32, 0x39, 0x43, 0xb4, 0xef, 0xc3, 0x62, 0x9f, 0xc4, + 0x44, 0x50, 0xe1, 0x0f, 0x90, 0x18, 0xb4, 0xe6, 0xb6, 0xad, 0x9d, 0x45, 0xaf, 0x99, 0xd1, 0x1e, + 0x23, 0x31, 0xb0, 0xb7, 0xa0, 0xd9, 0xa3, 0x31, 0xe2, 0x23, 0xc3, 0x31, 0xaf, 0x39, 0xc0, 0x90, + 0x34, 0x43, 0x17, 0x40, 0x24, 0xe8, 0x45, 0xec, 0xab, 0x42, 0x68, 0xdd, 0xca, 0x0c, 0x31, 0x45, + 0xe0, 0xe6, 0x45, 0xe0, 0x9e, 0xe6, 0x55, 0x72, 0xb0, 0xa0, 0x0c, 0xf9, 0xe2, 0x5f, 0x5b, 0x96, + 0xd7, 0xd0, 0x72, 0xea, 0xc6, 0xfe, 0x14, 0x56, 0x87, 0x71, 0x8f, 0xc5, 0x01, 0x8d, 0xfb, 0x7e, + 0x42, 0x38, 0x65, 0x41, 0x6b, 0x41, 0x43, 0xad, 0x5f, 0x82, 0x3a, 0xcc, 0xea, 0xc9, 0x20, 0x7d, + 0xa9, 0x90, 0x56, 0x0a, 0xe1, 0x63, 0x2d, 0x6b, 0x7f, 0x06, 0x36, 0xc6, 0xa9, 0x36, 0x89, 0x0d, + 0x65, 0x8e, 0xd8, 0x98, 0x1e, 0x71, 0x15, 0xe3, 0xf4, 0xd4, 0x48, 0x67, 0x90, 0xbf, 0x83, 0x7b, + 0x92, 0xa3, 0x58, 0x3c, 0x27, 0x7c, 0x12, 0x17, 0xa6, 0xc7, 0xbd, 0x9b, 0x63, 0x8c, 0x83, 0x3f, + 0x86, 0xed, 0xbc, 0x49, 0x7d, 0x4e, 0x02, 0x2a, 0x24, 0xa7, 0xbd, 0xa1, 0x92, 0xf5, 0x9f, 0x73, + 0x84, 0x75, 0x8d, 0x34, 0x75, 0x11, 0xb4, 0x73, 0x3e, 0x6f, 0x8c, 0xed, 0xc3, 0x8c, 0xcb, 0x7e, + 0x0a, 0x3f, 0xe9, 0x85, 0x0c, 0x9f, 0x0b, 0x65, 0x9c, 0x3f, 0x86, 0xa4, 0x55, 0x47, 0x54, 0x08, + 0x85, 0xb6, 0xb8, 0x6d, 0xed, 0xd4, 0xbc, 0xfb, 0x86, 0xf7, 0x98, 0xf0, 0xc3, 0x0a, 0xe7, 0x69, + 0x85, 0xd1, 0x7e, 0x00, 0xf6, 0x80, 0x0a, 0xc9, 0x38, 0xc5, 0x28, 0xf4, 0x49, 0x2c, 0x39, 0x25, + 0xa2, 0xb5, 0xa4, 0xc5, 0x6f, 0x97, 0x37, 0x1f, 0x98, 0x0b, 0xfb, 0x63, 0xb8, 0x7f, 0xad, 0x52, + 0x1f, 0x0f, 0x50, 0x1c, 0x93, 0xb0, 0xb5, 0xac, 0x5d, 0xd9, 0x0a, 0xae, 0xd1, 0xd9, 0x35, 0x6c, + 0x8f, 0x76, 0xfe, 0xf0, 0xd5, 0xd6, 0xcc, 0x97, 0x5f, 0x6d, 0xcd, 0xfc, 0xfd, 0xaf, 0x0f, 0x36, + 0xb2, 0x8e, 0xeb, 0xb3, 0xd4, 0xcd, 0xba, 0xd3, 0xed, 0xb2, 0x58, 0x92, 0x58, 0xb6, 0x2c, 0xe7, + 0x1f, 0x16, 0xdc, 0xeb, 0x16, 0x81, 0x89, 0x58, 0x8a, 0xc2, 0x1f, 0xb2, 0x01, 0xf7, 0xa1, 0x21, + 0x24, 0x4b, 0x4c, 0xc9, 0xd7, 0x5f, 0xa3, 0xe4, 0x17, 0x94, 0x98, 0xba, 0x78, 0xd4, 0xbe, 0xd9, + 0x27, 0xe7, 0x6f, 0x16, 0x6c, 0xa8, 0x38, 0xf4, 0x89, 0x47, 0x5e, 0x20, 0x1e, 0x1c, 0x92, 0x98, + 0x45, 0xe2, 0x7b, 0x3b, 0xe5, 0xc0, 0x52, 0xa0, 0x91, 0x7c, 0xc9, 0x7c, 0x14, 0x28, 0xcf, 0x6a, + 0x86, 0x47, 0x11, 0x4f, 0xd9, 0x7e, 0x10, 0xd8, 0x3b, 0xb0, 0x5a, 0xf2, 0x70, 0x15, 0x4d, 0xe5, + 0xa4, 0x62, 0x5b, 0xce, 0xd9, 0x74, 0x8c, 0xbf, 0xdb, 0x89, 0xff, 0x5a, 0xb0, 0xfa, 0x51, 0xc8, + 0x7a, 0x28, 0x3c, 0x09, 0x91, 0x18, 0xa8, 0x1a, 0x19, 0xa9, 0xe0, 0x71, 0x92, 0x35, 0xa7, 0x36, + 0x7f, 0xea, 0xe0, 0x29, 0x31, 0x3d, 0x2e, 0xde, 0x87, 0xdb, 0x45, 0xbb, 0x14, 0x39, 0xd2, 0xde, + 0x1e, 0xac, 0x5d, 0x7c, 0xbb, 0xb5, 0x92, 0x97, 0x42, 0x57, 0xe7, 0xeb, 0xd0, 0x5b, 0xc1, 0x63, + 0x84, 0xc0, 0x6e, 0x43, 0x93, 0xf6, 0xb0, 0x2f, 0xc8, 0xe7, 0x7e, 0x3c, 0x8c, 0x74, 0x7a, 0xeb, + 0x5e, 0x83, 0xf6, 0xf0, 0x09, 0xf9, 0xfc, 0xd3, 0x61, 0x64, 0x3f, 0x84, 0x37, 0xf2, 0x1d, 0xeb, + 0xa7, 0x28, 0xd4, 0x1b, 0x54, 0x85, 0x8b, 0xeb, 0x6c, 0x2f, 0x7a, 0x6b, 0xf9, 0xed, 0x19, 0x0a, + 0x95, 0xb2, 0xfd, 0x20, 0xe0, 0xce, 0x7f, 0xe6, 0x60, 0xfe, 0x18, 0x71, 0x14, 0x09, 0xfb, 0x14, + 0x56, 0x24, 0x89, 0x92, 0x10, 0x49, 0xe2, 0x9b, 0x51, 0x9c, 0x79, 0xfa, 0xb6, 0x1e, 0xd1, 0xd5, + 0xed, 0xe6, 0x56, 0xf6, 0x59, 0xba, 0xeb, 0x76, 0x35, 0xf5, 0x44, 0x22, 0x49, 0xbc, 0xe5, 0x1c, + 0xc3, 0x10, 0xed, 0x77, 0xa1, 0x25, 0xf9, 0x50, 0xc8, 0x72, 0x48, 0x96, 0xd3, 0xc1, 0xe4, 0xfa, + 0x8d, 0xfc, 0xde, 0xcc, 0x95, 0x62, 0x2a, 0x5c, 0x3d, 0x0f, 0x6b, 0xdf, 0x67, 0x1e, 0x9e, 0xc0, + 0x9a, 0x5a, 0x26, 0x93, 0x98, 0xf5, 0xe9, 0x31, 0x6f, 0x2b, 0xf9, 0x71, 0xd0, 0xcf, 0xc0, 0x4e, + 0x05, 0x9e, 0xc4, 0x9c, 0x7b, 0x0d, 0x3b, 0x53, 0x81, 0xc7, 0x21, 0x03, 0xd8, 0x14, 0xaa, 0xf8, + 0xfc, 0x88, 0x48, 0x3d, 0x5d, 0x93, 0x90, 0xc4, 0x54, 0x0c, 0x72, 0xf0, 0xf9, 0xe9, 0xc1, 0xd7, + 0x35, 0xd0, 0x27, 0x0a, 0xc7, 0xcb, 0x61, 0x32, 0x2d, 0x5d, 0x68, 0x5f, 0xad, 0xa5, 0x48, 0xd0, + 0x2d, 0x9d, 0xa0, 0x1f, 0x5d, 0x01, 0x51, 0x64, 0x69, 0x0f, 0xee, 0x46, 0xe8, 0xa5, 0x2f, 0x07, + 0x9c, 0x49, 0x19, 0x92, 0xc0, 0x4f, 0x10, 0x3e, 0x27, 0x52, 0xe8, 0x55, 0x58, 0xf3, 0xd6, 0x22, + 0xf4, 0xf2, 0x34, 0xbf, 0x3b, 0x36, 0x57, 0xb6, 0x80, 0xb7, 0x2a, 0x9b, 0x43, 0x4d, 0x0a, 0x5f, + 0x37, 0xa9, 0xcf, 0x49, 0x5f, 0x8d, 0x57, 0x64, 0x96, 0x08, 0x21, 0xc5, 0xf6, 0xcb, 0xfa, 0x55, + 0xbd, 0x73, 0x2a, 0x0d, 0x4b, 0xe3, 0xec, 0x89, 0xe0, 0x94, 0x0b, 0xa6, 0x98, 0x3b, 0x5e, 0x05, + 0xeb, 0x43, 0x42, 0x9c, 0x9f, 0x43, 0x43, 0x37, 0xf4, 0x3e, 0x3e, 0x17, 0xf6, 0x26, 0x34, 0x54, + 0x67, 0x10, 0x21, 0x88, 0x68, 0x59, 0x7a, 0x4e, 0x94, 0x04, 0x47, 0xc2, 0xfa, 0x75, 0x4f, 0x23, + 0x61, 0x3f, 0x83, 0x5b, 0x09, 0xd1, 0x7b, 0x5b, 0x0b, 0x36, 0xf7, 0xde, 0x73, 0xa7, 0x78, 0xf2, + 0xba, 0xd7, 0x01, 0x7a, 0x39, 0x9a, 0xc3, 0xcb, 0x07, 0xd9, 0xc4, 0x3a, 0x10, 0xf6, 0xd9, 0xa4, + 0xd2, 0x5f, 0xbe, 0x96, 0xd2, 0x09, 0xbc, 0x52, 0xe7, 0xdb, 0xd0, 0xdc, 0x37, 0x6e, 0xff, 0x8a, + 0x0a, 0x79, 0x39, 0x2c, 0x8b, 0xd5, 0xb0, 0x7c, 0x0c, 0xcb, 0xd9, 0x96, 0x3b, 0x65, 0x7a, 0x28, + 0xd9, 0x3f, 0x06, 0xc8, 0xd6, 0xa3, 0x1a, 0x66, 0x66, 0xac, 0x37, 0x32, 0xca, 0x51, 0x30, 0xb6, + 0x8d, 0x66, 0xc7, 0xb6, 0x91, 0xe3, 0xc1, 0xca, 0x99, 0xc0, 0xbf, 0xce, 0x9f, 0x40, 0x4f, 0x13, + 0x61, 0xdf, 0x85, 0x79, 0xd5, 0x47, 0x19, 0x50, 0xdd, 0x9b, 0x4b, 0x05, 0x3e, 0xd2, 0x93, 0xbd, + 0x7c, 0x66, 0xb1, 0xc4, 0xa7, 0x81, 0x68, 0xcd, 0x6e, 0xd7, 0x76, 0xea, 0xde, 0xf2, 0xb0, 0x14, + 0x3f, 0x0a, 0x84, 0xf3, 0x1b, 0x68, 0x56, 0x00, 0xed, 0x65, 0x98, 0x2d, 0xb0, 0x66, 0x69, 0x60, + 0x3f, 0x82, 0xf5, 0x12, 0x68, 0x7c, 0x14, 0x1b, 0xc4, 0x86, 0x77, 0xaf, 0x60, 0x18, 0x9b, 0xc6, + 0xc2, 0x79, 0x0a, 0x77, 0x8e, 0xca, 0xc6, 0x2f, 0x06, 0xfd, 0x98, 0x87, 0xd6, 0xf8, 0xbe, 0xdd, + 0x84, 0x46, 0xf1, 0x33, 0x43, 0x7b, 0x5f, 0xf7, 0x4a, 0x82, 0x13, 0xc1, 0xea, 0x99, 0xc0, 0x27, + 0x24, 0x0e, 0x4a, 0xb0, 0x6b, 0x02, 0x70, 0x30, 0x09, 0x34, 0xf5, 0x5b, 0xb5, 0x54, 0xc7, 0x60, + 0xfd, 0x0c, 0x85, 0x34, 0x40, 0x92, 0xf1, 0x13, 0x22, 0xcd, 0x92, 0xce, 0xdb, 0xd1, 0x83, 0x7a, + 0x48, 0x85, 0xcc, 0x2a, 0xeb, 0xdd, 0x6b, 0x2b, 0x2b, 0xdd, 0x75, 0xaf, 0x03, 0x39, 0x44, 0x12, + 0x65, 0xbd, 0xa8, 0xb1, 0x9c, 0x9f, 0xc1, 0xda, 0x27, 0x48, 0x0e, 0x39, 0x09, 0xc6, 0x72, 0xbc, + 0x0a, 0x35, 0x95, 0x3f, 0x4b, 0xe7, 0x4f, 0x7d, 0x3a, 0x7f, 0xb1, 0xa0, 0xf5, 0xc1, 0xcb, 0x84, + 0x71, 0x49, 0x82, 0x4b, 0x11, 0xb9, 0x21, 0xbc, 0xe7, 0xb0, 0xa6, 0x82, 0x25, 0x48, 0x1c, 0xf8, + 0x85, 0x9f, 0x26, 0x8f, 0xcd, 0xbd, 0x5f, 0x4c, 0xd5, 0x1d, 0x93, 0xea, 0x32, 0x07, 0x6e, 0xa7, + 0x13, 0x74, 0xe1, 0xfc, 0xd1, 0x82, 0xd6, 0x13, 0x32, 0xda, 0x17, 0x82, 0xf6, 0xe3, 0x88, 0xc4, + 0x52, 0xcd, 0x41, 0x84, 0x89, 0xfa, 0xb4, 0xdf, 0x84, 0xa5, 0x62, 0xef, 0xea, 0x75, 0x6b, 0xe9, + 0x75, 0xbb, 0x98, 0x13, 0x55, 0x83, 0xd9, 0x8f, 0x00, 0x12, 0x4e, 0x52, 0x1f, 0xfb, 0xe7, 0x64, + 0x94, 0x65, 0x71, 0xb3, 0xba, 0x46, 0xcd, 0x8f, 0x40, 0xf7, 0x78, 0xd8, 0x0b, 0x29, 0x7e, 0x42, + 0x46, 0xde, 0x82, 0xe2, 0xef, 0x3e, 0x21, 0x23, 0xf5, 0x6e, 0x4a, 0xd8, 0x0b, 0xc2, 0xf5, 0xee, + 0xab, 0x79, 0xe6, 0xe0, 0xfc, 0xc9, 0x82, 0x7b, 0x45, 0x3a, 0xf2, 0x72, 0x3d, 0x1e, 0xf6, 0x94, + 0xc4, 0x0d, 0x71, 0xbb, 0x64, 0xed, 0xec, 0x15, 0xd6, 0xbe, 0x0f, 0x8b, 0x45, 0x83, 0x28, 0x7b, + 0x6b, 0x53, 0xd8, 0xdb, 0xcc, 0x25, 0x9e, 0x90, 0x91, 0xf3, 0xfb, 0x8a, 0x6d, 0x07, 0xa3, 0xca, + 0xec, 0xe3, 0xdf, 0x61, 0x5b, 0xa1, 0xb6, 0x6a, 0x1b, 0xae, 0xca, 0x5f, 0x72, 0xa0, 0x76, 0xd9, + 0x01, 0xe7, 0xcf, 0x16, 0xdc, 0xa9, 0x6a, 0x15, 0xa7, 0xec, 0x98, 0x0f, 0x63, 0x72, 0x93, 0xf6, + 0xb2, 0xfd, 0x66, 0xab, 0xed, 0xf7, 0x0c, 0x96, 0xc7, 0x8c, 0x12, 0x59, 0x34, 0xde, 0x99, 0xaa, + 0xc6, 0x2a, 0xd3, 0xd5, 0x5b, 0xaa, 0xfa, 0x21, 0x0e, 0x9e, 0x7d, 0x7d, 0xd1, 0xb6, 0xbe, 0xb9, + 0x68, 0x5b, 0xff, 0xbe, 0x68, 0x5b, 0x5f, 0xbc, 0x6a, 0xcf, 0x7c, 0xf3, 0xaa, 0x3d, 0xf3, 0xcf, + 0x57, 0xed, 0x99, 0xdf, 0xbe, 0xd7, 0xa7, 0x72, 0x30, 0xec, 0xb9, 0x98, 0x45, 0xd9, 0x8f, 0xf6, + 0x4e, 0xa9, 0xeb, 0x41, 0xf1, 0xf7, 0x47, 0xfa, 0xb0, 0xf3, 0x72, 0xfc, 0xef, 0x18, 0x39, 0x4a, + 0x88, 0xe8, 0xcd, 0xeb, 0xa9, 0xf0, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xb7, 0xf2, + 0xf2, 0xbf, 0x11, 0x00, 0x00, } func (m *ConsumerAdditionProposal) Marshal() (dAtA []byte, err error) { diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index 9e7a62b26d..3770b3ada6 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -12,19 +12,25 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" + types "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" + _ "google.golang.org/protobuf/types/known/durationpb" + _ "google.golang.org/protobuf/types/known/timestamppb" io "io" math "math" math_bits "math/bits" + time "time" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf +var _ = time.Kitchen // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. @@ -114,9 +120,229 @@ func (m *MsgAssignConsumerKeyResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgAssignConsumerKeyResponse proto.InternalMessageInfo +// MsgConsumerAddition defines the message used to spawn a new consumer chain using a v1 governance proposal. +// If it passes, then all validators on the provider chain are expected to validate +// the consumer chain at spawn time or get slashed. +// It is recommended that spawn time occurs after the proposal end time. +// +// Note: this replaces ConsumerAdditionProposal which is deprecated and will be removed soon +type MsgConsumerAddition struct { + // the proposed chain-id of the new consumer chain, must be different from all + // other consumer chain ids of the executing provider chain. + ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // 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 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. + GenesisHash []byte `protobuf:"bytes,3,opt,name=genesis_hash,json=genesisHash,proto3" json:"genesis_hash,omitempty"` + // The hash of the consumer chain binary that should be run by validators on + // chain initialization. It is used for off-chain confirmation of binary + // validity by validators and other parties. + BinaryHash []byte `protobuf:"bytes,4,opt,name=binary_hash,json=binaryHash,proto3" json:"binary_hash,omitempty"` + // 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. + SpawnTime time.Time `protobuf:"bytes,5,opt,name=spawn_time,json=spawnTime,proto3,stdtime" json:"spawn_time"` + // Unbonding period for the consumer, + // which should be smaller than that of the provider in general. + UnbondingPeriod time.Duration `protobuf:"bytes,6,opt,name=unbonding_period,json=unbondingPeriod,proto3,stdduration" json:"unbonding_period"` + // Sent CCV related IBC packets will timeout after this duration + CcvTimeoutPeriod time.Duration `protobuf:"bytes,7,opt,name=ccv_timeout_period,json=ccvTimeoutPeriod,proto3,stdduration" json:"ccv_timeout_period"` + // Sent transfer related IBC packets will timeout after this duration + TransferTimeoutPeriod time.Duration `protobuf:"bytes,8,opt,name=transfer_timeout_period,json=transferTimeoutPeriod,proto3,stdduration" json:"transfer_timeout_period"` + // 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%. + ConsumerRedistributionFraction string `protobuf:"bytes,9,opt,name=consumer_redistribution_fraction,json=consumerRedistributionFraction,proto3" json:"consumer_redistribution_fraction,omitempty"` + // BlocksPerDistributionTransmission is the number of blocks between + // ibc-token-transfers from the consumer chain to the provider chain. On + // sending transmission event, `consumer_redistribution_fraction` of the + // accumulated tokens are sent to the consumer redistribution address. + BlocksPerDistributionTransmission int64 `protobuf:"varint,10,opt,name=blocks_per_distribution_transmission,json=blocksPerDistributionTransmission,proto3" json:"blocks_per_distribution_transmission,omitempty"` + // 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. + HistoricalEntries int64 `protobuf:"varint,11,opt,name=historical_entries,json=historicalEntries,proto3" json:"historical_entries,omitempty"` + // The ID of a token transfer channel used for the Reward Distribution + // sub-protocol. If DistributionTransmissionChannel == "", a new transfer + // channel is created on top of the same connection as the CCV channel. + // Note that transfer_channel_id is the ID of the channel end on the consumer + // chain. it is most relevant for chains performing a sovereign to consumer + // changeover in order to maintan the existing ibc transfer channel + DistributionTransmissionChannel string `protobuf:"bytes,12,opt,name=distribution_transmission_channel,json=distributionTransmissionChannel,proto3" json:"distribution_transmission_channel,omitempty"` + // signer address + Signer string `protobuf:"bytes,13,opt,name=signer,proto3" json:"signer,omitempty"` +} + +func (m *MsgConsumerAddition) Reset() { *m = MsgConsumerAddition{} } +func (m *MsgConsumerAddition) String() string { return proto.CompactTextString(m) } +func (*MsgConsumerAddition) ProtoMessage() {} +func (*MsgConsumerAddition) Descriptor() ([]byte, []int) { + return fileDescriptor_43221a4391e9fbf4, []int{2} +} +func (m *MsgConsumerAddition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgConsumerAddition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgConsumerAddition.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgConsumerAddition) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgConsumerAddition.Merge(m, src) +} +func (m *MsgConsumerAddition) XXX_Size() int { + return m.Size() +} +func (m *MsgConsumerAddition) XXX_DiscardUnknown() { + xxx_messageInfo_MsgConsumerAddition.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgConsumerAddition proto.InternalMessageInfo + +func (m *MsgConsumerAddition) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *MsgConsumerAddition) GetInitialHeight() types.Height { + if m != nil { + return m.InitialHeight + } + return types.Height{} +} + +func (m *MsgConsumerAddition) GetGenesisHash() []byte { + if m != nil { + return m.GenesisHash + } + return nil +} + +func (m *MsgConsumerAddition) GetBinaryHash() []byte { + if m != nil { + return m.BinaryHash + } + return nil +} + +func (m *MsgConsumerAddition) GetSpawnTime() time.Time { + if m != nil { + return m.SpawnTime + } + return time.Time{} +} + +func (m *MsgConsumerAddition) GetUnbondingPeriod() time.Duration { + if m != nil { + return m.UnbondingPeriod + } + return 0 +} + +func (m *MsgConsumerAddition) GetCcvTimeoutPeriod() time.Duration { + if m != nil { + return m.CcvTimeoutPeriod + } + return 0 +} + +func (m *MsgConsumerAddition) GetTransferTimeoutPeriod() time.Duration { + if m != nil { + return m.TransferTimeoutPeriod + } + return 0 +} + +func (m *MsgConsumerAddition) GetConsumerRedistributionFraction() string { + if m != nil { + return m.ConsumerRedistributionFraction + } + return "" +} + +func (m *MsgConsumerAddition) GetBlocksPerDistributionTransmission() int64 { + if m != nil { + return m.BlocksPerDistributionTransmission + } + return 0 +} + +func (m *MsgConsumerAddition) GetHistoricalEntries() int64 { + if m != nil { + return m.HistoricalEntries + } + return 0 +} + +func (m *MsgConsumerAddition) GetDistributionTransmissionChannel() string { + if m != nil { + return m.DistributionTransmissionChannel + } + return "" +} + +func (m *MsgConsumerAddition) GetSigner() string { + if m != nil { + return m.Signer + } + return "" +} + +// MsgConsumerAdditionResponse defines the Msg/MsgIBCSoftwareUpgrade response type +type MsgConsumerAdditionResponse struct { +} + +func (m *MsgConsumerAdditionResponse) Reset() { *m = MsgConsumerAdditionResponse{} } +func (m *MsgConsumerAdditionResponse) String() string { return proto.CompactTextString(m) } +func (*MsgConsumerAdditionResponse) ProtoMessage() {} +func (*MsgConsumerAdditionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_43221a4391e9fbf4, []int{3} +} +func (m *MsgConsumerAdditionResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgConsumerAdditionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgConsumerAdditionResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgConsumerAdditionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgConsumerAdditionResponse.Merge(m, src) +} +func (m *MsgConsumerAdditionResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgConsumerAdditionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgConsumerAdditionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgConsumerAdditionResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgAssignConsumerKey)(nil), "interchain_security.ccv.provider.v1.MsgAssignConsumerKey") proto.RegisterType((*MsgAssignConsumerKeyResponse)(nil), "interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse") + proto.RegisterType((*MsgConsumerAddition)(nil), "interchain_security.ccv.provider.v1.MsgConsumerAddition") + proto.RegisterType((*MsgConsumerAdditionResponse)(nil), "interchain_security.ccv.provider.v1.MsgConsumerAdditionResponse") } func init() { @@ -124,34 +350,60 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 431 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x3f, 0x6f, 0xd4, 0x30, - 0x14, 0x8f, 0x29, 0x14, 0x30, 0x05, 0x89, 0x70, 0x12, 0x69, 0x54, 0xe5, 0x20, 0x2c, 0xa8, 0xa2, - 0x31, 0xa5, 0x03, 0xa2, 0x12, 0x43, 0xca, 0x84, 0x50, 0x97, 0x30, 0x20, 0xb1, 0x44, 0x39, 0xc7, - 0xb8, 0x16, 0x8d, 0x1d, 0xf9, 0x39, 0x51, 0xb3, 0x21, 0x26, 0x46, 0xf8, 0x06, 0xf7, 0x11, 0x3a, - 0xf0, 0x21, 0x18, 0x4f, 0x88, 0x81, 0x09, 0xa1, 0xbb, 0xe1, 0x98, 0xf9, 0x04, 0x28, 0x89, 0xc3, - 0x1f, 0x71, 0x03, 0x62, 0xf3, 0x7b, 0xef, 0xe7, 0xdf, 0x1f, 0xbd, 0x87, 0xef, 0x08, 0x69, 0x98, - 0xa6, 0x47, 0x99, 0x90, 0x29, 0x30, 0x5a, 0x69, 0x61, 0x1a, 0x42, 0x69, 0x4d, 0x4a, 0xad, 0x6a, - 0x91, 0x33, 0x4d, 0xea, 0x5d, 0x62, 0x4e, 0xa2, 0x52, 0x2b, 0xa3, 0xdc, 0x5b, 0x2b, 0xd0, 0x11, - 0xa5, 0x75, 0x34, 0xa0, 0xa3, 0x7a, 0xd7, 0xdf, 0xe2, 0x4a, 0xf1, 0x63, 0x46, 0xb2, 0x52, 0x90, - 0x4c, 0x4a, 0x65, 0x32, 0x23, 0x94, 0x84, 0x9e, 0xc2, 0x1f, 0x71, 0xc5, 0x55, 0xf7, 0x24, 0xed, - 0xcb, 0x76, 0x37, 0xa9, 0x82, 0x42, 0x41, 0xda, 0x0f, 0xfa, 0xc2, 0x8e, 0xae, 0xf7, 0x15, 0x29, - 0x80, 0xb7, 0x5e, 0x0a, 0xe0, 0xc3, 0x1f, 0xab, 0xd3, 0x55, 0x93, 0xea, 0x05, 0xc9, 0x64, 0xd3, - 0x8f, 0xc2, 0x4f, 0x08, 0x8f, 0x0e, 0x81, 0xc7, 0x00, 0x82, 0xcb, 0x47, 0x4a, 0x42, 0x55, 0x30, - 0xfd, 0x84, 0x35, 0xee, 0x26, 0xbe, 0xd0, 0xbb, 0x17, 0xb9, 0x87, 0x6e, 0xa0, 0xdb, 0x17, 0x93, - 0xf3, 0x5d, 0xfd, 0x38, 0x77, 0xef, 0xe3, 0xcb, 0x43, 0x8a, 0x34, 0xcb, 0x73, 0xed, 0x9d, 0x69, - 0xe7, 0x07, 0xee, 0xf7, 0x2f, 0xe3, 0x2b, 0x4d, 0x56, 0x1c, 0xef, 0x87, 0x6d, 0x97, 0x01, 0x84, - 0xc9, 0xc6, 0x00, 0x8c, 0xf3, 0x5c, 0xbb, 0x37, 0xf1, 0x06, 0xb5, 0x12, 0xe9, 0x4b, 0xd6, 0x78, - 0x6b, 0x1d, 0xef, 0x25, 0xfa, 0x9b, 0xec, 0x5d, 0xbc, 0xde, 0x3a, 0x61, 0xda, 0x3b, 0xdb, 0x91, - 0x7a, 0x1f, 0xdf, 0xef, 0x8c, 0x6c, 0xca, 0xb8, 0x67, 0x7d, 0x6a, 0xb4, 0x90, 0x3c, 0xb1, 0xb8, - 0xfd, 0x6b, 0x6f, 0xa6, 0x63, 0xe7, 0xdb, 0x74, 0xec, 0xbc, 0x5e, 0x9e, 0x6e, 0xdb, 0x66, 0x18, - 0xe0, 0xad, 0x55, 0xa9, 0x12, 0x06, 0xa5, 0x92, 0xc0, 0xee, 0x4d, 0x11, 0x5e, 0x3b, 0x04, 0xee, - 0xbe, 0x43, 0xf8, 0xea, 0xdf, 0xd9, 0x1f, 0x44, 0xff, 0xb0, 0xbd, 0x68, 0x95, 0x80, 0x1f, 0xff, - 0xf7, 0xd7, 0xc1, 0x9b, 0x7f, 0xee, 0xd5, 0xf2, 0x74, 0x1b, 0x1d, 0x3c, 0xfb, 0x30, 0x0f, 0xd0, - 0x6c, 0x1e, 0xa0, 0xaf, 0xf3, 0x00, 0xbd, 0x5d, 0x04, 0xce, 0x6c, 0x11, 0x38, 0x9f, 0x17, 0x81, - 0xf3, 0xfc, 0x21, 0x17, 0xe6, 0xa8, 0x9a, 0x44, 0x54, 0x15, 0xf6, 0x00, 0xc8, 0x2f, 0xd1, 0x9d, - 0x9f, 0xb7, 0x59, 0xef, 0x91, 0x93, 0x3f, 0x0f, 0xd4, 0x34, 0x25, 0x83, 0xc9, 0x7a, 0xb7, 0xf9, - 0xbd, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x81, 0xdf, 0x33, 0x1e, 0xd1, 0x02, 0x00, 0x00, + // 837 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0xdc, 0x44, + 0x14, 0x5f, 0x37, 0x69, 0x9a, 0xcc, 0x26, 0x25, 0x75, 0x83, 0xea, 0x2c, 0xc5, 0x4e, 0x16, 0x0e, + 0x55, 0x45, 0x6c, 0xd2, 0x1e, 0x80, 0x4a, 0x48, 0x6c, 0x52, 0x20, 0x80, 0x02, 0xc5, 0x44, 0x42, + 0x82, 0x83, 0x35, 0x1e, 0x4f, 0xec, 0x51, 0xd7, 0x33, 0xd6, 0xcc, 0xd8, 0x74, 0x6f, 0x88, 0x13, + 0x27, 0x54, 0x6e, 0x1c, 0xfb, 0x11, 0x8a, 0xc4, 0x87, 0xe8, 0xb1, 0x42, 0x48, 0x70, 0x2a, 0x28, + 0x39, 0x94, 0x33, 0x9f, 0x00, 0xcd, 0x1f, 0xa7, 0x9b, 0xcd, 0xb6, 0x5a, 0xf5, 0x36, 0x33, 0xbf, + 0x3f, 0xf3, 0xde, 0xf3, 0x7b, 0x1e, 0xf0, 0x16, 0xa1, 0x12, 0x73, 0x54, 0x40, 0x42, 0x13, 0x81, + 0x51, 0xcd, 0x89, 0x1c, 0x45, 0x08, 0x35, 0x51, 0xc5, 0x59, 0x43, 0x32, 0xcc, 0xa3, 0x66, 0x3b, + 0x92, 0xf7, 0xc2, 0x8a, 0x33, 0xc9, 0xdc, 0x37, 0xa6, 0xb0, 0x43, 0x84, 0x9a, 0xb0, 0x65, 0x87, + 0xcd, 0x76, 0xef, 0x6a, 0xce, 0x58, 0x3e, 0xc4, 0x11, 0xac, 0x48, 0x04, 0x29, 0x65, 0x12, 0x4a, + 0xc2, 0xa8, 0x30, 0x16, 0xbd, 0xc0, 0xa2, 0x7a, 0x97, 0xd6, 0x87, 0x91, 0x24, 0x25, 0x16, 0x12, + 0x96, 0x95, 0x25, 0xf8, 0x93, 0x84, 0xac, 0xe6, 0xda, 0xc1, 0xe2, 0xeb, 0x93, 0x38, 0xa4, 0x23, + 0x0b, 0xad, 0xe5, 0x2c, 0x67, 0x7a, 0x19, 0xa9, 0x55, 0x2b, 0x40, 0x4c, 0x94, 0x4c, 0x24, 0x06, + 0x30, 0x1b, 0x0b, 0x5d, 0x31, 0xbb, 0xa8, 0x14, 0xb9, 0xca, 0xb3, 0x14, 0x79, 0x1b, 0x25, 0x49, + 0x51, 0x84, 0x18, 0xc7, 0x11, 0x1a, 0x12, 0x4c, 0xa5, 0x42, 0xcd, 0xca, 0x10, 0xfa, 0x7f, 0x38, + 0x60, 0x6d, 0x5f, 0xe4, 0x03, 0x21, 0x48, 0x4e, 0x77, 0x19, 0x15, 0x75, 0x89, 0xf9, 0x67, 0x78, + 0xe4, 0xae, 0x83, 0x45, 0x53, 0x1f, 0x92, 0x79, 0xce, 0x86, 0x73, 0x6d, 0x29, 0xbe, 0xa0, 0xf7, + 0x9f, 0x64, 0xee, 0x3b, 0x60, 0xa5, 0xad, 0x53, 0x02, 0xb3, 0x8c, 0x7b, 0xe7, 0x14, 0xbe, 0xe3, + 0xfe, 0xf7, 0x24, 0xb8, 0x38, 0x82, 0xe5, 0xf0, 0x56, 0x5f, 0x9d, 0x62, 0x21, 0xfa, 0xf1, 0x72, + 0x4b, 0x1c, 0x64, 0x19, 0x77, 0x37, 0xc1, 0x32, 0xb2, 0x57, 0x24, 0x77, 0xf1, 0xc8, 0x9b, 0xd3, + 0xbe, 0x5d, 0x34, 0x76, 0xed, 0xdb, 0x60, 0x41, 0x45, 0x82, 0xb9, 0x37, 0xaf, 0x4d, 0xbd, 0xdf, + 0x7f, 0xdb, 0x5a, 0xb3, 0xb9, 0x0e, 0x8c, 0xeb, 0x57, 0x92, 0x13, 0x9a, 0xc7, 0x96, 0x77, 0xeb, + 0xf2, 0x8f, 0x0f, 0x82, 0xce, 0xbf, 0x0f, 0x82, 0xce, 0x0f, 0x4f, 0x1f, 0x5e, 0xb7, 0x87, 0x7d, + 0x1f, 0x5c, 0x9d, 0x96, 0x55, 0x8c, 0x45, 0xc5, 0xa8, 0xc0, 0xfd, 0x3f, 0x17, 0xc0, 0xe5, 0x7d, + 0x91, 0xb7, 0xd0, 0x20, 0xcb, 0x88, 0xfa, 0x34, 0x2f, 0xca, 0xfa, 0x63, 0x70, 0x91, 0x50, 0x22, + 0x09, 0x1c, 0x26, 0x05, 0x26, 0x79, 0x21, 0x75, 0xda, 0xdd, 0x1b, 0xbd, 0x90, 0xa4, 0x28, 0x54, + 0x35, 0x0e, 0x6d, 0x65, 0x9b, 0xed, 0x70, 0x4f, 0x33, 0x76, 0xe6, 0x1f, 0x3d, 0x09, 0x3a, 0xf1, + 0x8a, 0xd5, 0x99, 0x43, 0x55, 0x85, 0x1c, 0x53, 0x2c, 0x88, 0x48, 0x0a, 0x28, 0x0a, 0x5d, 0x85, + 0xe5, 0xb8, 0x6b, 0xcf, 0xf6, 0xa0, 0x28, 0xdc, 0x00, 0x74, 0x53, 0x42, 0x21, 0x1f, 0x19, 0xc6, + 0xbc, 0x66, 0x00, 0x73, 0xa4, 0x09, 0xbb, 0x00, 0x88, 0x0a, 0x7e, 0x47, 0x13, 0xd5, 0x75, 0xde, + 0x79, 0x1b, 0x88, 0xe9, 0xa8, 0xb0, 0xed, 0xa8, 0xf0, 0xa0, 0x6d, 0xc9, 0x9d, 0x45, 0x15, 0xc8, + 0xfd, 0xbf, 0x03, 0x27, 0x5e, 0xd2, 0x3a, 0x85, 0xb8, 0x9f, 0x83, 0xd5, 0x9a, 0xa6, 0x8c, 0x66, + 0x84, 0xe6, 0x49, 0x85, 0x39, 0x61, 0x99, 0xb7, 0xa0, 0xad, 0xd6, 0xcf, 0x58, 0xdd, 0xb6, 0xcd, + 0x6b, 0x9c, 0x7e, 0x51, 0x4e, 0xaf, 0x9c, 0x88, 0xef, 0x68, 0xad, 0xfb, 0x25, 0x70, 0x11, 0x6a, + 0x74, 0x48, 0xac, 0x96, 0xad, 0xe3, 0x85, 0xd9, 0x1d, 0x57, 0x11, 0x6a, 0x0e, 0x8c, 0xda, 0x5a, + 0x7e, 0x0b, 0xae, 0x48, 0x0e, 0xa9, 0x38, 0xc4, 0x7c, 0xd2, 0x77, 0x71, 0x76, 0xdf, 0x57, 0x5b, + 0x8f, 0xd3, 0xe6, 0x7b, 0x60, 0xe3, 0xa4, 0x1d, 0x39, 0xce, 0x88, 0x90, 0x9c, 0xa4, 0xb5, 0xd2, + 0x26, 0x87, 0x1c, 0x22, 0xb5, 0xf0, 0x96, 0x74, 0x13, 0xf8, 0x2d, 0x2f, 0x3e, 0x45, 0xfb, 0xc8, + 0xb2, 0xdc, 0x2f, 0xc0, 0x9b, 0xe9, 0x90, 0xa1, 0xbb, 0x42, 0x05, 0x97, 0x9c, 0x72, 0xd2, 0x57, + 0x97, 0x44, 0x08, 0xe5, 0x06, 0x36, 0x9c, 0x6b, 0x73, 0xf1, 0xa6, 0xe1, 0xde, 0xc1, 0xfc, 0xf6, + 0x18, 0xf3, 0x60, 0x8c, 0xe8, 0x6e, 0x01, 0xb7, 0x20, 0x42, 0x32, 0x4e, 0x10, 0x1c, 0x26, 0x98, + 0x4a, 0x4e, 0xb0, 0xf0, 0xba, 0x5a, 0x7e, 0xe9, 0x19, 0xf2, 0xa1, 0x01, 0xdc, 0x4f, 0xc1, 0xe6, + 0x73, 0x2f, 0x4d, 0x50, 0x01, 0x29, 0xc5, 0x43, 0x6f, 0x59, 0xa7, 0x12, 0x64, 0xcf, 0xb9, 0x73, + 0xd7, 0xd0, 0xc6, 0x26, 0x70, 0x65, 0xc6, 0x09, 0xec, 0x8e, 0x4f, 0xde, 0xeb, 0xe0, 0xb5, 0x29, + 0x83, 0xd5, 0x0e, 0xde, 0x8d, 0x5f, 0xcf, 0x81, 0xb9, 0x7d, 0x91, 0xbb, 0x3f, 0x3b, 0xe0, 0xd2, + 0xd9, 0x9f, 0xce, 0x7b, 0xe1, 0x0c, 0x3f, 0xe6, 0x70, 0xda, 0x64, 0xf7, 0x06, 0x2f, 0x2d, 0x6d, + 0x63, 0x73, 0x7f, 0x72, 0xc0, 0xea, 0x99, 0x3f, 0xc2, 0xbb, 0xb3, 0xfa, 0x4e, 0x2a, 0x7b, 0x1f, + 0xbc, 0xac, 0xb2, 0x0d, 0xa8, 0x77, 0xfe, 0xfb, 0xa7, 0x0f, 0xaf, 0x3b, 0x3b, 0x5f, 0x3f, 0x3a, + 0xf2, 0x9d, 0xc7, 0x47, 0xbe, 0xf3, 0xcf, 0x91, 0xef, 0xdc, 0x3f, 0xf6, 0x3b, 0x8f, 0x8f, 0xfd, + 0xce, 0x5f, 0xc7, 0x7e, 0xe7, 0x9b, 0xf7, 0x73, 0x22, 0x8b, 0x3a, 0x0d, 0x11, 0x2b, 0xed, 0x83, + 0x10, 0x3d, 0xbb, 0x73, 0xeb, 0xe4, 0x1d, 0x6c, 0x6e, 0x46, 0xf7, 0x4e, 0x3f, 0x86, 0x72, 0x54, + 0x61, 0x91, 0x2e, 0xe8, 0xa1, 0xb9, 0xf9, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xcd, 0x7d, + 0x9d, 0x3d, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -167,6 +419,7 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type MsgClient interface { AssignConsumerKey(ctx context.Context, in *MsgAssignConsumerKey, opts ...grpc.CallOption) (*MsgAssignConsumerKeyResponse, error) + ConsumerAddition(ctx context.Context, in *MsgConsumerAddition, opts ...grpc.CallOption) (*MsgConsumerAdditionResponse, error) } type msgClient struct { @@ -186,9 +439,19 @@ func (c *msgClient) AssignConsumerKey(ctx context.Context, in *MsgAssignConsumer return out, nil } +func (c *msgClient) ConsumerAddition(ctx context.Context, in *MsgConsumerAddition, opts ...grpc.CallOption) (*MsgConsumerAdditionResponse, error) { + out := new(MsgConsumerAdditionResponse) + err := c.cc.Invoke(ctx, "/interchain_security.ccv.provider.v1.Msg/ConsumerAddition", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { AssignConsumerKey(context.Context, *MsgAssignConsumerKey) (*MsgAssignConsumerKeyResponse, error) + ConsumerAddition(context.Context, *MsgConsumerAddition) (*MsgConsumerAdditionResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -198,6 +461,9 @@ type UnimplementedMsgServer struct { func (*UnimplementedMsgServer) AssignConsumerKey(ctx context.Context, req *MsgAssignConsumerKey) (*MsgAssignConsumerKeyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AssignConsumerKey not implemented") } +func (*UnimplementedMsgServer) ConsumerAddition(ctx context.Context, req *MsgConsumerAddition) (*MsgConsumerAdditionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConsumerAddition not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -221,6 +487,24 @@ func _Msg_AssignConsumerKey_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _Msg_ConsumerAddition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgConsumerAddition) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ConsumerAddition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/interchain_security.ccv.provider.v1.Msg/ConsumerAddition", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ConsumerAddition(ctx, req.(*MsgConsumerAddition)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "interchain_security.ccv.provider.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -229,6 +513,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "AssignConsumerKey", Handler: _Msg_AssignConsumerKey_Handler, }, + { + MethodName: "ConsumerAddition", + Handler: _Msg_ConsumerAddition_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "interchain_security/ccv/provider/v1/tx.proto", @@ -308,6 +596,146 @@ func (m *MsgAssignConsumerKeyResponse) MarshalToSizedBuffer(dAtA []byte) (int, e return len(dAtA) - i, nil } +func (m *MsgConsumerAddition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgConsumerAddition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgConsumerAddition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Signer) > 0 { + i -= len(m.Signer) + copy(dAtA[i:], m.Signer) + i = encodeVarintTx(dAtA, i, uint64(len(m.Signer))) + i-- + dAtA[i] = 0x6a + } + if len(m.DistributionTransmissionChannel) > 0 { + i -= len(m.DistributionTransmissionChannel) + copy(dAtA[i:], m.DistributionTransmissionChannel) + i = encodeVarintTx(dAtA, i, uint64(len(m.DistributionTransmissionChannel))) + i-- + dAtA[i] = 0x62 + } + if m.HistoricalEntries != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.HistoricalEntries)) + i-- + dAtA[i] = 0x58 + } + if m.BlocksPerDistributionTransmission != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.BlocksPerDistributionTransmission)) + i-- + dAtA[i] = 0x50 + } + if len(m.ConsumerRedistributionFraction) > 0 { + i -= len(m.ConsumerRedistributionFraction) + copy(dAtA[i:], m.ConsumerRedistributionFraction) + i = encodeVarintTx(dAtA, i, uint64(len(m.ConsumerRedistributionFraction))) + i-- + dAtA[i] = 0x4a + } + n1, err1 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.TransferTimeoutPeriod, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.TransferTimeoutPeriod):]) + if err1 != nil { + return 0, err1 + } + i -= n1 + i = encodeVarintTx(dAtA, i, uint64(n1)) + i-- + dAtA[i] = 0x42 + n2, err2 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.CcvTimeoutPeriod, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.CcvTimeoutPeriod):]) + if err2 != nil { + return 0, err2 + } + i -= n2 + i = encodeVarintTx(dAtA, i, uint64(n2)) + i-- + dAtA[i] = 0x3a + n3, err3 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingPeriod, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingPeriod):]) + if err3 != nil { + return 0, err3 + } + i -= n3 + i = encodeVarintTx(dAtA, i, uint64(n3)) + i-- + dAtA[i] = 0x32 + n4, err4 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.SpawnTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.SpawnTime):]) + if err4 != nil { + return 0, err4 + } + i -= n4 + i = encodeVarintTx(dAtA, i, uint64(n4)) + i-- + dAtA[i] = 0x2a + if len(m.BinaryHash) > 0 { + i -= len(m.BinaryHash) + copy(dAtA[i:], m.BinaryHash) + i = encodeVarintTx(dAtA, i, uint64(len(m.BinaryHash))) + i-- + dAtA[i] = 0x22 + } + if len(m.GenesisHash) > 0 { + i -= len(m.GenesisHash) + copy(dAtA[i:], m.GenesisHash) + i = encodeVarintTx(dAtA, i, uint64(len(m.GenesisHash))) + i-- + dAtA[i] = 0x1a + } + { + size, err := m.InitialHeight.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTx(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgConsumerAdditionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgConsumerAdditionResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgConsumerAdditionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -353,6 +781,64 @@ func (m *MsgAssignConsumerKeyResponse) Size() (n int) { return n } +func (m *MsgConsumerAddition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.InitialHeight.Size() + n += 1 + l + sovTx(uint64(l)) + l = len(m.GenesisHash) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.BinaryHash) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.SpawnTime) + n += 1 + l + sovTx(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingPeriod) + n += 1 + l + sovTx(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.CcvTimeoutPeriod) + n += 1 + l + sovTx(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.TransferTimeoutPeriod) + n += 1 + l + sovTx(uint64(l)) + l = len(m.ConsumerRedistributionFraction) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.BlocksPerDistributionTransmission != 0 { + n += 1 + sovTx(uint64(m.BlocksPerDistributionTransmission)) + } + if m.HistoricalEntries != 0 { + n += 1 + sovTx(uint64(m.HistoricalEntries)) + } + l = len(m.DistributionTransmissionChannel) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Signer) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgConsumerAdditionResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -587,6 +1073,505 @@ func (m *MsgAssignConsumerKeyResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgConsumerAddition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgConsumerAddition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgConsumerAddition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialHeight", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.InitialHeight.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GenesisHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.GenesisHash = append(m.GenesisHash[:0], dAtA[iNdEx:postIndex]...) + if m.GenesisHash == nil { + m.GenesisHash = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BinaryHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BinaryHash = append(m.BinaryHash[:0], dAtA[iNdEx:postIndex]...) + if m.BinaryHash == nil { + m.BinaryHash = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpawnTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.SpawnTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.UnbondingPeriod, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CcvTimeoutPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.CcvTimeoutPeriod, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TransferTimeoutPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.TransferTimeoutPeriod, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsumerRedistributionFraction", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConsumerRedistributionFraction = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlocksPerDistributionTransmission", wireType) + } + m.BlocksPerDistributionTransmission = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlocksPerDistributionTransmission |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HistoricalEntries", wireType) + } + m.HistoricalEntries = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.HistoricalEntries |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DistributionTransmissionChannel", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DistributionTransmissionChannel = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgConsumerAdditionResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgConsumerAdditionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgConsumerAdditionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 From 9463ecf48e9058f6c0ac13fd8bba43416025bd57 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Wed, 1 Nov 2023 14:03:05 +0100 Subject: [PATCH 04/17] Added ConsumerRemoval message --- .../ccv/provider/v1/provider.proto | 3 + .../ccv/provider/v1/tx.proto | 23 +- x/ccv/provider/keeper/msg_server.go | 13 + x/ccv/provider/types/codec.go | 1 + x/ccv/provider/types/legacy_proposal.go | 2 +- x/ccv/provider/types/msg.go | 98 +++- x/ccv/provider/types/provider.pb.go | 175 +++--- x/ccv/provider/types/tx.pb.go | 543 ++++++++++++++++-- 8 files changed, 688 insertions(+), 170 deletions(-) diff --git a/proto/interchain_security/ccv/provider/v1/provider.proto b/proto/interchain_security/ccv/provider/v1/provider.proto index 779f4cd9b5..8c7fa8fe5f 100644 --- a/proto/interchain_security/ccv/provider/v1/provider.proto +++ b/proto/interchain_security/ccv/provider/v1/provider.proto @@ -94,7 +94,9 @@ message ConsumerAdditionProposal { // remove (and stop) a consumer chain. If it passes, all the consumer chain's // state is removed from the provider chain. The outstanding unbonding operation // funds are released. +// Deprecated: Use MsgConsumerRemoval instead message ConsumerRemovalProposal { + option deprecated = true; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; // the title of the proposal @@ -111,6 +113,7 @@ message ConsumerRemovalProposal { // ChangeRewardDenomsProposal is a governance proposal on the provider chain to // mutate the set of denoms accepted by the provider as rewards. + message ChangeRewardDenomsProposal { option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index 528c3783ce..a508341538 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -21,6 +21,9 @@ service Msg { rpc ConsumerAddition(MsgConsumerAddition) returns (MsgConsumerAdditionResponse); + + rpc ConsumerRemoval(MsgConsumerRemoval) + returns (MsgConsumerRemovalResponse); } message MsgAssignConsumerKey { @@ -106,8 +109,24 @@ message MsgConsumerAddition { string distribution_transmission_channel = 12; // signer address - string signer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"];; + string signer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; } // MsgConsumerAdditionResponse defines the Msg/MsgIBCSoftwareUpgrade response type -message MsgConsumerAdditionResponse {} \ No newline at end of file +message MsgConsumerAdditionResponse {} + +message MsgConsumerRemoval { + option (cosmos.msg.v1.signer) = "signer"; + + // the chain-id of the consumer chain to be stopped + 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 ]; + + // signer address + string signer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +message MsgConsumerRemovalResponse {} \ No newline at end of file diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index c265b536aa..87447ae243 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -121,3 +121,16 @@ func (k msgServer) ConsumerAddition(goCtx context.Context, msg *types.MsgConsume return &types.MsgConsumerAdditionResponse{}, nil } + +// ConsumerRemoval defines a rpc handler method for MsgConsumerRemoval +func (k msgServer) ConsumerRemoval( + goCtx context.Context, + msg *types.MsgConsumerRemoval) (*types.MsgConsumerRemovalResponse, error) { + if k.GetAuthority() != msg.Signer { + return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer) + } + + // TODO: Call keeper implementation ! + + return &types.MsgConsumerRemovalResponse{}, nil +} diff --git a/x/ccv/provider/types/codec.go b/x/ccv/provider/types/codec.go index 2127ae1a56..21892abad4 100644 --- a/x/ccv/provider/types/codec.go +++ b/x/ccv/provider/types/codec.go @@ -27,6 +27,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { (*sdk.Msg)(nil), &MsgAssignConsumerKey{}, &MsgConsumerAddition{}, + &MsgConsumerRemoval{}, ) registry.RegisterImplementations( (*govv1beta1.Content)(nil), diff --git a/x/ccv/provider/types/legacy_proposal.go b/x/ccv/provider/types/legacy_proposal.go index 5e0356e9e8..a7b96273b4 100644 --- a/x/ccv/provider/types/legacy_proposal.go +++ b/x/ccv/provider/types/legacy_proposal.go @@ -194,7 +194,7 @@ func (sccp *ConsumerRemovalProposal) ValidateBasic() error { } if sccp.StopTime.IsZero() { - return errorsmod.Wrap(ErrInvalidConsumerRemovalProp, "spawn time cannot be zero") + return errorsmod.Wrap(ErrInvalidConsumerRemovalProp, "stop time cannot be zero") } return nil } diff --git a/x/ccv/provider/types/msg.go b/x/ccv/provider/types/msg.go index 365dc5df63..307daba2ef 100644 --- a/x/ccv/provider/types/msg.go +++ b/x/ccv/provider/types/msg.go @@ -5,8 +5,10 @@ import ( "strings" "time" + errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ccvtypes "github.com/cosmos/interchain-security/v3/x/ccv/types" ) // provider message types @@ -15,11 +17,13 @@ const ( ) var ( - _ sdk.Msg = &MsgAssignConsumerKey{} - _ sdk.Msg = &MsgConsumerAddition{} + _ sdk.Msg = (*MsgAssignConsumerKey)(nil) + _ sdk.Msg = (*MsgConsumerAddition)(nil) + _ sdk.Msg = (*MsgConsumerRemoval)(nil) - _ sdk.HasValidateBasic = &MsgAssignConsumerKey{} - _ sdk.HasValidateBasic = &MsgConsumerAddition{} + _ sdk.HasValidateBasic = (*MsgAssignConsumerKey)(nil) + _ sdk.HasValidateBasic = (*MsgConsumerAddition)(nil) + _ sdk.HasValidateBasic = (*MsgConsumerRemoval)(nil) ) // NewMsgAssignConsumerKey creates a new MsgAssignConsumerKey instance. @@ -104,7 +108,6 @@ func ParseConsumerKeyFromJson(jsonStr string) (pkType, key string, err error) { } // NewMsgConsumerAddition creates a new MsgConsumerAddition instance. -// Delegator address and validator address are the same. func NewMsgConsumerAddition(signer, chainID string, initialHeight clienttypes.Height, genesisHash, binaryHash []byte, spawnTime time.Time, @@ -128,19 +131,10 @@ func NewMsgConsumerAddition(signer, chainID string, CcvTimeoutPeriod: ccvTimeoutPeriod, TransferTimeoutPeriod: transferTimeoutPeriod, UnbondingPeriod: unbondingPeriod, + Signer: signer, } } -// TODO: remove if not needed -/* // Route implements the sdk.Msg interface. -func (msg MsgConsumerAddition) Route() string { return RouterKey } - -// Type implements the sdk.Msg interface. -func (msg MsgConsumerAddition) Type() string { - return TypeMsgConsumerAdditionKey -} -*/ - // GetSigners implements the sdk.Msg interface. It returns the address(es) that // must sign over msg.GetSignBytes(). // If the validator address is not same as delegator's, then the validator must @@ -154,24 +148,76 @@ func (msg *MsgConsumerAddition) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{valAddr.Bytes()} } -// GetSignBytes returns the message bytes to sign over. -func (msg *MsgConsumerAddition) GetSignBytes() []byte { - bz := ModuleCdc.MustMarshalJSON(msg) - return sdk.MustSortJSON(bz) -} - // ValidateBasic implements the sdk.Msg interface. func (msg *MsgConsumerAddition) ValidateBasic() error { if strings.TrimSpace(msg.ChainId) == "" { return ErrBlankConsumerChainID } - //TODO + + if strings.TrimSpace(msg.ChainId) == "" { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "consumer chain id must not be blank") + } + + if msg.InitialHeight.IsZero() { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "initial height cannot be zero") + } + + if len(msg.GenesisHash) == 0 { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "genesis hash cannot be empty") + } + if len(msg.BinaryHash) == 0 { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "binary hash cannot be empty") + } + + if msg.SpawnTime.IsZero() { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "spawn time cannot be zero") + } + + if err := ccvtypes.ValidateStringFraction(msg.ConsumerRedistributionFraction); err != nil { + return errorsmod.Wrapf(ErrInvalidConsumerAdditionProposal, "consumer redistribution fraction is invalid: %s", err) + } + + if err := ccvtypes.ValidatePositiveInt64(msg.BlocksPerDistributionTransmission); err != nil { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "blocks per distribution transmission cannot be < 1") + } + + if err := ccvtypes.ValidateDistributionTransmissionChannel(msg.DistributionTransmissionChannel); err != nil { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "distribution transmission channel") + } + + if err := ccvtypes.ValidatePositiveInt64(msg.HistoricalEntries); err != nil { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "historical entries cannot be < 1") + } + + if err := ccvtypes.ValidateDuration(msg.CcvTimeoutPeriod); err != nil { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "ccv timeout period cannot be zero") + } + + if err := ccvtypes.ValidateDuration(msg.TransferTimeoutPeriod); err != nil { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "transfer timeout period cannot be zero") + } + + if err := ccvtypes.ValidateDuration(msg.UnbondingPeriod); err != nil { + return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "unbonding period cannot be zero") + } + return nil } -// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces -/* func (msg *MsgConsumerAddition) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { - //return unpacker.UnpackAny(msg., new(exported.ClientState)) +// NewMsgConsumerRemoval creates a new MsgConsumerRemoval instance +func NewMsgConsumerRemoval(signer string) *MsgConsumerRemoval { + //@bermuell: TODO finsh implementation! + return &MsgConsumerRemoval{} +} + +func (msg *MsgConsumerRemoval) ValidateBasic() error { + + if strings.TrimSpace(msg.ChainId) == "" { + return errorsmod.Wrap(ErrInvalidConsumerRemovalProp, "consumer chain id must not be blank") + } + + if msg.StopTime.IsZero() { + return errorsmod.Wrap(ErrInvalidConsumerRemovalProp, "spawn time cannot be zero") + } return nil } -*/ diff --git a/x/ccv/provider/types/provider.pb.go b/x/ccv/provider/types/provider.pb.go index e4392171a1..95d02de611 100644 --- a/x/ccv/provider/types/provider.pb.go +++ b/x/ccv/provider/types/provider.pb.go @@ -132,6 +132,9 @@ var xxx_messageInfo_ConsumerAdditionProposal proto.InternalMessageInfo // remove (and stop) a consumer chain. If it passes, all the consumer chain's // state is removed from the provider chain. The outstanding unbonding operation // funds are released. +// Deprecated: Use MsgConsumerRemoval instead +// +// Deprecated: Do not use. type ConsumerRemovalProposal struct { // the title of the proposal Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -205,8 +208,6 @@ func (m *ConsumerRemovalProposal) GetStopTime() time.Time { return time.Time{} } -// ChangeRewardDenomsProposal is a governance proposal on the provider chain to -// mutate the set of denoms accepted by the provider as rewards. type ChangeRewardDenomsProposal struct { // the title of the proposal Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -1356,115 +1357,115 @@ func init() { } var fileDescriptor_f22ec409a72b7b72 = []byte{ - // 1717 bytes of a gzipped FileDescriptorProto + // 1719 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x6f, 0x1b, 0xc7, 0x15, 0xd7, 0x8a, 0x94, 0x2c, 0x3e, 0xea, 0xcb, 0x2b, 0x3b, 0xa6, 0x54, 0x95, 0x92, 0x37, 0x6d, - 0xaa, 0x22, 0xf0, 0x32, 0x92, 0x51, 0x20, 0x30, 0x1a, 0x04, 0x12, 0x95, 0xc4, 0x8a, 0x9b, 0x58, + 0xaa, 0x22, 0xf0, 0x32, 0x92, 0x51, 0x20, 0x10, 0x1a, 0x04, 0x12, 0x95, 0xc4, 0x8a, 0x9b, 0x58, 0x59, 0xa9, 0x32, 0xda, 0x1e, 0x16, 0xc3, 0xd9, 0x31, 0x39, 0xd0, 0xee, 0xce, 0x66, 0x66, 0xb8, 0x36, 0x2f, 0x3d, 0xf7, 0x98, 0xde, 0x82, 0x9e, 0xd2, 0xfe, 0x0d, 0xfd, 0x0b, 0x7a, 0x0a, 0x7a, - 0x69, 0x8e, 0x3d, 0xa5, 0x85, 0x7c, 0xe8, 0xa1, 0x7f, 0x44, 0x8b, 0x99, 0xd9, 0x2f, 0x52, 0x1f, + 0x4a, 0x6f, 0x3d, 0xa5, 0x85, 0x7d, 0xe8, 0xa1, 0x7f, 0x44, 0x8b, 0x99, 0xd9, 0x2f, 0x52, 0x1f, 0xa1, 0x11, 0xe4, 0xb6, 0xf3, 0xe6, 0xbd, 0xdf, 0xfb, 0x7e, 0x6f, 0x48, 0xd8, 0xa3, 0xb1, 0x24, 0x1c, 0x0f, 0x10, 0x8d, 0x7d, 0x41, 0xf0, 0x90, 0x53, 0x39, 0xea, 0x60, 0x9c, 0x76, 0x12, 0xce, 0x52, 0x1a, 0x10, 0xde, 0x49, 0x77, 0x8b, 0x6f, 0x37, 0xe1, 0x4c, 0x32, 0xfb, 0xcd, 0x2b, 0x64, 0x5c, 0x8c, 0x53, 0xb7, 0xe0, 0x4b, 0x77, 0x37, 0xde, 0xb9, 0x0e, 0x38, 0xdd, 0xed, 0x88, 0x01, - 0xe2, 0x24, 0xf0, 0x31, 0x8b, 0xc5, 0x30, 0xca, 0x61, 0x37, 0x7e, 0x7a, 0x83, 0xc4, 0x0b, 0xca, + 0xe2, 0x24, 0xf0, 0x31, 0x8b, 0xc5, 0x30, 0xca, 0x61, 0x37, 0x7e, 0x7a, 0x83, 0xc4, 0x73, 0xca, 0x49, 0xc6, 0x76, 0xa7, 0xcf, 0xfa, 0x4c, 0x7f, 0x76, 0xd4, 0x57, 0x46, 0xdd, 0xea, 0x33, 0xd6, - 0x0f, 0x49, 0x47, 0x9f, 0x7a, 0xc3, 0xe7, 0x1d, 0x49, 0x23, 0x22, 0x24, 0x8a, 0x92, 0x8c, 0xa1, + 0x0f, 0x49, 0x47, 0x9f, 0x7a, 0xc3, 0x67, 0x1d, 0x49, 0x23, 0x22, 0x24, 0x8a, 0x92, 0x8c, 0xa1, 0x3d, 0xc9, 0x10, 0x0c, 0x39, 0x92, 0x94, 0xc5, 0x39, 0x00, 0xed, 0xe1, 0x0e, 0x66, 0x9c, 0x74, 0x70, 0x48, 0x49, 0x2c, 0x95, 0x56, 0xf3, 0x95, 0x31, 0x74, 0x14, 0x43, 0x48, 0xfb, 0x03, 0x69, 0xc8, 0xa2, 0x23, 0x49, 0x1c, 0x10, 0x1e, 0x51, 0xc3, 0x5c, 0x9e, 0x32, 0x81, 0xcd, 0xca, 0x3d, - 0xe6, 0xa3, 0x44, 0xb2, 0xce, 0x39, 0x19, 0x89, 0xec, 0xf6, 0x2d, 0xcc, 0x44, 0xc4, 0x44, 0x87, + 0xe6, 0xa3, 0x44, 0xb2, 0xce, 0x05, 0x19, 0x89, 0xec, 0xf6, 0x2d, 0xcc, 0x44, 0xc4, 0x44, 0x87, 0xa8, 0x88, 0xc5, 0x98, 0x74, 0xd2, 0xdd, 0x1e, 0x91, 0x68, 0xb7, 0x20, 0xe4, 0x76, 0x67, 0x7c, 0x3d, 0x24, 0x4a, 0x1e, 0xcc, 0x68, 0x6e, 0xf7, 0xba, 0xb9, 0xf7, 0x4d, 0x44, 0xcc, 0xc1, 0x5c, - 0x39, 0xff, 0x9b, 0x87, 0x56, 0x37, 0x8b, 0xf1, 0x7e, 0x10, 0x50, 0xe5, 0xed, 0x31, 0x67, 0x09, + 0x39, 0xff, 0x9b, 0x87, 0x56, 0x37, 0x8b, 0xf1, 0x41, 0x10, 0x50, 0xe5, 0xed, 0x09, 0x67, 0x09, 0x13, 0x28, 0xb4, 0xef, 0xc0, 0x9c, 0xa4, 0x32, 0x24, 0x2d, 0x6b, 0xdb, 0xda, 0x69, 0x78, 0xe6, 0x60, 0x6f, 0x43, 0x33, 0x20, 0x02, 0x73, 0x9a, 0x28, 0xe6, 0xd6, 0xac, 0xbe, 0xab, 0x92, 0xec, - 0x75, 0x58, 0x30, 0x29, 0xa2, 0x41, 0xab, 0xa6, 0xaf, 0x6f, 0xe9, 0xf3, 0x51, 0x60, 0x7f, 0x04, + 0x75, 0x58, 0x30, 0x29, 0xa2, 0x41, 0xab, 0xa6, 0xaf, 0x6f, 0xe9, 0xf3, 0x71, 0x60, 0x7f, 0x04, 0xcb, 0x34, 0xa6, 0x92, 0xa2, 0xd0, 0x1f, 0x10, 0x15, 0xa8, 0x56, 0x7d, 0xdb, 0xda, 0x69, 0xee, - 0x6d, 0xb8, 0xb4, 0x87, 0x5d, 0x15, 0x5b, 0x37, 0x8b, 0x68, 0xba, 0xeb, 0x3e, 0xd6, 0x1c, 0x07, + 0x6d, 0xb8, 0xb4, 0x87, 0x5d, 0x15, 0x5b, 0x37, 0x8b, 0x68, 0xba, 0xeb, 0x3e, 0xd2, 0x1c, 0x87, 0xf5, 0xaf, 0xbf, 0xdd, 0x9a, 0xf1, 0x96, 0x32, 0x39, 0x43, 0xb4, 0xef, 0xc3, 0x62, 0x9f, 0xc4, 0x44, 0x50, 0xe1, 0x0f, 0x90, 0x18, 0xb4, 0xe6, 0xb6, 0xad, 0x9d, 0x45, 0xaf, 0x99, 0xd1, 0x1e, - 0x23, 0x31, 0xb0, 0xb7, 0xa0, 0xd9, 0xa3, 0x31, 0xe2, 0x23, 0xc3, 0x31, 0xaf, 0x39, 0xc0, 0x90, - 0x34, 0x43, 0x17, 0x40, 0x24, 0xe8, 0x45, 0xec, 0xab, 0x42, 0x68, 0xdd, 0xca, 0x0c, 0x31, 0x45, - 0xe0, 0xe6, 0x45, 0xe0, 0x9e, 0xe6, 0x55, 0x72, 0xb0, 0xa0, 0x0c, 0xf9, 0xe2, 0x5f, 0x5b, 0x96, + 0x21, 0x31, 0xb0, 0xb7, 0xa0, 0xd9, 0xa3, 0x31, 0xe2, 0x23, 0xc3, 0x31, 0xaf, 0x39, 0xc0, 0x90, + 0x34, 0x43, 0x17, 0x40, 0x24, 0xe8, 0x79, 0xec, 0xab, 0x42, 0x68, 0xdd, 0xca, 0x0c, 0x31, 0x45, + 0xe0, 0xe6, 0x45, 0xe0, 0x9e, 0xe5, 0x55, 0x72, 0xb8, 0xa0, 0x0c, 0xf9, 0xe2, 0x5f, 0x5b, 0x96, 0xd7, 0xd0, 0x72, 0xea, 0xc6, 0xfe, 0x14, 0x56, 0x87, 0x71, 0x8f, 0xc5, 0x01, 0x8d, 0xfb, 0x7e, - 0x42, 0x38, 0x65, 0x41, 0x6b, 0x41, 0x43, 0xad, 0x5f, 0x82, 0x3a, 0xcc, 0xea, 0xc9, 0x20, 0x7d, - 0xa9, 0x90, 0x56, 0x0a, 0xe1, 0x63, 0x2d, 0x6b, 0x7f, 0x06, 0x36, 0xc6, 0xa9, 0x36, 0x89, 0x0d, - 0x65, 0x8e, 0xd8, 0x98, 0x1e, 0x71, 0x15, 0xe3, 0xf4, 0xd4, 0x48, 0x67, 0x90, 0xbf, 0x83, 0x7b, - 0x92, 0xa3, 0x58, 0x3c, 0x27, 0x7c, 0x12, 0x17, 0xa6, 0xc7, 0xbd, 0x9b, 0x63, 0x8c, 0x83, 0x3f, - 0x86, 0xed, 0xbc, 0x49, 0x7d, 0x4e, 0x02, 0x2a, 0x24, 0xa7, 0xbd, 0xa1, 0x92, 0xf5, 0x9f, 0x73, + 0x42, 0x38, 0x65, 0x41, 0x6b, 0x41, 0x43, 0xad, 0x5f, 0x82, 0x3a, 0xca, 0xea, 0xc9, 0x20, 0x7d, + 0xa9, 0x90, 0x56, 0x0a, 0xe1, 0x13, 0x2d, 0x6b, 0x7f, 0x06, 0x36, 0xc6, 0xa9, 0x36, 0x89, 0x0d, + 0x65, 0x8e, 0xd8, 0x98, 0x1e, 0x71, 0x15, 0xe3, 0xf4, 0xcc, 0x48, 0x67, 0x90, 0xbf, 0x83, 0x7b, + 0x92, 0xa3, 0x58, 0x3c, 0x23, 0x7c, 0x12, 0x17, 0xa6, 0xc7, 0xbd, 0x9b, 0x63, 0x8c, 0x83, 0x3f, + 0x82, 0xed, 0xbc, 0x49, 0x7d, 0x4e, 0x02, 0x2a, 0x24, 0xa7, 0xbd, 0xa1, 0x92, 0xf5, 0x9f, 0x71, 0x84, 0x75, 0x8d, 0x34, 0x75, 0x11, 0xb4, 0x73, 0x3e, 0x6f, 0x8c, 0xed, 0xc3, 0x8c, 0xcb, 0x7e, - 0x0a, 0x3f, 0xe9, 0x85, 0x0c, 0x9f, 0x0b, 0x65, 0x9c, 0x3f, 0x86, 0xa4, 0x55, 0x47, 0x54, 0x08, - 0x85, 0xb6, 0xb8, 0x6d, 0xed, 0xd4, 0xbc, 0xfb, 0x86, 0xf7, 0x98, 0xf0, 0xc3, 0x0a, 0xe7, 0x69, + 0x02, 0x3f, 0xe9, 0x85, 0x0c, 0x5f, 0x08, 0x65, 0x9c, 0x3f, 0x86, 0xa4, 0x55, 0x47, 0x54, 0x08, + 0x85, 0xb6, 0xb8, 0x6d, 0xed, 0xd4, 0xbc, 0xfb, 0x86, 0xf7, 0x84, 0xf0, 0xa3, 0x0a, 0xe7, 0x59, 0x85, 0xd1, 0x7e, 0x00, 0xf6, 0x80, 0x0a, 0xc9, 0x38, 0xc5, 0x28, 0xf4, 0x49, 0x2c, 0x39, 0x25, 0xa2, 0xb5, 0xa4, 0xc5, 0x6f, 0x97, 0x37, 0x1f, 0x98, 0x0b, 0xfb, 0x63, 0xb8, 0x7f, 0xad, 0x52, 0x1f, 0x0f, 0x50, 0x1c, 0x93, 0xb0, 0xb5, 0xac, 0x5d, 0xd9, 0x0a, 0xae, 0xd1, 0xd9, 0x35, 0x6c, - 0x8f, 0x76, 0xfe, 0xf0, 0xd5, 0xd6, 0xcc, 0x97, 0x5f, 0x6d, 0xcd, 0xfc, 0xfd, 0xaf, 0x0f, 0x36, - 0xb2, 0x8e, 0xeb, 0xb3, 0xd4, 0xcd, 0xba, 0xd3, 0xed, 0xb2, 0x58, 0x92, 0x58, 0xb6, 0x2c, 0xe7, - 0x1f, 0x16, 0xdc, 0xeb, 0x16, 0x81, 0x89, 0x58, 0x8a, 0xc2, 0x1f, 0xb2, 0x01, 0xf7, 0xa1, 0x21, - 0x24, 0x4b, 0x4c, 0xc9, 0xd7, 0x5f, 0xa3, 0xe4, 0x17, 0x94, 0x98, 0xba, 0x78, 0xd4, 0xbe, 0xd9, - 0x27, 0xe7, 0x6f, 0x16, 0x6c, 0xa8, 0x38, 0xf4, 0x89, 0x47, 0x5e, 0x20, 0x1e, 0x1c, 0x92, 0x98, - 0x45, 0xe2, 0x7b, 0x3b, 0xe5, 0xc0, 0x52, 0xa0, 0x91, 0x7c, 0xc9, 0x7c, 0x14, 0x28, 0xcf, 0x6a, - 0x86, 0x47, 0x11, 0x4f, 0xd9, 0x7e, 0x10, 0xd8, 0x3b, 0xb0, 0x5a, 0xf2, 0x70, 0x15, 0x4d, 0xe5, - 0xa4, 0x62, 0x5b, 0xce, 0xd9, 0x74, 0x8c, 0xbf, 0xdb, 0x89, 0xff, 0x5a, 0xb0, 0xfa, 0x51, 0xc8, - 0x7a, 0x28, 0x3c, 0x09, 0x91, 0x18, 0xa8, 0x1a, 0x19, 0xa9, 0xe0, 0x71, 0x92, 0x35, 0xa7, 0x36, - 0x7f, 0xea, 0xe0, 0x29, 0x31, 0x3d, 0x2e, 0xde, 0x87, 0xdb, 0x45, 0xbb, 0x14, 0x39, 0xd2, 0xde, - 0x1e, 0xac, 0x5d, 0x7c, 0xbb, 0xb5, 0x92, 0x97, 0x42, 0x57, 0xe7, 0xeb, 0xd0, 0x5b, 0xc1, 0x63, - 0x84, 0xc0, 0x6e, 0x43, 0x93, 0xf6, 0xb0, 0x2f, 0xc8, 0xe7, 0x7e, 0x3c, 0x8c, 0x74, 0x7a, 0xeb, - 0x5e, 0x83, 0xf6, 0xf0, 0x09, 0xf9, 0xfc, 0xd3, 0x61, 0x64, 0x3f, 0x84, 0x37, 0xf2, 0x1d, 0xeb, - 0xa7, 0x28, 0xd4, 0x1b, 0x54, 0x85, 0x8b, 0xeb, 0x6c, 0x2f, 0x7a, 0x6b, 0xf9, 0xed, 0x19, 0x0a, - 0x95, 0xb2, 0xfd, 0x20, 0xe0, 0xce, 0x7f, 0xe6, 0x60, 0xfe, 0x18, 0x71, 0x14, 0x09, 0xfb, 0x14, - 0x56, 0x24, 0x89, 0x92, 0x10, 0x49, 0xe2, 0x9b, 0x51, 0x9c, 0x79, 0xfa, 0xb6, 0x1e, 0xd1, 0xd5, - 0xed, 0xe6, 0x56, 0xf6, 0x59, 0xba, 0xeb, 0x76, 0x35, 0xf5, 0x44, 0x22, 0x49, 0xbc, 0xe5, 0x1c, - 0xc3, 0x10, 0xed, 0x77, 0xa1, 0x25, 0xf9, 0x50, 0xc8, 0x72, 0x48, 0x96, 0xd3, 0xc1, 0xe4, 0xfa, - 0x8d, 0xfc, 0xde, 0xcc, 0x95, 0x62, 0x2a, 0x5c, 0x3d, 0x0f, 0x6b, 0xdf, 0x67, 0x1e, 0x9e, 0xc0, - 0x9a, 0x5a, 0x26, 0x93, 0x98, 0xf5, 0xe9, 0x31, 0x6f, 0x2b, 0xf9, 0x71, 0xd0, 0xcf, 0xc0, 0x4e, - 0x05, 0x9e, 0xc4, 0x9c, 0x7b, 0x0d, 0x3b, 0x53, 0x81, 0xc7, 0x21, 0x03, 0xd8, 0x14, 0xaa, 0xf8, - 0xfc, 0x88, 0x48, 0x3d, 0x5d, 0x93, 0x90, 0xc4, 0x54, 0x0c, 0x72, 0xf0, 0xf9, 0xe9, 0xc1, 0xd7, - 0x35, 0xd0, 0x27, 0x0a, 0xc7, 0xcb, 0x61, 0x32, 0x2d, 0x5d, 0x68, 0x5f, 0xad, 0xa5, 0x48, 0xd0, - 0x2d, 0x9d, 0xa0, 0x1f, 0x5d, 0x01, 0x51, 0x64, 0x69, 0x0f, 0xee, 0x46, 0xe8, 0xa5, 0x2f, 0x07, - 0x9c, 0x49, 0x19, 0x92, 0xc0, 0x4f, 0x10, 0x3e, 0x27, 0x52, 0xe8, 0x55, 0x58, 0xf3, 0xd6, 0x22, - 0xf4, 0xf2, 0x34, 0xbf, 0x3b, 0x36, 0x57, 0xb6, 0x80, 0xb7, 0x2a, 0x9b, 0x43, 0x4d, 0x0a, 0x5f, - 0x37, 0xa9, 0xcf, 0x49, 0x5f, 0x8d, 0x57, 0x64, 0x96, 0x08, 0x21, 0xc5, 0xf6, 0xcb, 0xfa, 0x55, - 0xbd, 0x73, 0x2a, 0x0d, 0x4b, 0xe3, 0xec, 0x89, 0xe0, 0x94, 0x0b, 0xa6, 0x98, 0x3b, 0x5e, 0x05, - 0xeb, 0x43, 0x42, 0x9c, 0x9f, 0x43, 0x43, 0x37, 0xf4, 0x3e, 0x3e, 0x17, 0xf6, 0x26, 0x34, 0x54, - 0x67, 0x10, 0x21, 0x88, 0x68, 0x59, 0x7a, 0x4e, 0x94, 0x04, 0x47, 0xc2, 0xfa, 0x75, 0x4f, 0x23, - 0x61, 0x3f, 0x83, 0x5b, 0x09, 0xd1, 0x7b, 0x5b, 0x0b, 0x36, 0xf7, 0xde, 0x73, 0xa7, 0x78, 0xf2, - 0xba, 0xd7, 0x01, 0x7a, 0x39, 0x9a, 0xc3, 0xcb, 0x07, 0xd9, 0xc4, 0x3a, 0x10, 0xf6, 0xd9, 0xa4, - 0xd2, 0x5f, 0xbe, 0x96, 0xd2, 0x09, 0xbc, 0x52, 0xe7, 0xdb, 0xd0, 0xdc, 0x37, 0x6e, 0xff, 0x8a, - 0x0a, 0x79, 0x39, 0x2c, 0x8b, 0xd5, 0xb0, 0x7c, 0x0c, 0xcb, 0xd9, 0x96, 0x3b, 0x65, 0x7a, 0x28, - 0xd9, 0x3f, 0x06, 0xc8, 0xd6, 0xa3, 0x1a, 0x66, 0x66, 0xac, 0x37, 0x32, 0xca, 0x51, 0x30, 0xb6, - 0x8d, 0x66, 0xc7, 0xb6, 0x91, 0xe3, 0xc1, 0xca, 0x99, 0xc0, 0xbf, 0xce, 0x9f, 0x40, 0x4f, 0x13, - 0x61, 0xdf, 0x85, 0x79, 0xd5, 0x47, 0x19, 0x50, 0xdd, 0x9b, 0x4b, 0x05, 0x3e, 0xd2, 0x93, 0xbd, - 0x7c, 0x66, 0xb1, 0xc4, 0xa7, 0x81, 0x68, 0xcd, 0x6e, 0xd7, 0x76, 0xea, 0xde, 0xf2, 0xb0, 0x14, - 0x3f, 0x0a, 0x84, 0xf3, 0x1b, 0x68, 0x56, 0x00, 0xed, 0x65, 0x98, 0x2d, 0xb0, 0x66, 0x69, 0x60, - 0x3f, 0x82, 0xf5, 0x12, 0x68, 0x7c, 0x14, 0x1b, 0xc4, 0x86, 0x77, 0xaf, 0x60, 0x18, 0x9b, 0xc6, - 0xc2, 0x79, 0x0a, 0x77, 0x8e, 0xca, 0xc6, 0x2f, 0x06, 0xfd, 0x98, 0x87, 0xd6, 0xf8, 0xbe, 0xdd, - 0x84, 0x46, 0xf1, 0x33, 0x43, 0x7b, 0x5f, 0xf7, 0x4a, 0x82, 0x13, 0xc1, 0xea, 0x99, 0xc0, 0x27, - 0x24, 0x0e, 0x4a, 0xb0, 0x6b, 0x02, 0x70, 0x30, 0x09, 0x34, 0xf5, 0x5b, 0xb5, 0x54, 0xc7, 0x60, - 0xfd, 0x0c, 0x85, 0x34, 0x40, 0x92, 0xf1, 0x13, 0x22, 0xcd, 0x92, 0xce, 0xdb, 0xd1, 0x83, 0x7a, - 0x48, 0x85, 0xcc, 0x2a, 0xeb, 0xdd, 0x6b, 0x2b, 0x2b, 0xdd, 0x75, 0xaf, 0x03, 0x39, 0x44, 0x12, - 0x65, 0xbd, 0xa8, 0xb1, 0x9c, 0x9f, 0xc1, 0xda, 0x27, 0x48, 0x0e, 0x39, 0x09, 0xc6, 0x72, 0xbc, - 0x0a, 0x35, 0x95, 0x3f, 0x4b, 0xe7, 0x4f, 0x7d, 0x3a, 0x7f, 0xb1, 0xa0, 0xf5, 0xc1, 0xcb, 0x84, - 0x71, 0x49, 0x82, 0x4b, 0x11, 0xb9, 0x21, 0xbc, 0xe7, 0xb0, 0xa6, 0x82, 0x25, 0x48, 0x1c, 0xf8, - 0x85, 0x9f, 0x26, 0x8f, 0xcd, 0xbd, 0x5f, 0x4c, 0xd5, 0x1d, 0x93, 0xea, 0x32, 0x07, 0x6e, 0xa7, - 0x13, 0x74, 0xe1, 0xfc, 0xd1, 0x82, 0xd6, 0x13, 0x32, 0xda, 0x17, 0x82, 0xf6, 0xe3, 0x88, 0xc4, - 0x52, 0xcd, 0x41, 0x84, 0x89, 0xfa, 0xb4, 0xdf, 0x84, 0xa5, 0x62, 0xef, 0xea, 0x75, 0x6b, 0xe9, - 0x75, 0xbb, 0x98, 0x13, 0x55, 0x83, 0xd9, 0x8f, 0x00, 0x12, 0x4e, 0x52, 0x1f, 0xfb, 0xe7, 0x64, - 0x94, 0x65, 0x71, 0xb3, 0xba, 0x46, 0xcd, 0x8f, 0x40, 0xf7, 0x78, 0xd8, 0x0b, 0x29, 0x7e, 0x42, - 0x46, 0xde, 0x82, 0xe2, 0xef, 0x3e, 0x21, 0x23, 0xf5, 0x6e, 0x4a, 0xd8, 0x0b, 0xc2, 0xf5, 0xee, - 0xab, 0x79, 0xe6, 0xe0, 0xfc, 0xc9, 0x82, 0x7b, 0x45, 0x3a, 0xf2, 0x72, 0x3d, 0x1e, 0xf6, 0x94, - 0xc4, 0x0d, 0x71, 0xbb, 0x64, 0xed, 0xec, 0x15, 0xd6, 0xbe, 0x0f, 0x8b, 0x45, 0x83, 0x28, 0x7b, - 0x6b, 0x53, 0xd8, 0xdb, 0xcc, 0x25, 0x9e, 0x90, 0x91, 0xf3, 0xfb, 0x8a, 0x6d, 0x07, 0xa3, 0xca, - 0xec, 0xe3, 0xdf, 0x61, 0x5b, 0xa1, 0xb6, 0x6a, 0x1b, 0xae, 0xca, 0x5f, 0x72, 0xa0, 0x76, 0xd9, - 0x01, 0xe7, 0xcf, 0x16, 0xdc, 0xa9, 0x6a, 0x15, 0xa7, 0xec, 0x98, 0x0f, 0x63, 0x72, 0x93, 0xf6, - 0xb2, 0xfd, 0x66, 0xab, 0xed, 0xf7, 0x0c, 0x96, 0xc7, 0x8c, 0x12, 0x59, 0x34, 0xde, 0x99, 0xaa, - 0xc6, 0x2a, 0xd3, 0xd5, 0x5b, 0xaa, 0xfa, 0x21, 0x0e, 0x9e, 0x7d, 0x7d, 0xd1, 0xb6, 0xbe, 0xb9, - 0x68, 0x5b, 0xff, 0xbe, 0x68, 0x5b, 0x5f, 0xbc, 0x6a, 0xcf, 0x7c, 0xf3, 0xaa, 0x3d, 0xf3, 0xcf, - 0x57, 0xed, 0x99, 0xdf, 0xbe, 0xd7, 0xa7, 0x72, 0x30, 0xec, 0xb9, 0x98, 0x45, 0xd9, 0x8f, 0xf6, - 0x4e, 0xa9, 0xeb, 0x41, 0xf1, 0xf7, 0x47, 0xfa, 0xb0, 0xf3, 0x72, 0xfc, 0xef, 0x18, 0x39, 0x4a, - 0x88, 0xe8, 0xcd, 0xeb, 0xa9, 0xf0, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xb7, 0xf2, - 0xf2, 0xbf, 0x11, 0x00, 0x00, + 0xfb, 0x3b, 0x7f, 0xf8, 0x6a, 0x6b, 0xe6, 0xcb, 0xaf, 0xb6, 0x66, 0xfe, 0xfe, 0xd7, 0x07, 0x1b, + 0x59, 0xc7, 0xf5, 0x59, 0xea, 0x66, 0xdd, 0xe9, 0x76, 0x59, 0x2c, 0x49, 0x2c, 0x5b, 0x96, 0xf3, + 0x0f, 0x0b, 0xee, 0x75, 0x8b, 0xc0, 0x44, 0x2c, 0x45, 0xe1, 0x0f, 0xd9, 0x80, 0x07, 0xd0, 0x10, + 0x92, 0x25, 0xa6, 0xe4, 0xeb, 0xaf, 0x51, 0xf2, 0x0b, 0x4a, 0x4c, 0x5d, 0xec, 0x6f, 0x7f, 0xa7, + 0x4f, 0x7f, 0xb3, 0x60, 0x43, 0x45, 0xa2, 0x4f, 0x3c, 0xf2, 0x1c, 0xf1, 0xe0, 0x88, 0xc4, 0x2c, + 0x12, 0xdf, 0xdb, 0x2d, 0x07, 0x96, 0x02, 0x8d, 0xe4, 0x4b, 0xe6, 0xa3, 0x40, 0xf9, 0x56, 0x33, + 0x3c, 0x8a, 0x78, 0xc6, 0x0e, 0x82, 0xc0, 0xde, 0x81, 0xd5, 0x92, 0x87, 0xab, 0x78, 0x2a, 0x37, + 0x15, 0xdb, 0x72, 0xce, 0xa6, 0xa3, 0x4c, 0xf6, 0xdb, 0x37, 0xbb, 0xe1, 0xfc, 0xd7, 0x82, 0xd5, + 0x8f, 0x42, 0xd6, 0x43, 0xe1, 0x69, 0x88, 0xc4, 0x40, 0x55, 0xc9, 0x48, 0x85, 0x8f, 0x93, 0xac, + 0x3d, 0xb5, 0xf9, 0x53, 0x87, 0x4f, 0x89, 0xe9, 0x81, 0xf1, 0x3e, 0xdc, 0x2e, 0x1a, 0xa6, 0xc8, + 0x92, 0xf6, 0xf6, 0x70, 0xed, 0xe5, 0xb7, 0x5b, 0x2b, 0x79, 0x31, 0x74, 0x75, 0xc6, 0x8e, 0xbc, + 0x15, 0x3c, 0x46, 0x08, 0xec, 0x36, 0x34, 0x69, 0x0f, 0xfb, 0x82, 0x7c, 0xee, 0xc7, 0xc3, 0x48, + 0x27, 0xb8, 0xee, 0x35, 0x68, 0x0f, 0x9f, 0x92, 0xcf, 0x3f, 0x1d, 0x46, 0xf6, 0x43, 0x78, 0x23, + 0xdf, 0xb2, 0x7e, 0x8a, 0x42, 0xbd, 0x43, 0x55, 0xb8, 0xb8, 0xce, 0xf7, 0xa2, 0xb7, 0x96, 0xdf, + 0x9e, 0xa3, 0x50, 0x29, 0x3b, 0x08, 0x02, 0xee, 0xfc, 0x67, 0x0e, 0xe6, 0x4f, 0x10, 0x47, 0x91, + 0xb0, 0xcf, 0x60, 0x45, 0x92, 0x28, 0x09, 0x91, 0x24, 0xbe, 0x19, 0xc6, 0x99, 0xa7, 0x6f, 0xeb, + 0x21, 0x5d, 0xdd, 0x6f, 0x6e, 0x65, 0xa3, 0xa5, 0xbb, 0x6e, 0x57, 0x53, 0x4f, 0x25, 0x92, 0xc4, + 0x5b, 0xce, 0x31, 0x0c, 0xd1, 0x7e, 0x17, 0x5a, 0x92, 0x0f, 0x85, 0x2c, 0xc7, 0x64, 0x39, 0x1f, + 0x4c, 0xae, 0xdf, 0xc8, 0xef, 0xcd, 0x64, 0x29, 0xe6, 0xc2, 0xd5, 0x13, 0xb1, 0xf6, 0x7d, 0x26, + 0xe2, 0x29, 0xac, 0xa9, 0x75, 0x32, 0x89, 0x59, 0x9f, 0x1e, 0xf3, 0xb6, 0x92, 0x1f, 0x07, 0xfd, + 0x0c, 0xec, 0x54, 0xe0, 0x49, 0xcc, 0xb9, 0xd7, 0xb0, 0x33, 0x15, 0x78, 0x1c, 0x32, 0x80, 0x4d, + 0xa1, 0x8a, 0xcf, 0x8f, 0x88, 0xd4, 0xf3, 0x35, 0x09, 0x49, 0x4c, 0xc5, 0x20, 0x07, 0x9f, 0x9f, + 0x1e, 0x7c, 0x5d, 0x03, 0x7d, 0xa2, 0x70, 0xbc, 0x1c, 0x26, 0xd3, 0xd2, 0x85, 0xf6, 0xd5, 0x5a, + 0x8a, 0x04, 0xdd, 0xd2, 0x09, 0xfa, 0xd1, 0x15, 0x10, 0x45, 0x96, 0xf6, 0xe0, 0x6e, 0x84, 0x5e, + 0xf8, 0x72, 0xc0, 0x99, 0x94, 0x21, 0x09, 0xfc, 0x04, 0xe1, 0x0b, 0x22, 0x85, 0x5e, 0x86, 0x35, + 0x6f, 0x2d, 0x42, 0x2f, 0xce, 0xf2, 0xbb, 0x13, 0x73, 0x65, 0x0b, 0x78, 0xab, 0xb2, 0x3b, 0xd4, + 0xa4, 0xf0, 0x75, 0x93, 0xfa, 0x9c, 0xf4, 0xd5, 0x80, 0x45, 0x66, 0x8d, 0x10, 0x52, 0xec, 0xbf, + 0xac, 0x5f, 0xd5, 0x4b, 0xa7, 0xd2, 0xb0, 0x34, 0xce, 0x1e, 0x09, 0x4e, 0xb9, 0x62, 0x8a, 0xb9, + 0xe3, 0x55, 0xb0, 0x3e, 0x24, 0xc4, 0xf9, 0x39, 0x34, 0x74, 0x43, 0x1f, 0xe0, 0x0b, 0x61, 0x6f, + 0x42, 0x43, 0x75, 0x06, 0x11, 0x82, 0x88, 0x96, 0xa5, 0xe7, 0x44, 0x49, 0x70, 0x24, 0xac, 0x5f, + 0xf7, 0x38, 0x12, 0xf6, 0x53, 0xb8, 0x95, 0x10, 0xbd, 0xb9, 0xb5, 0x60, 0x73, 0xef, 0x3d, 0x77, + 0x8a, 0x47, 0xaf, 0x7b, 0x1d, 0xa0, 0x97, 0xa3, 0x39, 0xbc, 0x7c, 0x92, 0x4d, 0x2c, 0x04, 0x61, + 0x9f, 0x4f, 0x2a, 0xfd, 0xe5, 0x6b, 0x29, 0x9d, 0xc0, 0x2b, 0x75, 0xbe, 0x0d, 0xcd, 0x03, 0xe3, + 0xf6, 0xaf, 0xa8, 0x90, 0x97, 0xc3, 0xb2, 0x58, 0x0d, 0xcb, 0xc7, 0xb0, 0x9c, 0xed, 0xb9, 0x33, + 0xa6, 0x87, 0x92, 0xfd, 0x63, 0x80, 0x6c, 0x41, 0xaa, 0x61, 0x66, 0xc6, 0x7a, 0x23, 0xa3, 0x1c, + 0x07, 0x63, 0xfb, 0x68, 0x76, 0x6c, 0x1f, 0x39, 0x1e, 0xac, 0x9c, 0x0b, 0xfc, 0xeb, 0xfc, 0x11, + 0xf4, 0x24, 0x11, 0xf6, 0x5d, 0x98, 0x57, 0x7d, 0x94, 0x01, 0xd5, 0xbd, 0xb9, 0x54, 0xe0, 0x63, + 0x3d, 0xd9, 0xcb, 0x87, 0x16, 0x4b, 0x7c, 0x1a, 0x88, 0xd6, 0xec, 0x76, 0x6d, 0xa7, 0xee, 0x2d, + 0x0f, 0x4b, 0xf1, 0xe3, 0x40, 0x38, 0xbf, 0x81, 0x66, 0x05, 0xd0, 0x5e, 0x86, 0xd9, 0x02, 0x6b, + 0x96, 0x06, 0xf6, 0x3e, 0xac, 0x97, 0x40, 0xe3, 0xa3, 0xd8, 0x20, 0x36, 0xbc, 0x7b, 0x05, 0xc3, + 0xd8, 0x34, 0x16, 0xce, 0x13, 0xb8, 0x73, 0x5c, 0x36, 0x7e, 0x31, 0xe8, 0xc7, 0x3c, 0xb4, 0xc6, + 0x37, 0xee, 0x26, 0x34, 0x8a, 0x1f, 0x1a, 0xda, 0xfb, 0xba, 0x57, 0x12, 0x9c, 0x08, 0x56, 0xcf, + 0x05, 0x3e, 0x25, 0x71, 0x50, 0x82, 0x5d, 0x13, 0x80, 0xc3, 0x49, 0xa0, 0xa9, 0x5f, 0xab, 0xa5, + 0x3a, 0x06, 0xeb, 0xe7, 0x28, 0xa4, 0x01, 0x92, 0x8c, 0x9f, 0x12, 0x69, 0x96, 0x74, 0xde, 0x8e, + 0x1e, 0xd4, 0x43, 0x2a, 0x64, 0x56, 0x59, 0xef, 0x5e, 0x5b, 0x59, 0xe9, 0xae, 0x7b, 0x1d, 0xc8, + 0x11, 0x92, 0x28, 0xeb, 0x45, 0x8d, 0xe5, 0xfc, 0x0c, 0xd6, 0x3e, 0x41, 0x72, 0xc8, 0x49, 0x30, + 0x96, 0xe3, 0x55, 0xa8, 0xa9, 0xfc, 0x59, 0x3a, 0x7f, 0xea, 0xd3, 0xf9, 0x8b, 0x05, 0xad, 0x0f, + 0x5e, 0x24, 0x8c, 0x4b, 0x12, 0x5c, 0x8a, 0xc8, 0x0d, 0xe1, 0xbd, 0x80, 0x35, 0x15, 0x2c, 0x41, + 0xe2, 0xc0, 0x2f, 0xfc, 0x34, 0x79, 0x6c, 0xee, 0xfd, 0x62, 0xaa, 0xee, 0x98, 0x54, 0x97, 0x39, + 0x70, 0x3b, 0x9d, 0xa0, 0x0b, 0xe7, 0x8f, 0x16, 0xb4, 0x1e, 0x93, 0xd1, 0x81, 0x10, 0xb4, 0x1f, + 0x47, 0x24, 0x96, 0x6a, 0x0e, 0x22, 0x4c, 0xd4, 0xa7, 0xfd, 0x26, 0x2c, 0x15, 0x7b, 0x57, 0xaf, + 0x5b, 0x4b, 0xaf, 0xdb, 0xc5, 0x9c, 0xa8, 0x1a, 0xcc, 0xde, 0x07, 0x48, 0x38, 0x49, 0x7d, 0xec, + 0x5f, 0x90, 0x51, 0x96, 0xc5, 0xcd, 0xea, 0x1a, 0x35, 0x3f, 0x03, 0xdd, 0x93, 0x61, 0x2f, 0xa4, + 0xf8, 0x31, 0x19, 0x79, 0x0b, 0x8a, 0xbf, 0xfb, 0x98, 0x8c, 0xd4, 0xbb, 0x29, 0x61, 0xcf, 0x09, + 0xd7, 0xbb, 0xaf, 0xe6, 0x99, 0x83, 0xf3, 0x27, 0x0b, 0xee, 0x15, 0xe9, 0xc8, 0xcb, 0xf5, 0x64, + 0xd8, 0x53, 0x12, 0x37, 0xc4, 0xed, 0x92, 0xb5, 0xb3, 0x57, 0x58, 0xfb, 0x3e, 0x2c, 0x16, 0x0d, + 0xa2, 0xec, 0xad, 0x4d, 0x61, 0x6f, 0x33, 0x97, 0x78, 0x4c, 0x46, 0xce, 0xef, 0x2b, 0xb6, 0x1d, + 0x8e, 0x2a, 0xb3, 0x8f, 0x7f, 0x87, 0x6d, 0x85, 0xda, 0xaa, 0x6d, 0xb8, 0x2a, 0x7f, 0xc9, 0x81, + 0xda, 0x65, 0x07, 0x9c, 0x3f, 0x5b, 0x70, 0xa7, 0xaa, 0x55, 0x9c, 0xb1, 0x13, 0x3e, 0x8c, 0xc9, + 0x4d, 0xda, 0xcb, 0xf6, 0x9b, 0xad, 0xb6, 0xdf, 0x53, 0x58, 0x1e, 0x33, 0x4a, 0x64, 0xd1, 0x78, + 0x67, 0xaa, 0x1a, 0xab, 0x4c, 0x57, 0x6f, 0xa9, 0xea, 0x87, 0x38, 0x7c, 0xfa, 0xf5, 0xcb, 0xb6, + 0xf5, 0xcd, 0xcb, 0xb6, 0xf5, 0xef, 0x97, 0x6d, 0xeb, 0x8b, 0x57, 0xed, 0x99, 0x6f, 0x5e, 0xb5, + 0x67, 0xfe, 0xf9, 0xaa, 0x3d, 0xf3, 0xdb, 0xf7, 0xfa, 0x54, 0x0e, 0x86, 0x3d, 0x17, 0xb3, 0x28, + 0xfb, 0xd9, 0xde, 0x29, 0x75, 0x3d, 0x28, 0xfe, 0x00, 0x49, 0x1f, 0x76, 0x5e, 0x8c, 0xff, 0x21, + 0x23, 0x47, 0x09, 0x11, 0xbd, 0x79, 0x3d, 0x15, 0x1e, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xf0, + 0x0c, 0x1a, 0x41, 0xc1, 0x11, 0x00, 0x00, } func (m *ConsumerAdditionProposal) Marshal() (dAtA []byte, err error) { diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index 3770b3ada6..2e56e8779b 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -338,11 +338,113 @@ func (m *MsgConsumerAdditionResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgConsumerAdditionResponse proto.InternalMessageInfo +type MsgConsumerRemoval struct { + // the chain-id of the consumer chain to be stopped + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // the time on the provider chain at which all validators are responsible to + // stop their consumer chain validator node + StopTime time.Time `protobuf:"bytes,4,opt,name=stop_time,json=stopTime,proto3,stdtime" json:"stop_time"` + // signer address + Signer string `protobuf:"bytes,13,opt,name=signer,proto3" json:"signer,omitempty"` +} + +func (m *MsgConsumerRemoval) Reset() { *m = MsgConsumerRemoval{} } +func (m *MsgConsumerRemoval) String() string { return proto.CompactTextString(m) } +func (*MsgConsumerRemoval) ProtoMessage() {} +func (*MsgConsumerRemoval) Descriptor() ([]byte, []int) { + return fileDescriptor_43221a4391e9fbf4, []int{4} +} +func (m *MsgConsumerRemoval) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgConsumerRemoval) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgConsumerRemoval.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgConsumerRemoval) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgConsumerRemoval.Merge(m, src) +} +func (m *MsgConsumerRemoval) XXX_Size() int { + return m.Size() +} +func (m *MsgConsumerRemoval) XXX_DiscardUnknown() { + xxx_messageInfo_MsgConsumerRemoval.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgConsumerRemoval proto.InternalMessageInfo + +func (m *MsgConsumerRemoval) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *MsgConsumerRemoval) GetStopTime() time.Time { + if m != nil { + return m.StopTime + } + return time.Time{} +} + +func (m *MsgConsumerRemoval) GetSigner() string { + if m != nil { + return m.Signer + } + return "" +} + +type MsgConsumerRemovalResponse struct { +} + +func (m *MsgConsumerRemovalResponse) Reset() { *m = MsgConsumerRemovalResponse{} } +func (m *MsgConsumerRemovalResponse) String() string { return proto.CompactTextString(m) } +func (*MsgConsumerRemovalResponse) ProtoMessage() {} +func (*MsgConsumerRemovalResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_43221a4391e9fbf4, []int{5} +} +func (m *MsgConsumerRemovalResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgConsumerRemovalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgConsumerRemovalResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgConsumerRemovalResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgConsumerRemovalResponse.Merge(m, src) +} +func (m *MsgConsumerRemovalResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgConsumerRemovalResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgConsumerRemovalResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgConsumerRemovalResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgAssignConsumerKey)(nil), "interchain_security.ccv.provider.v1.MsgAssignConsumerKey") proto.RegisterType((*MsgAssignConsumerKeyResponse)(nil), "interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse") proto.RegisterType((*MsgConsumerAddition)(nil), "interchain_security.ccv.provider.v1.MsgConsumerAddition") proto.RegisterType((*MsgConsumerAdditionResponse)(nil), "interchain_security.ccv.provider.v1.MsgConsumerAdditionResponse") + proto.RegisterType((*MsgConsumerRemoval)(nil), "interchain_security.ccv.provider.v1.MsgConsumerRemoval") + proto.RegisterType((*MsgConsumerRemovalResponse)(nil), "interchain_security.ccv.provider.v1.MsgConsumerRemovalResponse") } func init() { @@ -350,60 +452,64 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 837 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0xdc, 0x44, - 0x14, 0x5f, 0x37, 0x69, 0x9a, 0xcc, 0x26, 0x25, 0x75, 0x83, 0xea, 0x2c, 0xc5, 0x4e, 0x16, 0x0e, - 0x55, 0x45, 0x6c, 0xd2, 0x1e, 0x80, 0x4a, 0x48, 0x6c, 0x52, 0x20, 0x80, 0x02, 0xc5, 0x44, 0x42, - 0x82, 0x83, 0x35, 0x1e, 0x4f, 0xec, 0x51, 0xd7, 0x33, 0xd6, 0xcc, 0xd8, 0x74, 0x6f, 0x88, 0x13, - 0x27, 0x54, 0x6e, 0x1c, 0xfb, 0x11, 0x8a, 0xc4, 0x87, 0xe8, 0xb1, 0x42, 0x48, 0x70, 0x2a, 0x28, - 0x39, 0x94, 0x33, 0x9f, 0x00, 0xcd, 0x1f, 0xa7, 0x9b, 0xcd, 0xb6, 0x5a, 0xf5, 0x36, 0x33, 0xbf, - 0x3f, 0xf3, 0xde, 0xf3, 0x7b, 0x1e, 0xf0, 0x16, 0xa1, 0x12, 0x73, 0x54, 0x40, 0x42, 0x13, 0x81, - 0x51, 0xcd, 0x89, 0x1c, 0x45, 0x08, 0x35, 0x51, 0xc5, 0x59, 0x43, 0x32, 0xcc, 0xa3, 0x66, 0x3b, - 0x92, 0xf7, 0xc2, 0x8a, 0x33, 0xc9, 0xdc, 0x37, 0xa6, 0xb0, 0x43, 0x84, 0x9a, 0xb0, 0x65, 0x87, - 0xcd, 0x76, 0xef, 0x6a, 0xce, 0x58, 0x3e, 0xc4, 0x11, 0xac, 0x48, 0x04, 0x29, 0x65, 0x12, 0x4a, - 0xc2, 0xa8, 0x30, 0x16, 0xbd, 0xc0, 0xa2, 0x7a, 0x97, 0xd6, 0x87, 0x91, 0x24, 0x25, 0x16, 0x12, - 0x96, 0x95, 0x25, 0xf8, 0x93, 0x84, 0xac, 0xe6, 0xda, 0xc1, 0xe2, 0xeb, 0x93, 0x38, 0xa4, 0x23, - 0x0b, 0xad, 0xe5, 0x2c, 0x67, 0x7a, 0x19, 0xa9, 0x55, 0x2b, 0x40, 0x4c, 0x94, 0x4c, 0x24, 0x06, - 0x30, 0x1b, 0x0b, 0x5d, 0x31, 0xbb, 0xa8, 0x14, 0xb9, 0xca, 0xb3, 0x14, 0x79, 0x1b, 0x25, 0x49, - 0x51, 0x84, 0x18, 0xc7, 0x11, 0x1a, 0x12, 0x4c, 0xa5, 0x42, 0xcd, 0xca, 0x10, 0xfa, 0x7f, 0x38, - 0x60, 0x6d, 0x5f, 0xe4, 0x03, 0x21, 0x48, 0x4e, 0x77, 0x19, 0x15, 0x75, 0x89, 0xf9, 0x67, 0x78, - 0xe4, 0xae, 0x83, 0x45, 0x53, 0x1f, 0x92, 0x79, 0xce, 0x86, 0x73, 0x6d, 0x29, 0xbe, 0xa0, 0xf7, - 0x9f, 0x64, 0xee, 0x3b, 0x60, 0xa5, 0xad, 0x53, 0x02, 0xb3, 0x8c, 0x7b, 0xe7, 0x14, 0xbe, 0xe3, - 0xfe, 0xf7, 0x24, 0xb8, 0x38, 0x82, 0xe5, 0xf0, 0x56, 0x5f, 0x9d, 0x62, 0x21, 0xfa, 0xf1, 0x72, - 0x4b, 0x1c, 0x64, 0x19, 0x77, 0x37, 0xc1, 0x32, 0xb2, 0x57, 0x24, 0x77, 0xf1, 0xc8, 0x9b, 0xd3, - 0xbe, 0x5d, 0x34, 0x76, 0xed, 0xdb, 0x60, 0x41, 0x45, 0x82, 0xb9, 0x37, 0xaf, 0x4d, 0xbd, 0xdf, - 0x7f, 0xdb, 0x5a, 0xb3, 0xb9, 0x0e, 0x8c, 0xeb, 0x57, 0x92, 0x13, 0x9a, 0xc7, 0x96, 0x77, 0xeb, - 0xf2, 0x8f, 0x0f, 0x82, 0xce, 0xbf, 0x0f, 0x82, 0xce, 0x0f, 0x4f, 0x1f, 0x5e, 0xb7, 0x87, 0x7d, - 0x1f, 0x5c, 0x9d, 0x96, 0x55, 0x8c, 0x45, 0xc5, 0xa8, 0xc0, 0xfd, 0x3f, 0x17, 0xc0, 0xe5, 0x7d, - 0x91, 0xb7, 0xd0, 0x20, 0xcb, 0x88, 0xfa, 0x34, 0x2f, 0xca, 0xfa, 0x63, 0x70, 0x91, 0x50, 0x22, - 0x09, 0x1c, 0x26, 0x05, 0x26, 0x79, 0x21, 0x75, 0xda, 0xdd, 0x1b, 0xbd, 0x90, 0xa4, 0x28, 0x54, - 0x35, 0x0e, 0x6d, 0x65, 0x9b, 0xed, 0x70, 0x4f, 0x33, 0x76, 0xe6, 0x1f, 0x3d, 0x09, 0x3a, 0xf1, - 0x8a, 0xd5, 0x99, 0x43, 0x55, 0x85, 0x1c, 0x53, 0x2c, 0x88, 0x48, 0x0a, 0x28, 0x0a, 0x5d, 0x85, - 0xe5, 0xb8, 0x6b, 0xcf, 0xf6, 0xa0, 0x28, 0xdc, 0x00, 0x74, 0x53, 0x42, 0x21, 0x1f, 0x19, 0xc6, - 0xbc, 0x66, 0x00, 0x73, 0xa4, 0x09, 0xbb, 0x00, 0x88, 0x0a, 0x7e, 0x47, 0x13, 0xd5, 0x75, 0xde, - 0x79, 0x1b, 0x88, 0xe9, 0xa8, 0xb0, 0xed, 0xa8, 0xf0, 0xa0, 0x6d, 0xc9, 0x9d, 0x45, 0x15, 0xc8, - 0xfd, 0xbf, 0x03, 0x27, 0x5e, 0xd2, 0x3a, 0x85, 0xb8, 0x9f, 0x83, 0xd5, 0x9a, 0xa6, 0x8c, 0x66, - 0x84, 0xe6, 0x49, 0x85, 0x39, 0x61, 0x99, 0xb7, 0xa0, 0xad, 0xd6, 0xcf, 0x58, 0xdd, 0xb6, 0xcd, - 0x6b, 0x9c, 0x7e, 0x51, 0x4e, 0xaf, 0x9c, 0x88, 0xef, 0x68, 0xad, 0xfb, 0x25, 0x70, 0x11, 0x6a, - 0x74, 0x48, 0xac, 0x96, 0xad, 0xe3, 0x85, 0xd9, 0x1d, 0x57, 0x11, 0x6a, 0x0e, 0x8c, 0xda, 0x5a, - 0x7e, 0x0b, 0xae, 0x48, 0x0e, 0xa9, 0x38, 0xc4, 0x7c, 0xd2, 0x77, 0x71, 0x76, 0xdf, 0x57, 0x5b, - 0x8f, 0xd3, 0xe6, 0x7b, 0x60, 0xe3, 0xa4, 0x1d, 0x39, 0xce, 0x88, 0x90, 0x9c, 0xa4, 0xb5, 0xd2, - 0x26, 0x87, 0x1c, 0x22, 0xb5, 0xf0, 0x96, 0x74, 0x13, 0xf8, 0x2d, 0x2f, 0x3e, 0x45, 0xfb, 0xc8, - 0xb2, 0xdc, 0x2f, 0xc0, 0x9b, 0xe9, 0x90, 0xa1, 0xbb, 0x42, 0x05, 0x97, 0x9c, 0x72, 0xd2, 0x57, - 0x97, 0x44, 0x08, 0xe5, 0x06, 0x36, 0x9c, 0x6b, 0x73, 0xf1, 0xa6, 0xe1, 0xde, 0xc1, 0xfc, 0xf6, - 0x18, 0xf3, 0x60, 0x8c, 0xe8, 0x6e, 0x01, 0xb7, 0x20, 0x42, 0x32, 0x4e, 0x10, 0x1c, 0x26, 0x98, - 0x4a, 0x4e, 0xb0, 0xf0, 0xba, 0x5a, 0x7e, 0xe9, 0x19, 0xf2, 0xa1, 0x01, 0xdc, 0x4f, 0xc1, 0xe6, - 0x73, 0x2f, 0x4d, 0x50, 0x01, 0x29, 0xc5, 0x43, 0x6f, 0x59, 0xa7, 0x12, 0x64, 0xcf, 0xb9, 0x73, - 0xd7, 0xd0, 0xc6, 0x26, 0x70, 0x65, 0xc6, 0x09, 0xec, 0x8e, 0x4f, 0xde, 0xeb, 0xe0, 0xb5, 0x29, - 0x83, 0xd5, 0x0e, 0xde, 0x8d, 0x5f, 0xcf, 0x81, 0xb9, 0x7d, 0x91, 0xbb, 0x3f, 0x3b, 0xe0, 0xd2, - 0xd9, 0x9f, 0xce, 0x7b, 0xe1, 0x0c, 0x3f, 0xe6, 0x70, 0xda, 0x64, 0xf7, 0x06, 0x2f, 0x2d, 0x6d, - 0x63, 0x73, 0x7f, 0x72, 0xc0, 0xea, 0x99, 0x3f, 0xc2, 0xbb, 0xb3, 0xfa, 0x4e, 0x2a, 0x7b, 0x1f, - 0xbc, 0xac, 0xb2, 0x0d, 0xa8, 0x77, 0xfe, 0xfb, 0xa7, 0x0f, 0xaf, 0x3b, 0x3b, 0x5f, 0x3f, 0x3a, - 0xf2, 0x9d, 0xc7, 0x47, 0xbe, 0xf3, 0xcf, 0x91, 0xef, 0xdc, 0x3f, 0xf6, 0x3b, 0x8f, 0x8f, 0xfd, - 0xce, 0x5f, 0xc7, 0x7e, 0xe7, 0x9b, 0xf7, 0x73, 0x22, 0x8b, 0x3a, 0x0d, 0x11, 0x2b, 0xed, 0x83, - 0x10, 0x3d, 0xbb, 0x73, 0xeb, 0xe4, 0x1d, 0x6c, 0x6e, 0x46, 0xf7, 0x4e, 0x3f, 0x86, 0x72, 0x54, - 0x61, 0x91, 0x2e, 0xe8, 0xa1, 0xb9, 0xf9, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xcd, 0x7d, - 0x9d, 0x3d, 0x07, 0x00, 0x00, + // 900 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4f, 0x6f, 0xdc, 0x44, + 0x14, 0x5f, 0xb3, 0x69, 0x9a, 0xcc, 0xa6, 0x6d, 0xea, 0x06, 0xd5, 0x59, 0x82, 0x37, 0x59, 0x38, + 0x54, 0x15, 0xb1, 0x49, 0x7b, 0x28, 0x54, 0x42, 0xb0, 0x49, 0x81, 0x00, 0x0a, 0x14, 0x13, 0x09, + 0x09, 0x0e, 0xd6, 0x78, 0x3c, 0xb1, 0x47, 0x5d, 0xcf, 0x58, 0x33, 0xb3, 0xa6, 0x7b, 0x43, 0x9c, + 0x90, 0x90, 0x50, 0xb9, 0x71, 0xec, 0x47, 0x28, 0x12, 0x77, 0xae, 0x3d, 0x56, 0x08, 0x09, 0x4e, + 0x05, 0x25, 0x87, 0x72, 0xe6, 0x13, 0xa0, 0xf9, 0xe3, 0xed, 0xee, 0x26, 0x45, 0xdb, 0x70, 0x9b, + 0x99, 0xdf, 0x9f, 0x79, 0xef, 0xf9, 0x3d, 0xdb, 0xe0, 0x35, 0x42, 0x25, 0xe6, 0x28, 0x87, 0x84, + 0xc6, 0x02, 0xa3, 0x01, 0x27, 0x72, 0x18, 0x22, 0x54, 0x85, 0x25, 0x67, 0x15, 0x49, 0x31, 0x0f, + 0xab, 0xad, 0x50, 0xde, 0x0d, 0x4a, 0xce, 0x24, 0x73, 0x5f, 0x39, 0x81, 0x1d, 0x20, 0x54, 0x05, + 0x35, 0x3b, 0xa8, 0xb6, 0xda, 0x6b, 0x19, 0x63, 0x59, 0x1f, 0x87, 0xb0, 0x24, 0x21, 0xa4, 0x94, + 0x49, 0x28, 0x09, 0xa3, 0xc2, 0x58, 0xb4, 0x3b, 0x16, 0xd5, 0xbb, 0x64, 0x70, 0x10, 0x4a, 0x52, + 0x60, 0x21, 0x61, 0x51, 0x5a, 0x82, 0x3f, 0x4d, 0x48, 0x07, 0x5c, 0x3b, 0x58, 0x7c, 0x75, 0x1a, + 0x87, 0x74, 0x68, 0xa1, 0x95, 0x8c, 0x65, 0x4c, 0x2f, 0x43, 0xb5, 0xaa, 0x05, 0x88, 0x89, 0x82, + 0x89, 0xd8, 0x00, 0x66, 0x63, 0xa1, 0xcb, 0x66, 0x17, 0x16, 0x22, 0x53, 0x79, 0x16, 0x22, 0xab, + 0xa3, 0x24, 0x09, 0x0a, 0x11, 0xe3, 0x38, 0x44, 0x7d, 0x82, 0xa9, 0x54, 0xa8, 0x59, 0x19, 0x42, + 0xf7, 0x37, 0x07, 0xac, 0xec, 0x89, 0xac, 0x27, 0x04, 0xc9, 0xe8, 0x0e, 0xa3, 0x62, 0x50, 0x60, + 0xfe, 0x11, 0x1e, 0xba, 0xab, 0x60, 0xc1, 0xd4, 0x87, 0xa4, 0x9e, 0xb3, 0xee, 0x5c, 0x59, 0x8c, + 0xce, 0xea, 0xfd, 0x07, 0xa9, 0x7b, 0x03, 0x9c, 0xab, 0xeb, 0x14, 0xc3, 0x34, 0xe5, 0xde, 0x0b, + 0x0a, 0xdf, 0x76, 0xff, 0x79, 0xdc, 0x39, 0x3f, 0x84, 0x45, 0xff, 0x66, 0x57, 0x9d, 0x62, 0x21, + 0xba, 0xd1, 0x52, 0x4d, 0xec, 0xa5, 0x29, 0x77, 0x37, 0xc0, 0x12, 0xb2, 0x57, 0xc4, 0x77, 0xf0, + 0xd0, 0x6b, 0x6a, 0xdf, 0x16, 0x1a, 0xbb, 0xf6, 0x75, 0x30, 0xaf, 0x22, 0xc1, 0xdc, 0x9b, 0xd3, + 0xa6, 0xde, 0xaf, 0x3f, 0x6f, 0xae, 0xd8, 0x5c, 0x7b, 0xc6, 0xf5, 0x33, 0xc9, 0x09, 0xcd, 0x22, + 0xcb, 0xbb, 0x79, 0xe9, 0xdb, 0xfb, 0x9d, 0xc6, 0xdf, 0xf7, 0x3b, 0x8d, 0x6f, 0x9e, 0x3c, 0xb8, + 0x6a, 0x0f, 0xbb, 0x3e, 0x58, 0x3b, 0x29, 0xab, 0x08, 0x8b, 0x92, 0x51, 0x81, 0xbb, 0xbf, 0xcf, + 0x83, 0x4b, 0x7b, 0x22, 0xab, 0xa1, 0x5e, 0x9a, 0x12, 0xf5, 0x68, 0xfe, 0x2b, 0xeb, 0xf7, 0xc1, + 0x79, 0x42, 0x89, 0x24, 0xb0, 0x1f, 0xe7, 0x98, 0x64, 0xb9, 0xd4, 0x69, 0xb7, 0xae, 0xb5, 0x03, + 0x92, 0xa0, 0x40, 0xd5, 0x38, 0xb0, 0x95, 0xad, 0xb6, 0x82, 0x5d, 0xcd, 0xd8, 0x9e, 0x7b, 0xf8, + 0xb8, 0xd3, 0x88, 0xce, 0x59, 0x9d, 0x39, 0x54, 0x55, 0xc8, 0x30, 0xc5, 0x82, 0x88, 0x38, 0x87, + 0x22, 0xd7, 0x55, 0x58, 0x8a, 0x5a, 0xf6, 0x6c, 0x17, 0x8a, 0xdc, 0xed, 0x80, 0x56, 0x42, 0x28, + 0xe4, 0x43, 0xc3, 0x98, 0xd3, 0x0c, 0x60, 0x8e, 0x34, 0x61, 0x07, 0x00, 0x51, 0xc2, 0xaf, 0x68, + 0xac, 0xba, 0xce, 0x3b, 0x63, 0x03, 0x31, 0x1d, 0x15, 0xd4, 0x1d, 0x15, 0xec, 0xd7, 0x2d, 0xb9, + 0xbd, 0xa0, 0x02, 0xb9, 0xf7, 0x67, 0xc7, 0x89, 0x16, 0xb5, 0x4e, 0x21, 0xee, 0xc7, 0x60, 0x79, + 0x40, 0x13, 0x46, 0x53, 0x42, 0xb3, 0xb8, 0xc4, 0x9c, 0xb0, 0xd4, 0x9b, 0xd7, 0x56, 0xab, 0xc7, + 0xac, 0x6e, 0xd9, 0xe6, 0x35, 0x4e, 0x3f, 0x2a, 0xa7, 0x0b, 0x23, 0xf1, 0x6d, 0xad, 0x75, 0x3f, + 0x05, 0x2e, 0x42, 0x95, 0x0e, 0x89, 0x0d, 0x64, 0xed, 0x78, 0x76, 0x76, 0xc7, 0x65, 0x84, 0xaa, + 0x7d, 0xa3, 0xb6, 0x96, 0x5f, 0x82, 0xcb, 0x92, 0x43, 0x2a, 0x0e, 0x30, 0x9f, 0xf6, 0x5d, 0x98, + 0xdd, 0xf7, 0xc5, 0xda, 0x63, 0xd2, 0x7c, 0x17, 0xac, 0x8f, 0xda, 0x91, 0xe3, 0x94, 0x08, 0xc9, + 0x49, 0x32, 0x50, 0xda, 0xf8, 0x80, 0x43, 0xa4, 0x16, 0xde, 0xa2, 0x6e, 0x02, 0xbf, 0xe6, 0x45, + 0x13, 0xb4, 0xf7, 0x2c, 0xcb, 0xfd, 0x04, 0xbc, 0x9a, 0xf4, 0x19, 0xba, 0x23, 0x54, 0x70, 0xf1, + 0x84, 0x93, 0xbe, 0xba, 0x20, 0x42, 0x28, 0x37, 0xb0, 0xee, 0x5c, 0x69, 0x46, 0x1b, 0x86, 0x7b, + 0x1b, 0xf3, 0x5b, 0x63, 0xcc, 0xfd, 0x31, 0xa2, 0xbb, 0x09, 0xdc, 0x9c, 0x08, 0xc9, 0x38, 0x41, + 0xb0, 0x1f, 0x63, 0x2a, 0x39, 0xc1, 0xc2, 0x6b, 0x69, 0xf9, 0xc5, 0xa7, 0xc8, 0xbb, 0x06, 0x70, + 0x3f, 0x04, 0x1b, 0xcf, 0xbc, 0x34, 0x46, 0x39, 0xa4, 0x14, 0xf7, 0xbd, 0x25, 0x9d, 0x4a, 0x27, + 0x7d, 0xc6, 0x9d, 0x3b, 0x86, 0x36, 0x36, 0x81, 0xe7, 0x66, 0x9c, 0xc0, 0xd6, 0xf8, 0xe4, 0xbd, + 0x0c, 0x5e, 0x3a, 0x61, 0xb0, 0x46, 0x83, 0xf7, 0x93, 0x03, 0xdc, 0x31, 0x3c, 0xc2, 0x05, 0xab, + 0x60, 0x7f, 0x62, 0xee, 0x9a, 0x93, 0x73, 0xd7, 0x03, 0x8b, 0x42, 0xb2, 0xd2, 0x74, 0xfa, 0xdc, + 0x73, 0x74, 0xfa, 0x82, 0x92, 0xe9, 0x46, 0xff, 0x9f, 0x29, 0xad, 0x81, 0xf6, 0xf1, 0x90, 0xeb, + 0x8c, 0xae, 0xfd, 0xd2, 0x04, 0xcd, 0x3d, 0x91, 0xb9, 0x3f, 0x38, 0xe0, 0xe2, 0xf1, 0xd7, 0xe8, + 0x9b, 0xc1, 0x0c, 0x9f, 0x9a, 0xe0, 0xa4, 0x77, 0x55, 0xbb, 0x77, 0x6a, 0x69, 0x1d, 0x9b, 0xfb, + 0xbd, 0x03, 0x96, 0x8f, 0xbd, 0xe3, 0xde, 0x98, 0xd5, 0x77, 0x5a, 0xd9, 0x7e, 0xe7, 0xb4, 0xca, + 0x51, 0x40, 0xdf, 0x39, 0xe0, 0xc2, 0xf4, 0xb3, 0xbf, 0xf1, 0xbc, 0xae, 0x56, 0xd8, 0x7e, 0xfb, + 0x94, 0xc2, 0x3a, 0x9a, 0xf6, 0x99, 0xaf, 0x9f, 0x3c, 0xb8, 0xea, 0x6c, 0x7f, 0xfe, 0xf0, 0xd0, + 0x77, 0x1e, 0x1d, 0xfa, 0xce, 0x5f, 0x87, 0xbe, 0x73, 0xef, 0xc8, 0x6f, 0x3c, 0x3a, 0xf2, 0x1b, + 0x7f, 0x1c, 0xf9, 0x8d, 0x2f, 0xde, 0xca, 0x88, 0xcc, 0x07, 0x49, 0x80, 0x58, 0x61, 0x3f, 0xb8, + 0xe1, 0xd3, 0x2b, 0x37, 0x47, 0xff, 0x19, 0xd5, 0xf5, 0xf0, 0xee, 0xe4, 0xcf, 0x86, 0x1c, 0x96, + 0x58, 0x24, 0xf3, 0xba, 0x3f, 0xaf, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x0a, 0x39, 0xd8, + 0x9d, 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -420,6 +526,7 @@ const _ = grpc.SupportPackageIsVersion4 type MsgClient interface { AssignConsumerKey(ctx context.Context, in *MsgAssignConsumerKey, opts ...grpc.CallOption) (*MsgAssignConsumerKeyResponse, error) ConsumerAddition(ctx context.Context, in *MsgConsumerAddition, opts ...grpc.CallOption) (*MsgConsumerAdditionResponse, error) + ConsumerRemoval(ctx context.Context, in *MsgConsumerRemoval, opts ...grpc.CallOption) (*MsgConsumerRemovalResponse, error) } type msgClient struct { @@ -448,10 +555,20 @@ func (c *msgClient) ConsumerAddition(ctx context.Context, in *MsgConsumerAdditio return out, nil } +func (c *msgClient) ConsumerRemoval(ctx context.Context, in *MsgConsumerRemoval, opts ...grpc.CallOption) (*MsgConsumerRemovalResponse, error) { + out := new(MsgConsumerRemovalResponse) + err := c.cc.Invoke(ctx, "/interchain_security.ccv.provider.v1.Msg/ConsumerRemoval", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { AssignConsumerKey(context.Context, *MsgAssignConsumerKey) (*MsgAssignConsumerKeyResponse, error) ConsumerAddition(context.Context, *MsgConsumerAddition) (*MsgConsumerAdditionResponse, error) + ConsumerRemoval(context.Context, *MsgConsumerRemoval) (*MsgConsumerRemovalResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -464,6 +581,9 @@ func (*UnimplementedMsgServer) AssignConsumerKey(ctx context.Context, req *MsgAs func (*UnimplementedMsgServer) ConsumerAddition(ctx context.Context, req *MsgConsumerAddition) (*MsgConsumerAdditionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ConsumerAddition not implemented") } +func (*UnimplementedMsgServer) ConsumerRemoval(ctx context.Context, req *MsgConsumerRemoval) (*MsgConsumerRemovalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConsumerRemoval not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -505,6 +625,24 @@ func _Msg_ConsumerAddition_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Msg_ConsumerRemoval_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgConsumerRemoval) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ConsumerRemoval(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/interchain_security.ccv.provider.v1.Msg/ConsumerRemoval", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ConsumerRemoval(ctx, req.(*MsgConsumerRemoval)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "interchain_security.ccv.provider.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -517,6 +655,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "ConsumerAddition", Handler: _Msg_ConsumerAddition_Handler, }, + { + MethodName: "ConsumerRemoval", + Handler: _Msg_ConsumerRemoval_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "interchain_security/ccv/provider/v1/tx.proto", @@ -736,6 +878,74 @@ func (m *MsgConsumerAdditionResponse) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } +func (m *MsgConsumerRemoval) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgConsumerRemoval) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgConsumerRemoval) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Signer) > 0 { + i -= len(m.Signer) + copy(dAtA[i:], m.Signer) + i = encodeVarintTx(dAtA, i, uint64(len(m.Signer))) + i-- + dAtA[i] = 0x6a + } + n6, err6 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.StopTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.StopTime):]) + if err6 != nil { + return 0, err6 + } + i -= n6 + i = encodeVarintTx(dAtA, i, uint64(n6)) + i-- + dAtA[i] = 0x22 + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTx(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} + +func (m *MsgConsumerRemovalResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgConsumerRemovalResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgConsumerRemovalResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -839,6 +1049,34 @@ func (m *MsgConsumerAdditionResponse) Size() (n int) { return n } +func (m *MsgConsumerRemoval) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.StopTime) + n += 1 + l + sovTx(uint64(l)) + l = len(m.Signer) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgConsumerRemovalResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1572,6 +1810,203 @@ func (m *MsgConsumerAdditionResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgConsumerRemoval) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgConsumerRemoval: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgConsumerRemoval: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StopTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.StopTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgConsumerRemovalResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgConsumerRemovalResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgConsumerRemovalResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 From fce02cb6c1510a90edf8e2d53bdee0f3087b7c4b Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Wed, 1 Nov 2023 15:00:40 +0100 Subject: [PATCH 05/17] Added proposal message MsgChangeRewardDenoms --- .../ccv/provider/v1/provider.proto | 3 +- .../ccv/provider/v1/tx.proto | 48 +- x/ccv/provider/keeper/msg_server.go | 13 + x/ccv/provider/types/codec.go | 1 + x/ccv/provider/types/msg.go | 44 ++ x/ccv/provider/types/provider.pb.go | 221 +++---- x/ccv/provider/types/tx.pb.go | 591 ++++++++++++++++-- 7 files changed, 735 insertions(+), 186 deletions(-) diff --git a/proto/interchain_security/ccv/provider/v1/provider.proto b/proto/interchain_security/ccv/provider/v1/provider.proto index 8c7fa8fe5f..6ba5c33c5e 100644 --- a/proto/interchain_security/ccv/provider/v1/provider.proto +++ b/proto/interchain_security/ccv/provider/v1/provider.proto @@ -113,8 +113,9 @@ message ConsumerRemovalProposal { // ChangeRewardDenomsProposal is a governance proposal on the provider chain to // mutate the set of denoms accepted by the provider as rewards. - +// Deprecated: Use MsgChangeRewardDenoms instead message ChangeRewardDenomsProposal { + option deprecated = true; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; // the title of the proposal diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index a508341538..80621a3989 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -17,13 +17,16 @@ service Msg { option (cosmos.msg.v1.service) = true; rpc AssignConsumerKey(MsgAssignConsumerKey) - returns (MsgAssignConsumerKeyResponse); + returns (MsgAssignConsumerKeyResponse); rpc ConsumerAddition(MsgConsumerAddition) - returns (MsgConsumerAdditionResponse); + returns (MsgConsumerAdditionResponse); - rpc ConsumerRemoval(MsgConsumerRemoval) - returns (MsgConsumerRemovalResponse); + rpc ConsumerRemoval(MsgConsumerRemoval) + returns (MsgConsumerRemovalResponse); + + rpc ChangeRewardDenoms(MsgChangeRewardDenoms) + returns (MsgChangeRewardDenomsResponse); } message MsgAssignConsumerKey { @@ -112,21 +115,48 @@ message MsgConsumerAddition { string signer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; } -// MsgConsumerAdditionResponse defines the Msg/MsgIBCSoftwareUpgrade response type +// MsgConsumerAdditionResponse defines response type for MsgConsumerAddition messages message MsgConsumerAdditionResponse {} + +// MsgConsumerRemoval message contains a governance proposal on the provider chain to +// remove (and stop) a consumer chain. If it passes, all the consumer chain's +// state is removed from the provider chain. The outstanding unbonding operation +// funds are released. +// +// Note: this replaces ConsumerRemovalProposal which is deprecated and will be removed soon message MsgConsumerRemoval { option (cosmos.msg.v1.signer) = "signer"; // the chain-id of the consumer chain to be stopped - string chain_id = 3; + string chain_id = 1; // 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 + google.protobuf.Timestamp stop_time = 2 [ (gogoproto.stdtime) = true, (gogoproto.nullable) = false ]; // signer address - string signer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string signer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgConsumerRemovalResponse defines response type for MsgConsumerRemoval messages +message MsgConsumerRemovalResponse {} + +// 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 +message MsgChangeRewardDenoms { + option (cosmos.msg.v1.signer) = "signer"; + + // the list of consumer reward denoms to add + repeated string denoms_to_add = 1; + // the list of consumer reward denoms to remove + repeated string denoms_to_remove = 2; + // signer address + string signer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + } -message MsgConsumerRemovalResponse {} \ No newline at end of file +// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms messages +message MsgChangeRewardDenomsResponse {} \ No newline at end of file diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index 87447ae243..134a4d621b 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -134,3 +134,16 @@ func (k msgServer) ConsumerRemoval( return &types.MsgConsumerRemovalResponse{}, nil } + +// ConsumerRemoval defines a rpc handler method for MsgConsumerRemoval +func (k msgServer) ChangeRewardDenoms( + goCtx context.Context, + msg *types.MsgChangeRewardDenoms) (*types.MsgChangeRewardDenomsResponse, error) { + if k.GetAuthority() != msg.Signer { + return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer) + } + + // TODO: Call keeper implementation ! + + return &types.MsgChangeRewardDenomsResponse{}, nil +} diff --git a/x/ccv/provider/types/codec.go b/x/ccv/provider/types/codec.go index 21892abad4..7f8078c556 100644 --- a/x/ccv/provider/types/codec.go +++ b/x/ccv/provider/types/codec.go @@ -28,6 +28,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgAssignConsumerKey{}, &MsgConsumerAddition{}, &MsgConsumerRemoval{}, + &MsgChangeRewardDenoms{}, ) registry.RegisterImplementations( (*govv1beta1.Content)(nil), diff --git a/x/ccv/provider/types/msg.go b/x/ccv/provider/types/msg.go index 307daba2ef..727c8e64b8 100644 --- a/x/ccv/provider/types/msg.go +++ b/x/ccv/provider/types/msg.go @@ -2,10 +2,12 @@ package types import ( "encoding/json" + "fmt" "strings" "time" errorsmod "cosmossdk.io/errors" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" ccvtypes "github.com/cosmos/interchain-security/v3/x/ccv/types" @@ -20,10 +22,12 @@ var ( _ sdk.Msg = (*MsgAssignConsumerKey)(nil) _ sdk.Msg = (*MsgConsumerAddition)(nil) _ sdk.Msg = (*MsgConsumerRemoval)(nil) + _ sdk.Msg = (*MsgChangeRewardDenoms)(nil) _ sdk.HasValidateBasic = (*MsgAssignConsumerKey)(nil) _ sdk.HasValidateBasic = (*MsgConsumerAddition)(nil) _ sdk.HasValidateBasic = (*MsgConsumerRemoval)(nil) + _ sdk.HasValidateBasic = (*MsgChangeRewardDenoms)(nil) ) // NewMsgAssignConsumerKey creates a new MsgAssignConsumerKey instance. @@ -221,3 +225,43 @@ func (msg *MsgConsumerRemoval) ValidateBasic() error { } return nil } + +// MsgChangeRewardDenoms creates a new MsgChangeRewardDenoms instance +func NewMsgChangeRewardDenoms(signer string) *MsgChangeRewardDenoms { + //@bermuell: TODO finsh implementation! + return &MsgChangeRewardDenoms{} +} + +func (msg *MsgChangeRewardDenoms) ValidateBasic() error { + emptyDenomsToAdd := len(msg.DenomsToAdd) == 0 + emptyDenomsToRemove := len(msg.DenomsToRemove) == 0 + // Return error if both sets are empty or nil + if emptyDenomsToAdd && emptyDenomsToRemove { + return fmt.Errorf( + "invalid change reward denoms proposal: both denoms to add and denoms to remove are empty") + } + + // Return error if a denom is in both sets + for _, denomToAdd := range msg.DenomsToAdd { + for _, denomToRemove := range msg.DenomsToRemove { + if denomToAdd == denomToRemove { + return fmt.Errorf( + "invalid change reward denoms proposal: %s cannot be both added and removed", denomToAdd) + } + } + } + + // Return error if any denom is "invalid" + for _, denom := range msg.DenomsToAdd { + if !sdk.NewCoin(denom, math.NewInt(1)).IsValid() { + return fmt.Errorf("invalid change reward denoms proposal: %s is not a valid denom", denom) + } + } + for _, denom := range msg.DenomsToRemove { + if !sdk.NewCoin(denom, math.NewInt(1)).IsValid() { + return fmt.Errorf("invalid change reward denoms proposal: %s is not a valid denom", denom) + } + } + + return nil +} diff --git a/x/ccv/provider/types/provider.pb.go b/x/ccv/provider/types/provider.pb.go index 95d02de611..b75f676fe8 100644 --- a/x/ccv/provider/types/provider.pb.go +++ b/x/ccv/provider/types/provider.pb.go @@ -208,6 +208,11 @@ func (m *ConsumerRemovalProposal) GetStopTime() time.Time { return time.Time{} } +// ChangeRewardDenomsProposal is a governance proposal on the provider chain to +// mutate the set of denoms accepted by the provider as rewards. +// Deprecated: Use MsgChangeRewardDenoms instead +// +// Deprecated: Do not use. type ChangeRewardDenomsProposal struct { // the title of the proposal Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -1357,115 +1362,115 @@ func init() { } var fileDescriptor_f22ec409a72b7b72 = []byte{ - // 1719 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x6f, 0x1b, 0xc7, - 0x15, 0xd7, 0x8a, 0x94, 0x2c, 0x3e, 0xea, 0xcb, 0x2b, 0x3b, 0xa6, 0x54, 0x95, 0x92, 0x37, 0x6d, - 0xaa, 0x22, 0xf0, 0x32, 0x92, 0x51, 0x20, 0x10, 0x1a, 0x04, 0x12, 0x95, 0xc4, 0x8a, 0x9b, 0x58, - 0x59, 0xa9, 0x32, 0xda, 0x1e, 0x16, 0xc3, 0xd9, 0x31, 0x39, 0xd0, 0xee, 0xce, 0x66, 0x66, 0xb8, - 0x36, 0x2f, 0x3d, 0xf7, 0x98, 0xde, 0x82, 0x9e, 0xd2, 0xfe, 0x0d, 0xfd, 0x0b, 0x7a, 0x0a, 0x7a, - 0x4a, 0x6f, 0x3d, 0xa5, 0x85, 0x7d, 0xe8, 0xa1, 0x7f, 0x44, 0x8b, 0x99, 0xd9, 0x2f, 0x52, 0x1f, - 0xa1, 0x11, 0xe4, 0xb6, 0xf3, 0xe6, 0xbd, 0xdf, 0xfb, 0x7e, 0x6f, 0x48, 0xd8, 0xa3, 0xb1, 0x24, - 0x1c, 0x0f, 0x10, 0x8d, 0x7d, 0x41, 0xf0, 0x90, 0x53, 0x39, 0xea, 0x60, 0x9c, 0x76, 0x12, 0xce, - 0x52, 0x1a, 0x10, 0xde, 0x49, 0x77, 0x8b, 0x6f, 0x37, 0xe1, 0x4c, 0x32, 0xfb, 0xcd, 0x2b, 0x64, - 0x5c, 0x8c, 0x53, 0xb7, 0xe0, 0x4b, 0x77, 0x37, 0xde, 0xb9, 0x0e, 0x38, 0xdd, 0xed, 0x88, 0x01, - 0xe2, 0x24, 0xf0, 0x31, 0x8b, 0xc5, 0x30, 0xca, 0x61, 0x37, 0x7e, 0x7a, 0x83, 0xc4, 0x73, 0xca, - 0x49, 0xc6, 0x76, 0xa7, 0xcf, 0xfa, 0x4c, 0x7f, 0x76, 0xd4, 0x57, 0x46, 0xdd, 0xea, 0x33, 0xd6, - 0x0f, 0x49, 0x47, 0x9f, 0x7a, 0xc3, 0x67, 0x1d, 0x49, 0x23, 0x22, 0x24, 0x8a, 0x92, 0x8c, 0xa1, - 0x3d, 0xc9, 0x10, 0x0c, 0x39, 0x92, 0x94, 0xc5, 0x39, 0x00, 0xed, 0xe1, 0x0e, 0x66, 0x9c, 0x74, - 0x70, 0x48, 0x49, 0x2c, 0x95, 0x56, 0xf3, 0x95, 0x31, 0x74, 0x14, 0x43, 0x48, 0xfb, 0x03, 0x69, - 0xc8, 0xa2, 0x23, 0x49, 0x1c, 0x10, 0x1e, 0x51, 0xc3, 0x5c, 0x9e, 0x32, 0x81, 0xcd, 0xca, 0x3d, - 0xe6, 0xa3, 0x44, 0xb2, 0xce, 0x05, 0x19, 0x89, 0xec, 0xf6, 0x2d, 0xcc, 0x44, 0xc4, 0x44, 0x87, - 0xa8, 0x88, 0xc5, 0x98, 0x74, 0xd2, 0xdd, 0x1e, 0x91, 0x68, 0xb7, 0x20, 0xe4, 0x76, 0x67, 0x7c, - 0x3d, 0x24, 0x4a, 0x1e, 0xcc, 0x68, 0x6e, 0xf7, 0xba, 0xb9, 0xf7, 0x4d, 0x44, 0xcc, 0xc1, 0x5c, - 0x39, 0xff, 0x9b, 0x87, 0x56, 0x37, 0x8b, 0xf1, 0x41, 0x10, 0x50, 0xe5, 0xed, 0x09, 0x67, 0x09, - 0x13, 0x28, 0xb4, 0xef, 0xc0, 0x9c, 0xa4, 0x32, 0x24, 0x2d, 0x6b, 0xdb, 0xda, 0x69, 0x78, 0xe6, - 0x60, 0x6f, 0x43, 0x33, 0x20, 0x02, 0x73, 0x9a, 0x28, 0xe6, 0xd6, 0xac, 0xbe, 0xab, 0x92, 0xec, - 0x75, 0x58, 0x30, 0x29, 0xa2, 0x41, 0xab, 0xa6, 0xaf, 0x6f, 0xe9, 0xf3, 0x71, 0x60, 0x7f, 0x04, - 0xcb, 0x34, 0xa6, 0x92, 0xa2, 0xd0, 0x1f, 0x10, 0x15, 0xa8, 0x56, 0x7d, 0xdb, 0xda, 0x69, 0xee, - 0x6d, 0xb8, 0xb4, 0x87, 0x5d, 0x15, 0x5b, 0x37, 0x8b, 0x68, 0xba, 0xeb, 0x3e, 0xd2, 0x1c, 0x87, - 0xf5, 0xaf, 0xbf, 0xdd, 0x9a, 0xf1, 0x96, 0x32, 0x39, 0x43, 0xb4, 0xef, 0xc3, 0x62, 0x9f, 0xc4, - 0x44, 0x50, 0xe1, 0x0f, 0x90, 0x18, 0xb4, 0xe6, 0xb6, 0xad, 0x9d, 0x45, 0xaf, 0x99, 0xd1, 0x1e, - 0x21, 0x31, 0xb0, 0xb7, 0xa0, 0xd9, 0xa3, 0x31, 0xe2, 0x23, 0xc3, 0x31, 0xaf, 0x39, 0xc0, 0x90, - 0x34, 0x43, 0x17, 0x40, 0x24, 0xe8, 0x79, 0xec, 0xab, 0x42, 0x68, 0xdd, 0xca, 0x0c, 0x31, 0x45, - 0xe0, 0xe6, 0x45, 0xe0, 0x9e, 0xe5, 0x55, 0x72, 0xb8, 0xa0, 0x0c, 0xf9, 0xe2, 0x5f, 0x5b, 0x96, - 0xd7, 0xd0, 0x72, 0xea, 0xc6, 0xfe, 0x14, 0x56, 0x87, 0x71, 0x8f, 0xc5, 0x01, 0x8d, 0xfb, 0x7e, - 0x42, 0x38, 0x65, 0x41, 0x6b, 0x41, 0x43, 0xad, 0x5f, 0x82, 0x3a, 0xca, 0xea, 0xc9, 0x20, 0x7d, - 0xa9, 0x90, 0x56, 0x0a, 0xe1, 0x13, 0x2d, 0x6b, 0x7f, 0x06, 0x36, 0xc6, 0xa9, 0x36, 0x89, 0x0d, - 0x65, 0x8e, 0xd8, 0x98, 0x1e, 0x71, 0x15, 0xe3, 0xf4, 0xcc, 0x48, 0x67, 0x90, 0xbf, 0x83, 0x7b, - 0x92, 0xa3, 0x58, 0x3c, 0x23, 0x7c, 0x12, 0x17, 0xa6, 0xc7, 0xbd, 0x9b, 0x63, 0x8c, 0x83, 0x3f, - 0x82, 0xed, 0xbc, 0x49, 0x7d, 0x4e, 0x02, 0x2a, 0x24, 0xa7, 0xbd, 0xa1, 0x92, 0xf5, 0x9f, 0x71, - 0x84, 0x75, 0x8d, 0x34, 0x75, 0x11, 0xb4, 0x73, 0x3e, 0x6f, 0x8c, 0xed, 0xc3, 0x8c, 0xcb, 0x7e, - 0x02, 0x3f, 0xe9, 0x85, 0x0c, 0x5f, 0x08, 0x65, 0x9c, 0x3f, 0x86, 0xa4, 0x55, 0x47, 0x54, 0x08, - 0x85, 0xb6, 0xb8, 0x6d, 0xed, 0xd4, 0xbc, 0xfb, 0x86, 0xf7, 0x84, 0xf0, 0xa3, 0x0a, 0xe7, 0x59, - 0x85, 0xd1, 0x7e, 0x00, 0xf6, 0x80, 0x0a, 0xc9, 0x38, 0xc5, 0x28, 0xf4, 0x49, 0x2c, 0x39, 0x25, - 0xa2, 0xb5, 0xa4, 0xc5, 0x6f, 0x97, 0x37, 0x1f, 0x98, 0x0b, 0xfb, 0x63, 0xb8, 0x7f, 0xad, 0x52, - 0x1f, 0x0f, 0x50, 0x1c, 0x93, 0xb0, 0xb5, 0xac, 0x5d, 0xd9, 0x0a, 0xae, 0xd1, 0xd9, 0x35, 0x6c, - 0xfb, 0x3b, 0x7f, 0xf8, 0x6a, 0x6b, 0xe6, 0xcb, 0xaf, 0xb6, 0x66, 0xfe, 0xfe, 0xd7, 0x07, 0x1b, + // 1716 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x6f, 0x1b, 0xc7, + 0x15, 0xd7, 0x8a, 0x94, 0x2c, 0x3e, 0xea, 0x9f, 0x57, 0x76, 0x4c, 0xa9, 0x2a, 0x25, 0x6f, 0xda, + 0x54, 0x45, 0xe0, 0x65, 0x24, 0xa3, 0x40, 0x60, 0x34, 0x08, 0x24, 0x2a, 0x89, 0x15, 0x37, 0xb1, + 0xb2, 0x52, 0x65, 0xb4, 0x3d, 0x2c, 0x86, 0xb3, 0x63, 0x72, 0xa0, 0xdd, 0x9d, 0xcd, 0xcc, 0x70, + 0x6d, 0x5e, 0x7a, 0xee, 0x31, 0xbd, 0x05, 0x3d, 0xa5, 0xfd, 0x0c, 0xfd, 0x08, 0x3d, 0x04, 0x3d, + 0xa5, 0xb7, 0x9e, 0xd2, 0xc2, 0x3e, 0xf4, 0xd0, 0x0f, 0xd1, 0x62, 0x66, 0xf6, 0x1f, 0x29, 0xd1, + 0xa1, 0x11, 0xe4, 0xb6, 0xf3, 0xe6, 0xbd, 0xdf, 0xfb, 0xff, 0xde, 0x90, 0x70, 0x40, 0x63, 0x49, + 0x38, 0x1e, 0x20, 0x1a, 0xfb, 0x82, 0xe0, 0x21, 0xa7, 0x72, 0xd4, 0xc1, 0x38, 0xed, 0x24, 0x9c, + 0xa5, 0x34, 0x20, 0xbc, 0x93, 0xee, 0x17, 0xdf, 0x6e, 0xc2, 0x99, 0x64, 0xf6, 0x9b, 0xd7, 0xc8, + 0xb8, 0x18, 0xa7, 0x6e, 0xc1, 0x97, 0xee, 0x6f, 0xbd, 0x33, 0x0d, 0x38, 0xdd, 0xef, 0x88, 0x01, + 0xe2, 0x24, 0xf0, 0x31, 0x8b, 0xc5, 0x30, 0xca, 0x61, 0xb7, 0x7e, 0xfa, 0x0a, 0x89, 0x67, 0x94, + 0x93, 0x8c, 0xed, 0x56, 0x9f, 0xf5, 0x99, 0xfe, 0xec, 0xa8, 0xaf, 0x8c, 0xba, 0xd3, 0x67, 0xac, + 0x1f, 0x92, 0x8e, 0x3e, 0xf5, 0x86, 0x4f, 0x3b, 0x92, 0x46, 0x44, 0x48, 0x14, 0x25, 0x19, 0x43, + 0x7b, 0x92, 0x21, 0x18, 0x72, 0x24, 0x29, 0x8b, 0x73, 0x00, 0xda, 0xc3, 0x1d, 0xcc, 0x38, 0xe9, + 0xe0, 0x90, 0x92, 0x58, 0x2a, 0xad, 0xe6, 0x2b, 0x63, 0xe8, 0x28, 0x86, 0x90, 0xf6, 0x07, 0xd2, + 0x90, 0x45, 0x47, 0x92, 0x38, 0x20, 0x3c, 0xa2, 0x86, 0xb9, 0x3c, 0x65, 0x02, 0xdb, 0x95, 0x7b, + 0xcc, 0x47, 0x89, 0x64, 0x9d, 0x4b, 0x32, 0x12, 0xd9, 0xed, 0x5b, 0x98, 0x89, 0x88, 0x89, 0x0e, + 0x51, 0x11, 0x8b, 0x31, 0xe9, 0xa4, 0xfb, 0x3d, 0x22, 0xd1, 0x7e, 0x41, 0xc8, 0xed, 0xce, 0xf8, + 0x7a, 0x48, 0x94, 0x3c, 0x98, 0xd1, 0xdc, 0xee, 0x4d, 0x73, 0xef, 0x9b, 0x88, 0x98, 0x83, 0xb9, + 0x72, 0xfe, 0xb7, 0x08, 0xad, 0x6e, 0x16, 0xe3, 0xc3, 0x20, 0xa0, 0xca, 0xdb, 0x53, 0xce, 0x12, + 0x26, 0x50, 0x68, 0xdf, 0x82, 0x05, 0x49, 0x65, 0x48, 0x5a, 0xd6, 0xae, 0xb5, 0xd7, 0xf0, 0xcc, + 0xc1, 0xde, 0x85, 0x66, 0x40, 0x04, 0xe6, 0x34, 0x51, 0xcc, 0xad, 0x79, 0x7d, 0x57, 0x25, 0xd9, + 0x9b, 0xb0, 0x64, 0x52, 0x44, 0x83, 0x56, 0x4d, 0x5f, 0xdf, 0xd0, 0xe7, 0x93, 0xc0, 0xfe, 0x08, + 0x56, 0x69, 0x4c, 0x25, 0x45, 0xa1, 0x3f, 0x20, 0x2a, 0x50, 0xad, 0xfa, 0xae, 0xb5, 0xd7, 0x3c, + 0xd8, 0x72, 0x69, 0x0f, 0xbb, 0x2a, 0xb6, 0x6e, 0x16, 0xd1, 0x74, 0xdf, 0x7d, 0xa8, 0x39, 0x8e, + 0xea, 0x5f, 0x7f, 0xbb, 0x33, 0xe7, 0xad, 0x64, 0x72, 0x86, 0x68, 0xdf, 0x85, 0xe5, 0x3e, 0x89, + 0x89, 0xa0, 0xc2, 0x1f, 0x20, 0x31, 0x68, 0x2d, 0xec, 0x5a, 0x7b, 0xcb, 0x5e, 0x33, 0xa3, 0x3d, + 0x44, 0x62, 0x60, 0xef, 0x40, 0xb3, 0x47, 0x63, 0xc4, 0x47, 0x86, 0x63, 0x51, 0x73, 0x80, 0x21, + 0x69, 0x86, 0x2e, 0x80, 0x48, 0xd0, 0xb3, 0xd8, 0x57, 0x85, 0xd0, 0xba, 0x91, 0x19, 0x62, 0x8a, + 0xc0, 0xcd, 0x8b, 0xc0, 0x3d, 0xcf, 0xab, 0xe4, 0x68, 0x49, 0x19, 0xf2, 0xc5, 0xbf, 0x76, 0x2c, + 0xaf, 0xa1, 0xe5, 0xd4, 0x8d, 0xfd, 0x29, 0xac, 0x0f, 0xe3, 0x1e, 0x8b, 0x03, 0x1a, 0xf7, 0xfd, + 0x84, 0x70, 0xca, 0x82, 0xd6, 0x92, 0x86, 0xda, 0xbc, 0x02, 0x75, 0x9c, 0xd5, 0x93, 0x41, 0xfa, + 0x52, 0x21, 0xad, 0x15, 0xc2, 0xa7, 0x5a, 0xd6, 0xfe, 0x0c, 0x6c, 0x8c, 0x53, 0x6d, 0x12, 0x1b, + 0xca, 0x1c, 0xb1, 0x31, 0x3b, 0xe2, 0x3a, 0xc6, 0xe9, 0xb9, 0x91, 0xce, 0x20, 0x7f, 0x07, 0x77, + 0x24, 0x47, 0xb1, 0x78, 0x4a, 0xf8, 0x24, 0x2e, 0xcc, 0x8e, 0x7b, 0x3b, 0xc7, 0x18, 0x07, 0x7f, + 0x08, 0xbb, 0x79, 0x93, 0xfa, 0x9c, 0x04, 0x54, 0x48, 0x4e, 0x7b, 0x43, 0x25, 0xeb, 0x3f, 0xe5, + 0x08, 0xeb, 0x1a, 0x69, 0xea, 0x22, 0x68, 0xe7, 0x7c, 0xde, 0x18, 0xdb, 0x87, 0x19, 0x97, 0xfd, + 0x18, 0x7e, 0xd2, 0x0b, 0x19, 0xbe, 0x14, 0xca, 0x38, 0x7f, 0x0c, 0x49, 0xab, 0x8e, 0xa8, 0x10, + 0x0a, 0x6d, 0x79, 0xd7, 0xda, 0xab, 0x79, 0x77, 0x0d, 0xef, 0x29, 0xe1, 0xc7, 0x15, 0xce, 0xf3, + 0x0a, 0xa3, 0x7d, 0x0f, 0xec, 0x01, 0x15, 0x92, 0x71, 0x8a, 0x51, 0xe8, 0x93, 0x58, 0x72, 0x4a, + 0x44, 0x6b, 0x45, 0x8b, 0xdf, 0x2c, 0x6f, 0x3e, 0x30, 0x17, 0xf6, 0xc7, 0x70, 0x77, 0xaa, 0x52, + 0x1f, 0x0f, 0x50, 0x1c, 0x93, 0xb0, 0xb5, 0xaa, 0x5d, 0xd9, 0x09, 0xa6, 0xe8, 0xec, 0x1a, 0xb6, + 0x07, 0x7b, 0x7f, 0xf8, 0x6a, 0x67, 0xee, 0xcb, 0xaf, 0x76, 0xe6, 0xfe, 0xfe, 0xd7, 0x7b, 0x5b, 0x59, 0xc7, 0xf5, 0x59, 0xea, 0x66, 0xdd, 0xe9, 0x76, 0x59, 0x2c, 0x49, 0x2c, 0x5b, 0x96, 0xf3, - 0x0f, 0x0b, 0xee, 0x75, 0x8b, 0xc0, 0x44, 0x2c, 0x45, 0xe1, 0x0f, 0xd9, 0x80, 0x07, 0xd0, 0x10, - 0x92, 0x25, 0xa6, 0xe4, 0xeb, 0xaf, 0x51, 0xf2, 0x0b, 0x4a, 0x4c, 0x5d, 0xec, 0x6f, 0x7f, 0xa7, - 0x4f, 0x7f, 0xb3, 0x60, 0x43, 0x45, 0xa2, 0x4f, 0x3c, 0xf2, 0x1c, 0xf1, 0xe0, 0x88, 0xc4, 0x2c, - 0x12, 0xdf, 0xdb, 0x2d, 0x07, 0x96, 0x02, 0x8d, 0xe4, 0x4b, 0xe6, 0xa3, 0x40, 0xf9, 0x56, 0x33, - 0x3c, 0x8a, 0x78, 0xc6, 0x0e, 0x82, 0xc0, 0xde, 0x81, 0xd5, 0x92, 0x87, 0xab, 0x78, 0x2a, 0x37, - 0x15, 0xdb, 0x72, 0xce, 0xa6, 0xa3, 0x4c, 0xf6, 0xdb, 0x37, 0xbb, 0xe1, 0xfc, 0xd7, 0x82, 0xd5, - 0x8f, 0x42, 0xd6, 0x43, 0xe1, 0x69, 0x88, 0xc4, 0x40, 0x55, 0xc9, 0x48, 0x85, 0x8f, 0x93, 0xac, - 0x3d, 0xb5, 0xf9, 0x53, 0x87, 0x4f, 0x89, 0xe9, 0x81, 0xf1, 0x3e, 0xdc, 0x2e, 0x1a, 0xa6, 0xc8, - 0x92, 0xf6, 0xf6, 0x70, 0xed, 0xe5, 0xb7, 0x5b, 0x2b, 0x79, 0x31, 0x74, 0x75, 0xc6, 0x8e, 0xbc, - 0x15, 0x3c, 0x46, 0x08, 0xec, 0x36, 0x34, 0x69, 0x0f, 0xfb, 0x82, 0x7c, 0xee, 0xc7, 0xc3, 0x48, - 0x27, 0xb8, 0xee, 0x35, 0x68, 0x0f, 0x9f, 0x92, 0xcf, 0x3f, 0x1d, 0x46, 0xf6, 0x43, 0x78, 0x23, - 0xdf, 0xb2, 0x7e, 0x8a, 0x42, 0xbd, 0x43, 0x55, 0xb8, 0xb8, 0xce, 0xf7, 0xa2, 0xb7, 0x96, 0xdf, - 0x9e, 0xa3, 0x50, 0x29, 0x3b, 0x08, 0x02, 0xee, 0xfc, 0x67, 0x0e, 0xe6, 0x4f, 0x10, 0x47, 0x91, - 0xb0, 0xcf, 0x60, 0x45, 0x92, 0x28, 0x09, 0x91, 0x24, 0xbe, 0x19, 0xc6, 0x99, 0xa7, 0x6f, 0xeb, - 0x21, 0x5d, 0xdd, 0x6f, 0x6e, 0x65, 0xa3, 0xa5, 0xbb, 0x6e, 0x57, 0x53, 0x4f, 0x25, 0x92, 0xc4, - 0x5b, 0xce, 0x31, 0x0c, 0xd1, 0x7e, 0x17, 0x5a, 0x92, 0x0f, 0x85, 0x2c, 0xc7, 0x64, 0x39, 0x1f, - 0x4c, 0xae, 0xdf, 0xc8, 0xef, 0xcd, 0x64, 0x29, 0xe6, 0xc2, 0xd5, 0x13, 0xb1, 0xf6, 0x7d, 0x26, - 0xe2, 0x29, 0xac, 0xa9, 0x75, 0x32, 0x89, 0x59, 0x9f, 0x1e, 0xf3, 0xb6, 0x92, 0x1f, 0x07, 0xfd, - 0x0c, 0xec, 0x54, 0xe0, 0x49, 0xcc, 0xb9, 0xd7, 0xb0, 0x33, 0x15, 0x78, 0x1c, 0x32, 0x80, 0x4d, - 0xa1, 0x8a, 0xcf, 0x8f, 0x88, 0xd4, 0xf3, 0x35, 0x09, 0x49, 0x4c, 0xc5, 0x20, 0x07, 0x9f, 0x9f, - 0x1e, 0x7c, 0x5d, 0x03, 0x7d, 0xa2, 0x70, 0xbc, 0x1c, 0x26, 0xd3, 0xd2, 0x85, 0xf6, 0xd5, 0x5a, - 0x8a, 0x04, 0xdd, 0xd2, 0x09, 0xfa, 0xd1, 0x15, 0x10, 0x45, 0x96, 0xf6, 0xe0, 0x6e, 0x84, 0x5e, - 0xf8, 0x72, 0xc0, 0x99, 0x94, 0x21, 0x09, 0xfc, 0x04, 0xe1, 0x0b, 0x22, 0x85, 0x5e, 0x86, 0x35, - 0x6f, 0x2d, 0x42, 0x2f, 0xce, 0xf2, 0xbb, 0x13, 0x73, 0x65, 0x0b, 0x78, 0xab, 0xb2, 0x3b, 0xd4, - 0xa4, 0xf0, 0x75, 0x93, 0xfa, 0x9c, 0xf4, 0xd5, 0x80, 0x45, 0x66, 0x8d, 0x10, 0x52, 0xec, 0xbf, - 0xac, 0x5f, 0xd5, 0x4b, 0xa7, 0xd2, 0xb0, 0x34, 0xce, 0x1e, 0x09, 0x4e, 0xb9, 0x62, 0x8a, 0xb9, - 0xe3, 0x55, 0xb0, 0x3e, 0x24, 0xc4, 0xf9, 0x39, 0x34, 0x74, 0x43, 0x1f, 0xe0, 0x0b, 0x61, 0x6f, - 0x42, 0x43, 0x75, 0x06, 0x11, 0x82, 0x88, 0x96, 0xa5, 0xe7, 0x44, 0x49, 0x70, 0x24, 0xac, 0x5f, - 0xf7, 0x38, 0x12, 0xf6, 0x53, 0xb8, 0x95, 0x10, 0xbd, 0xb9, 0xb5, 0x60, 0x73, 0xef, 0x3d, 0x77, - 0x8a, 0x47, 0xaf, 0x7b, 0x1d, 0xa0, 0x97, 0xa3, 0x39, 0xbc, 0x7c, 0x92, 0x4d, 0x2c, 0x04, 0x61, - 0x9f, 0x4f, 0x2a, 0xfd, 0xe5, 0x6b, 0x29, 0x9d, 0xc0, 0x2b, 0x75, 0xbe, 0x0d, 0xcd, 0x03, 0xe3, - 0xf6, 0xaf, 0xa8, 0x90, 0x97, 0xc3, 0xb2, 0x58, 0x0d, 0xcb, 0xc7, 0xb0, 0x9c, 0xed, 0xb9, 0x33, - 0xa6, 0x87, 0x92, 0xfd, 0x63, 0x80, 0x6c, 0x41, 0xaa, 0x61, 0x66, 0xc6, 0x7a, 0x23, 0xa3, 0x1c, - 0x07, 0x63, 0xfb, 0x68, 0x76, 0x6c, 0x1f, 0x39, 0x1e, 0xac, 0x9c, 0x0b, 0xfc, 0xeb, 0xfc, 0x11, - 0xf4, 0x24, 0x11, 0xf6, 0x5d, 0x98, 0x57, 0x7d, 0x94, 0x01, 0xd5, 0xbd, 0xb9, 0x54, 0xe0, 0x63, - 0x3d, 0xd9, 0xcb, 0x87, 0x16, 0x4b, 0x7c, 0x1a, 0x88, 0xd6, 0xec, 0x76, 0x6d, 0xa7, 0xee, 0x2d, - 0x0f, 0x4b, 0xf1, 0xe3, 0x40, 0x38, 0xbf, 0x81, 0x66, 0x05, 0xd0, 0x5e, 0x86, 0xd9, 0x02, 0x6b, - 0x96, 0x06, 0xf6, 0x3e, 0xac, 0x97, 0x40, 0xe3, 0xa3, 0xd8, 0x20, 0x36, 0xbc, 0x7b, 0x05, 0xc3, - 0xd8, 0x34, 0x16, 0xce, 0x13, 0xb8, 0x73, 0x5c, 0x36, 0x7e, 0x31, 0xe8, 0xc7, 0x3c, 0xb4, 0xc6, - 0x37, 0xee, 0x26, 0x34, 0x8a, 0x1f, 0x1a, 0xda, 0xfb, 0xba, 0x57, 0x12, 0x9c, 0x08, 0x56, 0xcf, - 0x05, 0x3e, 0x25, 0x71, 0x50, 0x82, 0x5d, 0x13, 0x80, 0xc3, 0x49, 0xa0, 0xa9, 0x5f, 0xab, 0xa5, - 0x3a, 0x06, 0xeb, 0xe7, 0x28, 0xa4, 0x01, 0x92, 0x8c, 0x9f, 0x12, 0x69, 0x96, 0x74, 0xde, 0x8e, - 0x1e, 0xd4, 0x43, 0x2a, 0x64, 0x56, 0x59, 0xef, 0x5e, 0x5b, 0x59, 0xe9, 0xae, 0x7b, 0x1d, 0xc8, - 0x11, 0x92, 0x28, 0xeb, 0x45, 0x8d, 0xe5, 0xfc, 0x0c, 0xd6, 0x3e, 0x41, 0x72, 0xc8, 0x49, 0x30, - 0x96, 0xe3, 0x55, 0xa8, 0xa9, 0xfc, 0x59, 0x3a, 0x7f, 0xea, 0xd3, 0xf9, 0x8b, 0x05, 0xad, 0x0f, - 0x5e, 0x24, 0x8c, 0x4b, 0x12, 0x5c, 0x8a, 0xc8, 0x0d, 0xe1, 0xbd, 0x80, 0x35, 0x15, 0x2c, 0x41, - 0xe2, 0xc0, 0x2f, 0xfc, 0x34, 0x79, 0x6c, 0xee, 0xfd, 0x62, 0xaa, 0xee, 0x98, 0x54, 0x97, 0x39, - 0x70, 0x3b, 0x9d, 0xa0, 0x0b, 0xe7, 0x8f, 0x16, 0xb4, 0x1e, 0x93, 0xd1, 0x81, 0x10, 0xb4, 0x1f, - 0x47, 0x24, 0x96, 0x6a, 0x0e, 0x22, 0x4c, 0xd4, 0xa7, 0xfd, 0x26, 0x2c, 0x15, 0x7b, 0x57, 0xaf, - 0x5b, 0x4b, 0xaf, 0xdb, 0xc5, 0x9c, 0xa8, 0x1a, 0xcc, 0xde, 0x07, 0x48, 0x38, 0x49, 0x7d, 0xec, - 0x5f, 0x90, 0x51, 0x96, 0xc5, 0xcd, 0xea, 0x1a, 0x35, 0x3f, 0x03, 0xdd, 0x93, 0x61, 0x2f, 0xa4, - 0xf8, 0x31, 0x19, 0x79, 0x0b, 0x8a, 0xbf, 0xfb, 0x98, 0x8c, 0xd4, 0xbb, 0x29, 0x61, 0xcf, 0x09, - 0xd7, 0xbb, 0xaf, 0xe6, 0x99, 0x83, 0xf3, 0x27, 0x0b, 0xee, 0x15, 0xe9, 0xc8, 0xcb, 0xf5, 0x64, - 0xd8, 0x53, 0x12, 0x37, 0xc4, 0xed, 0x92, 0xb5, 0xb3, 0x57, 0x58, 0xfb, 0x3e, 0x2c, 0x16, 0x0d, - 0xa2, 0xec, 0xad, 0x4d, 0x61, 0x6f, 0x33, 0x97, 0x78, 0x4c, 0x46, 0xce, 0xef, 0x2b, 0xb6, 0x1d, - 0x8e, 0x2a, 0xb3, 0x8f, 0x7f, 0x87, 0x6d, 0x85, 0xda, 0xaa, 0x6d, 0xb8, 0x2a, 0x7f, 0xc9, 0x81, - 0xda, 0x65, 0x07, 0x9c, 0x3f, 0x5b, 0x70, 0xa7, 0xaa, 0x55, 0x9c, 0xb1, 0x13, 0x3e, 0x8c, 0xc9, - 0x4d, 0xda, 0xcb, 0xf6, 0x9b, 0xad, 0xb6, 0xdf, 0x53, 0x58, 0x1e, 0x33, 0x4a, 0x64, 0xd1, 0x78, - 0x67, 0xaa, 0x1a, 0xab, 0x4c, 0x57, 0x6f, 0xa9, 0xea, 0x87, 0x38, 0x7c, 0xfa, 0xf5, 0xcb, 0xb6, - 0xf5, 0xcd, 0xcb, 0xb6, 0xf5, 0xef, 0x97, 0x6d, 0xeb, 0x8b, 0x57, 0xed, 0x99, 0x6f, 0x5e, 0xb5, - 0x67, 0xfe, 0xf9, 0xaa, 0x3d, 0xf3, 0xdb, 0xf7, 0xfa, 0x54, 0x0e, 0x86, 0x3d, 0x17, 0xb3, 0x28, - 0xfb, 0xd9, 0xde, 0x29, 0x75, 0x3d, 0x28, 0xfe, 0x00, 0x49, 0x1f, 0x76, 0x5e, 0x8c, 0xff, 0x21, - 0x23, 0x47, 0x09, 0x11, 0xbd, 0x79, 0x3d, 0x15, 0x1e, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xf0, - 0x0c, 0x1a, 0x41, 0xc1, 0x11, 0x00, 0x00, + 0x0f, 0x0b, 0xee, 0x74, 0x8b, 0xc0, 0x44, 0x2c, 0x45, 0xe1, 0x0f, 0xd9, 0x80, 0x87, 0xd0, 0x10, + 0x92, 0x25, 0xa6, 0xe4, 0xeb, 0xaf, 0x51, 0xf2, 0x4b, 0x4a, 0x4c, 0x5d, 0x3c, 0xd8, 0xfd, 0x4e, + 0x9f, 0xfe, 0x66, 0xc1, 0x96, 0x8a, 0x44, 0x9f, 0x78, 0xe4, 0x19, 0xe2, 0xc1, 0x31, 0x89, 0x59, + 0x24, 0xbe, 0xb7, 0x5b, 0x0e, 0xac, 0x04, 0x1a, 0xc9, 0x97, 0xcc, 0x47, 0x81, 0xf2, 0xad, 0x66, + 0x78, 0x14, 0xf1, 0x9c, 0x1d, 0x06, 0x81, 0xbd, 0x07, 0xeb, 0x25, 0x0f, 0x57, 0xf1, 0x54, 0x6e, + 0x2a, 0xb6, 0xd5, 0x9c, 0x4d, 0x47, 0x79, 0x16, 0x37, 0xfe, 0x6b, 0xc1, 0xfa, 0x47, 0x21, 0xeb, + 0xa1, 0xf0, 0x2c, 0x44, 0x62, 0xa0, 0xea, 0x64, 0xa4, 0x02, 0xc8, 0x49, 0xd6, 0xa0, 0xda, 0x81, + 0x99, 0x03, 0xa8, 0xc4, 0xf4, 0xc8, 0x78, 0x1f, 0x6e, 0x16, 0x2d, 0x53, 0xe4, 0x49, 0xfb, 0x7b, + 0xb4, 0xf1, 0xe2, 0xdb, 0x9d, 0xb5, 0xbc, 0x1c, 0xba, 0x3a, 0x67, 0xc7, 0xde, 0x1a, 0x1e, 0x23, + 0x04, 0x76, 0x1b, 0x9a, 0xb4, 0x87, 0x7d, 0x41, 0x3e, 0xf7, 0xe3, 0x61, 0xa4, 0x53, 0x5c, 0xf7, + 0x1a, 0xb4, 0x87, 0xcf, 0xc8, 0xe7, 0x9f, 0x0e, 0x23, 0xfb, 0x3e, 0xbc, 0x91, 0xef, 0x59, 0x3f, + 0x45, 0xa1, 0xde, 0xa2, 0x2a, 0x60, 0x5c, 0x67, 0x7c, 0xd9, 0xdb, 0xc8, 0x6f, 0x2f, 0x50, 0xa8, + 0x94, 0x1d, 0x06, 0x01, 0x77, 0xfe, 0xb3, 0x00, 0x8b, 0xa7, 0x88, 0xa3, 0x48, 0xd8, 0xe7, 0xb0, + 0x26, 0x49, 0x94, 0x84, 0x48, 0x12, 0xdf, 0x8c, 0xe3, 0xcc, 0xd3, 0xb7, 0xf5, 0x98, 0xae, 0x6e, + 0x38, 0xb7, 0xb2, 0xd3, 0xd2, 0x7d, 0xb7, 0xab, 0xa9, 0x67, 0x12, 0x49, 0xe2, 0xad, 0xe6, 0x18, + 0x86, 0x68, 0xbf, 0x0b, 0x2d, 0xc9, 0x87, 0x42, 0x96, 0x83, 0xb2, 0x9c, 0x10, 0x26, 0xdb, 0x6f, + 0xe4, 0xf7, 0x66, 0xb6, 0x14, 0x93, 0xe1, 0xfa, 0x99, 0x58, 0xfb, 0x3e, 0x33, 0xf1, 0x0c, 0x36, + 0xd4, 0x42, 0x99, 0xc4, 0xac, 0xcf, 0x8e, 0x79, 0x53, 0xc9, 0x8f, 0x83, 0x7e, 0x06, 0x76, 0x2a, + 0xf0, 0x24, 0xe6, 0xc2, 0x6b, 0xd8, 0x99, 0x0a, 0x3c, 0x0e, 0x19, 0xc0, 0xb6, 0x50, 0xc5, 0xe7, + 0x47, 0x44, 0xea, 0x09, 0x9b, 0x84, 0x24, 0xa6, 0x62, 0x90, 0x83, 0x2f, 0xce, 0x0e, 0xbe, 0xa9, + 0x81, 0x3e, 0x51, 0x38, 0x5e, 0x0e, 0x93, 0x69, 0xe9, 0x42, 0xfb, 0x7a, 0x2d, 0x45, 0x82, 0x6e, + 0xe8, 0x04, 0xfd, 0xe8, 0x1a, 0x88, 0x22, 0x4b, 0x07, 0x70, 0x3b, 0x42, 0xcf, 0x7d, 0x39, 0xe0, + 0x4c, 0xca, 0x90, 0x04, 0x7e, 0x82, 0xf0, 0x25, 0x91, 0x42, 0xaf, 0xc3, 0x9a, 0xb7, 0x11, 0xa1, + 0xe7, 0xe7, 0xf9, 0xdd, 0xa9, 0xb9, 0xb2, 0x05, 0xbc, 0x55, 0xd9, 0x1e, 0x6a, 0x56, 0xf8, 0xba, + 0x4d, 0x7d, 0x4e, 0xfa, 0x6a, 0xc4, 0x22, 0xb3, 0x48, 0x08, 0x29, 0x36, 0x60, 0xd6, 0xb1, 0xea, + 0xad, 0x53, 0x69, 0x59, 0x1a, 0x67, 0xcf, 0x04, 0xa7, 0x5c, 0x32, 0xc5, 0xe4, 0xf1, 0x2a, 0x58, + 0x1f, 0x12, 0xe2, 0xfc, 0x1c, 0x1a, 0xba, 0xa1, 0x0f, 0xf1, 0xa5, 0xb0, 0xb7, 0xa1, 0xa1, 0x3a, + 0x83, 0x08, 0x41, 0x44, 0xcb, 0xd2, 0x93, 0xa2, 0x24, 0x38, 0x12, 0x36, 0xa7, 0x3d, 0x8f, 0x84, + 0xfd, 0x04, 0x6e, 0x24, 0x44, 0xef, 0x6e, 0x2d, 0xd8, 0x3c, 0x78, 0xcf, 0x9d, 0xe1, 0xd9, 0xeb, + 0x4e, 0x03, 0xf4, 0x72, 0x34, 0x87, 0x97, 0x8f, 0xb2, 0x89, 0x95, 0x20, 0xec, 0x8b, 0x49, 0xa5, + 0xbf, 0x7c, 0x2d, 0xa5, 0x13, 0x78, 0xa5, 0xce, 0xb7, 0xa1, 0x79, 0x68, 0xdc, 0xfe, 0x15, 0x15, + 0xf2, 0x6a, 0x58, 0x96, 0xab, 0x61, 0xf9, 0x18, 0x56, 0xb3, 0x4d, 0x77, 0xce, 0xf4, 0x50, 0xb2, + 0x7f, 0x0c, 0x90, 0xad, 0x48, 0x35, 0xcc, 0xcc, 0x60, 0x6f, 0x64, 0x94, 0x93, 0x60, 0x6c, 0x23, + 0xcd, 0x8f, 0x6d, 0x24, 0xc7, 0x83, 0xb5, 0x0b, 0x81, 0x7f, 0x9d, 0x3f, 0x83, 0x1e, 0x27, 0xc2, + 0xbe, 0x0d, 0x8b, 0xaa, 0x8f, 0x32, 0xa0, 0xba, 0xb7, 0x90, 0x0a, 0x7c, 0xa2, 0x67, 0x7b, 0xf9, + 0xd4, 0x62, 0x89, 0x4f, 0x03, 0xd1, 0x9a, 0xdf, 0xad, 0xed, 0xd5, 0xbd, 0xd5, 0x61, 0x29, 0x7e, + 0x12, 0x08, 0xe7, 0x37, 0xd0, 0xac, 0x00, 0xda, 0xab, 0x30, 0x5f, 0x60, 0xcd, 0xd3, 0xc0, 0x7e, + 0x00, 0x9b, 0x25, 0xd0, 0xf8, 0x28, 0x36, 0x88, 0x0d, 0xef, 0x4e, 0xc1, 0x30, 0x36, 0x8d, 0x85, + 0xf3, 0x18, 0x6e, 0x9d, 0x94, 0x8d, 0x5f, 0x0c, 0xfa, 0x31, 0x0f, 0xad, 0xf1, 0x9d, 0xbb, 0x0d, + 0x8d, 0xe2, 0xa7, 0x86, 0xf6, 0xbe, 0xee, 0x95, 0x04, 0x27, 0x82, 0xf5, 0x0b, 0x81, 0xcf, 0x48, + 0x1c, 0x94, 0x60, 0x53, 0x02, 0x70, 0x34, 0x09, 0x34, 0xf3, 0x7b, 0xb5, 0x54, 0xc7, 0x60, 0xf3, + 0x02, 0x85, 0x34, 0x40, 0x92, 0xf1, 0x33, 0x22, 0xcd, 0x9a, 0xce, 0xdb, 0xd1, 0x83, 0x7a, 0x48, + 0x85, 0xcc, 0x2a, 0xeb, 0xdd, 0xa9, 0x95, 0x95, 0xee, 0xbb, 0xd3, 0x40, 0x8e, 0x91, 0x44, 0x59, + 0x2f, 0x6a, 0x2c, 0xe7, 0x67, 0xb0, 0xf1, 0x09, 0x92, 0x43, 0x4e, 0x82, 0xb1, 0x1c, 0xaf, 0x43, + 0x4d, 0xe5, 0xcf, 0xd2, 0xf9, 0x53, 0x9f, 0xce, 0x5f, 0x2c, 0x68, 0x7d, 0xf0, 0x3c, 0x61, 0x5c, + 0x92, 0xe0, 0x4a, 0x44, 0x5e, 0x11, 0xde, 0x4b, 0xd8, 0x50, 0xc1, 0x12, 0x24, 0x0e, 0xfc, 0xc2, + 0x4f, 0x93, 0xc7, 0xe6, 0xc1, 0x2f, 0x66, 0xea, 0x8e, 0x49, 0x75, 0x99, 0x03, 0x37, 0xd3, 0x09, + 0xba, 0x70, 0xfe, 0x68, 0x41, 0xeb, 0x11, 0x19, 0x1d, 0x0a, 0x41, 0xfb, 0x71, 0x44, 0x62, 0xa9, + 0xe6, 0x20, 0xc2, 0x44, 0x7d, 0xda, 0x6f, 0xc2, 0x4a, 0xb1, 0x77, 0xf5, 0xba, 0xb5, 0xf4, 0xba, + 0x5d, 0xce, 0x89, 0xaa, 0xc1, 0xec, 0x07, 0x00, 0x09, 0x27, 0xa9, 0x8f, 0xfd, 0x4b, 0x32, 0xca, + 0xb2, 0xb8, 0x5d, 0x5d, 0xa3, 0xe6, 0x87, 0xa0, 0x7b, 0x3a, 0xec, 0x85, 0x14, 0x3f, 0x22, 0x23, + 0x6f, 0x49, 0xf1, 0x77, 0x1f, 0x91, 0x91, 0x7a, 0x39, 0x25, 0xec, 0x19, 0xe1, 0x7a, 0xf7, 0xd5, + 0x3c, 0x73, 0x70, 0xfe, 0x64, 0xc1, 0x9d, 0x22, 0x1d, 0x79, 0xb9, 0x9e, 0x0e, 0x7b, 0x4a, 0xe2, + 0x15, 0x71, 0xbb, 0x62, 0xed, 0xfc, 0x35, 0xd6, 0xbe, 0x0f, 0xcb, 0x45, 0x83, 0x28, 0x7b, 0x6b, + 0x33, 0xd8, 0xdb, 0xcc, 0x25, 0x1e, 0x91, 0x91, 0xf3, 0xfb, 0x8a, 0x6d, 0x47, 0xa3, 0xca, 0xec, + 0xe3, 0xdf, 0x61, 0x5b, 0xa1, 0xb6, 0x6a, 0x1b, 0xae, 0xca, 0x5f, 0x71, 0xa0, 0x76, 0xd5, 0x01, + 0xe7, 0xcf, 0x16, 0xdc, 0xaa, 0x6a, 0x15, 0xe7, 0xec, 0x94, 0x0f, 0x63, 0xf2, 0x2a, 0xed, 0x65, + 0xfb, 0xcd, 0x57, 0xdb, 0xef, 0x09, 0xac, 0x8e, 0x19, 0x25, 0xb2, 0x68, 0xbc, 0x33, 0x53, 0x8d, + 0x55, 0xa6, 0xab, 0xb7, 0x52, 0xf5, 0x43, 0x1c, 0x3d, 0xf9, 0xfa, 0x45, 0xdb, 0xfa, 0xe6, 0x45, + 0xdb, 0xfa, 0xf7, 0x8b, 0xb6, 0xf5, 0xc5, 0xcb, 0xf6, 0xdc, 0x37, 0x2f, 0xdb, 0x73, 0xff, 0x7c, + 0xd9, 0x9e, 0xfb, 0xed, 0x7b, 0x7d, 0x2a, 0x07, 0xc3, 0x9e, 0x8b, 0x59, 0x94, 0xfd, 0x70, 0xef, + 0x94, 0xba, 0xee, 0x15, 0x7f, 0x81, 0xa4, 0xf7, 0x3b, 0xcf, 0xc7, 0xff, 0x92, 0x91, 0xa3, 0x84, + 0x88, 0xde, 0xa2, 0x9e, 0x0a, 0xf7, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xa2, 0xb0, 0x54, 0x77, + 0xc3, 0x11, 0x00, 0x00, } func (m *ConsumerAdditionProposal) Marshal() (dAtA []byte, err error) { diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index 2e56e8779b..16d87df8e6 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -301,7 +301,7 @@ func (m *MsgConsumerAddition) GetSigner() string { return "" } -// MsgConsumerAdditionResponse defines the Msg/MsgIBCSoftwareUpgrade response type +// MsgConsumerAdditionResponse defines response type for MsgConsumerAddition messages type MsgConsumerAdditionResponse struct { } @@ -338,14 +338,20 @@ func (m *MsgConsumerAdditionResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgConsumerAdditionResponse proto.InternalMessageInfo +// MsgConsumerRemoval message contains a governance proposal on the provider chain to +// remove (and stop) a consumer chain. If it passes, all the consumer chain's +// state is removed from the provider chain. The outstanding unbonding operation +// funds are released. +// +// Note: this replaces ConsumerRemovalProposal which is deprecated and will be removed soon type MsgConsumerRemoval struct { // the chain-id of the consumer chain to be stopped - ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` // the time on the provider chain at which all validators are responsible to // stop their consumer chain validator node - StopTime time.Time `protobuf:"bytes,4,opt,name=stop_time,json=stopTime,proto3,stdtime" json:"stop_time"` + StopTime time.Time `protobuf:"bytes,2,opt,name=stop_time,json=stopTime,proto3,stdtime" json:"stop_time"` // signer address - Signer string `protobuf:"bytes,13,opt,name=signer,proto3" json:"signer,omitempty"` + Signer string `protobuf:"bytes,3,opt,name=signer,proto3" json:"signer,omitempty"` } func (m *MsgConsumerRemoval) Reset() { *m = MsgConsumerRemoval{} } @@ -402,6 +408,7 @@ func (m *MsgConsumerRemoval) GetSigner() string { return "" } +// MsgConsumerRemovalResponse defines response type for MsgConsumerRemoval messages type MsgConsumerRemovalResponse struct { } @@ -438,6 +445,110 @@ func (m *MsgConsumerRemovalResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgConsumerRemovalResponse 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 +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"` + // the list of consumer reward denoms to remove + DenomsToRemove []string `protobuf:"bytes,2,rep,name=denoms_to_remove,json=denomsToRemove,proto3" json:"denoms_to_remove,omitempty"` + // signer address + Signer string `protobuf:"bytes,3,opt,name=signer,proto3" json:"signer,omitempty"` +} + +func (m *MsgChangeRewardDenoms) Reset() { *m = MsgChangeRewardDenoms{} } +func (m *MsgChangeRewardDenoms) String() string { return proto.CompactTextString(m) } +func (*MsgChangeRewardDenoms) ProtoMessage() {} +func (*MsgChangeRewardDenoms) Descriptor() ([]byte, []int) { + return fileDescriptor_43221a4391e9fbf4, []int{6} +} +func (m *MsgChangeRewardDenoms) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgChangeRewardDenoms) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgChangeRewardDenoms.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgChangeRewardDenoms) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgChangeRewardDenoms.Merge(m, src) +} +func (m *MsgChangeRewardDenoms) XXX_Size() int { + return m.Size() +} +func (m *MsgChangeRewardDenoms) XXX_DiscardUnknown() { + xxx_messageInfo_MsgChangeRewardDenoms.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgChangeRewardDenoms proto.InternalMessageInfo + +func (m *MsgChangeRewardDenoms) GetDenomsToAdd() []string { + if m != nil { + return m.DenomsToAdd + } + return nil +} + +func (m *MsgChangeRewardDenoms) GetDenomsToRemove() []string { + if m != nil { + return m.DenomsToRemove + } + return nil +} + +func (m *MsgChangeRewardDenoms) GetSigner() string { + if m != nil { + return m.Signer + } + return "" +} + +// MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms messages +type MsgChangeRewardDenomsResponse struct { +} + +func (m *MsgChangeRewardDenomsResponse) Reset() { *m = MsgChangeRewardDenomsResponse{} } +func (m *MsgChangeRewardDenomsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgChangeRewardDenomsResponse) ProtoMessage() {} +func (*MsgChangeRewardDenomsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_43221a4391e9fbf4, []int{7} +} +func (m *MsgChangeRewardDenomsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgChangeRewardDenomsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgChangeRewardDenomsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgChangeRewardDenomsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgChangeRewardDenomsResponse.Merge(m, src) +} +func (m *MsgChangeRewardDenomsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgChangeRewardDenomsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgChangeRewardDenomsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgChangeRewardDenomsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgAssignConsumerKey)(nil), "interchain_security.ccv.provider.v1.MsgAssignConsumerKey") proto.RegisterType((*MsgAssignConsumerKeyResponse)(nil), "interchain_security.ccv.provider.v1.MsgAssignConsumerKeyResponse") @@ -445,6 +556,8 @@ func init() { proto.RegisterType((*MsgConsumerAdditionResponse)(nil), "interchain_security.ccv.provider.v1.MsgConsumerAdditionResponse") proto.RegisterType((*MsgConsumerRemoval)(nil), "interchain_security.ccv.provider.v1.MsgConsumerRemoval") proto.RegisterType((*MsgConsumerRemovalResponse)(nil), "interchain_security.ccv.provider.v1.MsgConsumerRemovalResponse") + proto.RegisterType((*MsgChangeRewardDenoms)(nil), "interchain_security.ccv.provider.v1.MsgChangeRewardDenoms") + proto.RegisterType((*MsgChangeRewardDenomsResponse)(nil), "interchain_security.ccv.provider.v1.MsgChangeRewardDenomsResponse") } func init() { @@ -452,64 +565,69 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 900 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4f, 0x6f, 0xdc, 0x44, - 0x14, 0x5f, 0xb3, 0x69, 0x9a, 0xcc, 0xa6, 0x6d, 0xea, 0x06, 0xd5, 0x59, 0x82, 0x37, 0x59, 0x38, - 0x54, 0x15, 0xb1, 0x49, 0x7b, 0x28, 0x54, 0x42, 0xb0, 0x49, 0x81, 0x00, 0x0a, 0x14, 0x13, 0x09, - 0x09, 0x0e, 0xd6, 0x78, 0x3c, 0xb1, 0x47, 0x5d, 0xcf, 0x58, 0x33, 0xb3, 0xa6, 0x7b, 0x43, 0x9c, - 0x90, 0x90, 0x50, 0xb9, 0x71, 0xec, 0x47, 0x28, 0x12, 0x77, 0xae, 0x3d, 0x56, 0x08, 0x09, 0x4e, - 0x05, 0x25, 0x87, 0x72, 0xe6, 0x13, 0xa0, 0xf9, 0xe3, 0xed, 0xee, 0x26, 0x45, 0xdb, 0x70, 0x9b, - 0x99, 0xdf, 0x9f, 0x79, 0xef, 0xf9, 0x3d, 0xdb, 0xe0, 0x35, 0x42, 0x25, 0xe6, 0x28, 0x87, 0x84, - 0xc6, 0x02, 0xa3, 0x01, 0x27, 0x72, 0x18, 0x22, 0x54, 0x85, 0x25, 0x67, 0x15, 0x49, 0x31, 0x0f, - 0xab, 0xad, 0x50, 0xde, 0x0d, 0x4a, 0xce, 0x24, 0x73, 0x5f, 0x39, 0x81, 0x1d, 0x20, 0x54, 0x05, - 0x35, 0x3b, 0xa8, 0xb6, 0xda, 0x6b, 0x19, 0x63, 0x59, 0x1f, 0x87, 0xb0, 0x24, 0x21, 0xa4, 0x94, - 0x49, 0x28, 0x09, 0xa3, 0xc2, 0x58, 0xb4, 0x3b, 0x16, 0xd5, 0xbb, 0x64, 0x70, 0x10, 0x4a, 0x52, - 0x60, 0x21, 0x61, 0x51, 0x5a, 0x82, 0x3f, 0x4d, 0x48, 0x07, 0x5c, 0x3b, 0x58, 0x7c, 0x75, 0x1a, - 0x87, 0x74, 0x68, 0xa1, 0x95, 0x8c, 0x65, 0x4c, 0x2f, 0x43, 0xb5, 0xaa, 0x05, 0x88, 0x89, 0x82, - 0x89, 0xd8, 0x00, 0x66, 0x63, 0xa1, 0xcb, 0x66, 0x17, 0x16, 0x22, 0x53, 0x79, 0x16, 0x22, 0xab, - 0xa3, 0x24, 0x09, 0x0a, 0x11, 0xe3, 0x38, 0x44, 0x7d, 0x82, 0xa9, 0x54, 0xa8, 0x59, 0x19, 0x42, - 0xf7, 0x37, 0x07, 0xac, 0xec, 0x89, 0xac, 0x27, 0x04, 0xc9, 0xe8, 0x0e, 0xa3, 0x62, 0x50, 0x60, - 0xfe, 0x11, 0x1e, 0xba, 0xab, 0x60, 0xc1, 0xd4, 0x87, 0xa4, 0x9e, 0xb3, 0xee, 0x5c, 0x59, 0x8c, - 0xce, 0xea, 0xfd, 0x07, 0xa9, 0x7b, 0x03, 0x9c, 0xab, 0xeb, 0x14, 0xc3, 0x34, 0xe5, 0xde, 0x0b, - 0x0a, 0xdf, 0x76, 0xff, 0x79, 0xdc, 0x39, 0x3f, 0x84, 0x45, 0xff, 0x66, 0x57, 0x9d, 0x62, 0x21, - 0xba, 0xd1, 0x52, 0x4d, 0xec, 0xa5, 0x29, 0x77, 0x37, 0xc0, 0x12, 0xb2, 0x57, 0xc4, 0x77, 0xf0, - 0xd0, 0x6b, 0x6a, 0xdf, 0x16, 0x1a, 0xbb, 0xf6, 0x75, 0x30, 0xaf, 0x22, 0xc1, 0xdc, 0x9b, 0xd3, - 0xa6, 0xde, 0xaf, 0x3f, 0x6f, 0xae, 0xd8, 0x5c, 0x7b, 0xc6, 0xf5, 0x33, 0xc9, 0x09, 0xcd, 0x22, - 0xcb, 0xbb, 0x79, 0xe9, 0xdb, 0xfb, 0x9d, 0xc6, 0xdf, 0xf7, 0x3b, 0x8d, 0x6f, 0x9e, 0x3c, 0xb8, - 0x6a, 0x0f, 0xbb, 0x3e, 0x58, 0x3b, 0x29, 0xab, 0x08, 0x8b, 0x92, 0x51, 0x81, 0xbb, 0xbf, 0xcf, - 0x83, 0x4b, 0x7b, 0x22, 0xab, 0xa1, 0x5e, 0x9a, 0x12, 0xf5, 0x68, 0xfe, 0x2b, 0xeb, 0xf7, 0xc1, - 0x79, 0x42, 0x89, 0x24, 0xb0, 0x1f, 0xe7, 0x98, 0x64, 0xb9, 0xd4, 0x69, 0xb7, 0xae, 0xb5, 0x03, - 0x92, 0xa0, 0x40, 0xd5, 0x38, 0xb0, 0x95, 0xad, 0xb6, 0x82, 0x5d, 0xcd, 0xd8, 0x9e, 0x7b, 0xf8, - 0xb8, 0xd3, 0x88, 0xce, 0x59, 0x9d, 0x39, 0x54, 0x55, 0xc8, 0x30, 0xc5, 0x82, 0x88, 0x38, 0x87, - 0x22, 0xd7, 0x55, 0x58, 0x8a, 0x5a, 0xf6, 0x6c, 0x17, 0x8a, 0xdc, 0xed, 0x80, 0x56, 0x42, 0x28, - 0xe4, 0x43, 0xc3, 0x98, 0xd3, 0x0c, 0x60, 0x8e, 0x34, 0x61, 0x07, 0x00, 0x51, 0xc2, 0xaf, 0x68, - 0xac, 0xba, 0xce, 0x3b, 0x63, 0x03, 0x31, 0x1d, 0x15, 0xd4, 0x1d, 0x15, 0xec, 0xd7, 0x2d, 0xb9, - 0xbd, 0xa0, 0x02, 0xb9, 0xf7, 0x67, 0xc7, 0x89, 0x16, 0xb5, 0x4e, 0x21, 0xee, 0xc7, 0x60, 0x79, - 0x40, 0x13, 0x46, 0x53, 0x42, 0xb3, 0xb8, 0xc4, 0x9c, 0xb0, 0xd4, 0x9b, 0xd7, 0x56, 0xab, 0xc7, - 0xac, 0x6e, 0xd9, 0xe6, 0x35, 0x4e, 0x3f, 0x2a, 0xa7, 0x0b, 0x23, 0xf1, 0x6d, 0xad, 0x75, 0x3f, - 0x05, 0x2e, 0x42, 0x95, 0x0e, 0x89, 0x0d, 0x64, 0xed, 0x78, 0x76, 0x76, 0xc7, 0x65, 0x84, 0xaa, - 0x7d, 0xa3, 0xb6, 0x96, 0x5f, 0x82, 0xcb, 0x92, 0x43, 0x2a, 0x0e, 0x30, 0x9f, 0xf6, 0x5d, 0x98, - 0xdd, 0xf7, 0xc5, 0xda, 0x63, 0xd2, 0x7c, 0x17, 0xac, 0x8f, 0xda, 0x91, 0xe3, 0x94, 0x08, 0xc9, - 0x49, 0x32, 0x50, 0xda, 0xf8, 0x80, 0x43, 0xa4, 0x16, 0xde, 0xa2, 0x6e, 0x02, 0xbf, 0xe6, 0x45, - 0x13, 0xb4, 0xf7, 0x2c, 0xcb, 0xfd, 0x04, 0xbc, 0x9a, 0xf4, 0x19, 0xba, 0x23, 0x54, 0x70, 0xf1, - 0x84, 0x93, 0xbe, 0xba, 0x20, 0x42, 0x28, 0x37, 0xb0, 0xee, 0x5c, 0x69, 0x46, 0x1b, 0x86, 0x7b, - 0x1b, 0xf3, 0x5b, 0x63, 0xcc, 0xfd, 0x31, 0xa2, 0xbb, 0x09, 0xdc, 0x9c, 0x08, 0xc9, 0x38, 0x41, - 0xb0, 0x1f, 0x63, 0x2a, 0x39, 0xc1, 0xc2, 0x6b, 0x69, 0xf9, 0xc5, 0xa7, 0xc8, 0xbb, 0x06, 0x70, - 0x3f, 0x04, 0x1b, 0xcf, 0xbc, 0x34, 0x46, 0x39, 0xa4, 0x14, 0xf7, 0xbd, 0x25, 0x9d, 0x4a, 0x27, - 0x7d, 0xc6, 0x9d, 0x3b, 0x86, 0x36, 0x36, 0x81, 0xe7, 0x66, 0x9c, 0xc0, 0xd6, 0xf8, 0xe4, 0xbd, - 0x0c, 0x5e, 0x3a, 0x61, 0xb0, 0x46, 0x83, 0xf7, 0x93, 0x03, 0xdc, 0x31, 0x3c, 0xc2, 0x05, 0xab, - 0x60, 0x7f, 0x62, 0xee, 0x9a, 0x93, 0x73, 0xd7, 0x03, 0x8b, 0x42, 0xb2, 0xd2, 0x74, 0xfa, 0xdc, - 0x73, 0x74, 0xfa, 0x82, 0x92, 0xe9, 0x46, 0xff, 0x9f, 0x29, 0xad, 0x81, 0xf6, 0xf1, 0x90, 0xeb, - 0x8c, 0xae, 0xfd, 0xd2, 0x04, 0xcd, 0x3d, 0x91, 0xb9, 0x3f, 0x38, 0xe0, 0xe2, 0xf1, 0xd7, 0xe8, - 0x9b, 0xc1, 0x0c, 0x9f, 0x9a, 0xe0, 0xa4, 0x77, 0x55, 0xbb, 0x77, 0x6a, 0x69, 0x1d, 0x9b, 0xfb, - 0xbd, 0x03, 0x96, 0x8f, 0xbd, 0xe3, 0xde, 0x98, 0xd5, 0x77, 0x5a, 0xd9, 0x7e, 0xe7, 0xb4, 0xca, - 0x51, 0x40, 0xdf, 0x39, 0xe0, 0xc2, 0xf4, 0xb3, 0xbf, 0xf1, 0xbc, 0xae, 0x56, 0xd8, 0x7e, 0xfb, - 0x94, 0xc2, 0x3a, 0x9a, 0xf6, 0x99, 0xaf, 0x9f, 0x3c, 0xb8, 0xea, 0x6c, 0x7f, 0xfe, 0xf0, 0xd0, - 0x77, 0x1e, 0x1d, 0xfa, 0xce, 0x5f, 0x87, 0xbe, 0x73, 0xef, 0xc8, 0x6f, 0x3c, 0x3a, 0xf2, 0x1b, - 0x7f, 0x1c, 0xf9, 0x8d, 0x2f, 0xde, 0xca, 0x88, 0xcc, 0x07, 0x49, 0x80, 0x58, 0x61, 0x3f, 0xb8, - 0xe1, 0xd3, 0x2b, 0x37, 0x47, 0xff, 0x19, 0xd5, 0xf5, 0xf0, 0xee, 0xe4, 0xcf, 0x86, 0x1c, 0x96, - 0x58, 0x24, 0xf3, 0xba, 0x3f, 0xaf, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x0a, 0x39, 0xd8, - 0x9d, 0x08, 0x00, 0x00, + // 985 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xf7, 0x36, 0x69, 0x9a, 0x8c, 0x93, 0x34, 0x9d, 0xa6, 0xea, 0xc6, 0xa4, 0x76, 0x62, 0x38, + 0x44, 0x15, 0xd9, 0x25, 0xed, 0xa1, 0x10, 0x09, 0x81, 0x93, 0x00, 0x01, 0x14, 0x28, 0x4b, 0x24, + 0x24, 0x38, 0xac, 0xc6, 0xb3, 0x93, 0xdd, 0x51, 0xbd, 0x33, 0xd6, 0xcc, 0x78, 0x5b, 0xdf, 0x10, + 0x27, 0x24, 0x24, 0x54, 0x24, 0x0e, 0x1c, 0x7b, 0xe0, 0x03, 0x14, 0x89, 0x0f, 0xd1, 0x63, 0x85, + 0x10, 0x70, 0x2a, 0x28, 0x39, 0x94, 0x33, 0x9f, 0x00, 0xcd, 0xcc, 0xae, 0xe3, 0xd8, 0x6e, 0xe5, + 0xba, 0xb7, 0x99, 0xf9, 0xfd, 0x79, 0xef, 0x8d, 0xdf, 0x1b, 0x2f, 0x78, 0x9d, 0x32, 0x45, 0x04, + 0x4e, 0x10, 0x65, 0xa1, 0x24, 0xb8, 0x23, 0xa8, 0xea, 0xfa, 0x18, 0x67, 0x7e, 0x5b, 0xf0, 0x8c, + 0x46, 0x44, 0xf8, 0xd9, 0x96, 0xaf, 0xee, 0x79, 0x6d, 0xc1, 0x15, 0x87, 0xaf, 0x8e, 0x60, 0x7b, + 0x18, 0x67, 0x5e, 0xc1, 0xf6, 0xb2, 0xad, 0xca, 0x6a, 0xcc, 0x79, 0xdc, 0x22, 0x3e, 0x6a, 0x53, + 0x1f, 0x31, 0xc6, 0x15, 0x52, 0x94, 0x33, 0x69, 0x2d, 0x2a, 0xb5, 0x1c, 0x35, 0xbb, 0x66, 0xe7, + 0xc8, 0x57, 0x34, 0x25, 0x52, 0xa1, 0xb4, 0x9d, 0x13, 0xaa, 0x83, 0x84, 0xa8, 0x23, 0x8c, 0x43, + 0x8e, 0xaf, 0x0c, 0xe2, 0x88, 0x75, 0x73, 0x68, 0x39, 0xe6, 0x31, 0x37, 0x4b, 0x5f, 0xaf, 0x0a, + 0x01, 0xe6, 0x32, 0xe5, 0x32, 0xb4, 0x80, 0xdd, 0xe4, 0xd0, 0x55, 0xbb, 0xf3, 0x53, 0x19, 0xeb, + 0x3a, 0x53, 0x19, 0x17, 0x59, 0xd2, 0x26, 0xf6, 0x31, 0x17, 0xc4, 0xc7, 0x2d, 0x4a, 0x98, 0xd2, + 0xa8, 0x5d, 0x59, 0x42, 0xfd, 0x77, 0x07, 0x2c, 0x1f, 0xc8, 0xb8, 0x21, 0x25, 0x8d, 0xd9, 0x2e, + 0x67, 0xb2, 0x93, 0x12, 0xf1, 0x31, 0xe9, 0xc2, 0x15, 0x30, 0x6b, 0xef, 0x87, 0x46, 0xae, 0xb3, + 0xe6, 0x6c, 0xcc, 0x05, 0x17, 0xcc, 0xfe, 0xc3, 0x08, 0xde, 0x02, 0x0b, 0xc5, 0x3d, 0x85, 0x28, + 0x8a, 0x84, 0x7b, 0x4e, 0xe3, 0x3b, 0xf0, 0xbf, 0x27, 0xb5, 0xc5, 0x2e, 0x4a, 0x5b, 0xdb, 0x75, + 0x7d, 0x4a, 0xa4, 0xac, 0x07, 0xf3, 0x05, 0xb1, 0x11, 0x45, 0x02, 0xae, 0x83, 0x79, 0x9c, 0x87, + 0x08, 0xef, 0x90, 0xae, 0x3b, 0x65, 0x7c, 0xcb, 0xb8, 0x2f, 0xec, 0x1b, 0x60, 0x46, 0x67, 0x42, + 0x84, 0x3b, 0x6d, 0x4c, 0xdd, 0xdf, 0x7e, 0xdd, 0x5c, 0xce, 0x6b, 0x6d, 0x58, 0xd7, 0xcf, 0x95, + 0xa0, 0x2c, 0x0e, 0x72, 0xde, 0xf6, 0xe5, 0x6f, 0x1f, 0xd4, 0x4a, 0xff, 0x3e, 0xa8, 0x95, 0xbe, + 0x79, 0xfa, 0xf0, 0x7a, 0x7e, 0x58, 0xaf, 0x82, 0xd5, 0x51, 0x55, 0x05, 0x44, 0xb6, 0x39, 0x93, + 0xa4, 0xfe, 0xe7, 0x0c, 0xb8, 0x7c, 0x20, 0xe3, 0x02, 0x6a, 0x44, 0x11, 0xd5, 0x3f, 0xcd, 0xf3, + 0xaa, 0xfe, 0x00, 0x2c, 0x52, 0x46, 0x15, 0x45, 0xad, 0x30, 0x21, 0x34, 0x4e, 0x94, 0x29, 0xbb, + 0x7c, 0xa3, 0xe2, 0xd1, 0x26, 0xf6, 0xf4, 0x1d, 0x7b, 0xf9, 0xcd, 0x66, 0x5b, 0xde, 0xbe, 0x61, + 0xec, 0x4c, 0x3f, 0x7a, 0x52, 0x2b, 0x05, 0x0b, 0xb9, 0xce, 0x1e, 0xea, 0x5b, 0x88, 0x09, 0x23, + 0x92, 0xca, 0x30, 0x41, 0x32, 0x31, 0xb7, 0x30, 0x1f, 0x94, 0xf3, 0xb3, 0x7d, 0x24, 0x13, 0x58, + 0x03, 0xe5, 0x26, 0x65, 0x48, 0x74, 0x2d, 0x63, 0xda, 0x30, 0x80, 0x3d, 0x32, 0x84, 0x5d, 0x00, + 0x64, 0x1b, 0xdd, 0x65, 0xa1, 0xee, 0x3a, 0xf7, 0x7c, 0x9e, 0x88, 0xed, 0x28, 0xaf, 0xe8, 0x28, + 0xef, 0xb0, 0x68, 0xc9, 0x9d, 0x59, 0x9d, 0xc8, 0xfd, 0xbf, 0x6b, 0x4e, 0x30, 0x67, 0x74, 0x1a, + 0x81, 0x9f, 0x80, 0xa5, 0x0e, 0x6b, 0x72, 0x16, 0x51, 0x16, 0x87, 0x6d, 0x22, 0x28, 0x8f, 0xdc, + 0x19, 0x63, 0xb5, 0x32, 0x64, 0xb5, 0x97, 0x37, 0xaf, 0x75, 0xfa, 0x49, 0x3b, 0x5d, 0xec, 0x89, + 0x6f, 0x1b, 0x2d, 0xfc, 0x0c, 0x40, 0x8c, 0x33, 0x93, 0x12, 0xef, 0xa8, 0xc2, 0xf1, 0xc2, 0xf8, + 0x8e, 0x4b, 0x18, 0x67, 0x87, 0x56, 0x9d, 0x5b, 0x7e, 0x05, 0xae, 0x2a, 0x81, 0x98, 0x3c, 0x22, + 0x62, 0xd0, 0x77, 0x76, 0x7c, 0xdf, 0x2b, 0x85, 0xc7, 0x59, 0xf3, 0x7d, 0xb0, 0xd6, 0x6b, 0x47, + 0x41, 0x22, 0x2a, 0x95, 0xa0, 0xcd, 0x8e, 0xd6, 0x86, 0x47, 0x02, 0x61, 0xbd, 0x70, 0xe7, 0x4c, + 0x13, 0x54, 0x0b, 0x5e, 0x70, 0x86, 0xf6, 0x7e, 0xce, 0x82, 0x9f, 0x82, 0xd7, 0x9a, 0x2d, 0x8e, + 0xef, 0x48, 0x9d, 0x5c, 0x78, 0xc6, 0xc9, 0x84, 0x4e, 0xa9, 0x94, 0xda, 0x0d, 0xac, 0x39, 0x1b, + 0x53, 0xc1, 0xba, 0xe5, 0xde, 0x26, 0x62, 0xaf, 0x8f, 0x79, 0xd8, 0x47, 0x84, 0x9b, 0x00, 0x26, + 0x54, 0x2a, 0x2e, 0x28, 0x46, 0xad, 0x90, 0x30, 0x25, 0x28, 0x91, 0x6e, 0xd9, 0xc8, 0x2f, 0x9d, + 0x22, 0xef, 0x59, 0x00, 0x7e, 0x04, 0xd6, 0x9f, 0x19, 0x34, 0xc4, 0x09, 0x62, 0x8c, 0xb4, 0xdc, + 0x79, 0x53, 0x4a, 0x2d, 0x7a, 0x46, 0xcc, 0x5d, 0x4b, 0xeb, 0x9b, 0xc0, 0x85, 0x31, 0x27, 0xb0, + 0xdc, 0x3f, 0x79, 0xd7, 0xc0, 0x2b, 0x23, 0x06, 0xab, 0x37, 0x78, 0xbf, 0x38, 0x00, 0xf6, 0xe1, + 0x01, 0x49, 0x79, 0x86, 0x5a, 0xcf, 0x9b, 0xbb, 0x06, 0x98, 0x93, 0x8a, 0xb7, 0x6d, 0xa7, 0x9f, + 0x7b, 0x81, 0x4e, 0x9f, 0xd5, 0x32, 0xd3, 0xe8, 0xa7, 0x25, 0x4d, 0x4d, 0x52, 0xd2, 0x2a, 0xa8, + 0x0c, 0xa7, 0xdc, 0xab, 0xe8, 0x67, 0x07, 0x5c, 0xd1, 0x70, 0x82, 0x58, 0x4c, 0x02, 0x72, 0x17, + 0x89, 0x68, 0x8f, 0x30, 0x9e, 0x4a, 0x58, 0x07, 0x0b, 0x91, 0x59, 0x85, 0x8a, 0xeb, 0x87, 0xd2, + 0x75, 0xd6, 0xa6, 0xf4, 0x7b, 0x67, 0x0f, 0x0f, 0x79, 0x23, 0x8a, 0xe0, 0x06, 0x58, 0x3a, 0xe5, + 0x08, 0x6d, 0xad, 0x8b, 0xd4, 0xb4, 0xc5, 0x82, 0x66, 0x02, 0xbe, 0x74, 0x11, 0x35, 0x70, 0x6d, + 0x64, 0x96, 0x45, 0x1d, 0x37, 0xfe, 0x98, 0x06, 0x53, 0x07, 0x32, 0x86, 0x3f, 0x38, 0xe0, 0xd2, + 0xf0, 0xdf, 0xc1, 0x5b, 0xde, 0x18, 0x7f, 0x99, 0xde, 0xa8, 0x37, 0xb7, 0xd2, 0x98, 0x58, 0x5a, + 0xe4, 0x06, 0xbf, 0x77, 0xc0, 0xd2, 0xd0, 0x5b, 0xfd, 0xe6, 0xb8, 0xbe, 0x83, 0xca, 0xca, 0xbb, + 0x93, 0x2a, 0x7b, 0x09, 0x7d, 0xe7, 0x80, 0x8b, 0x83, 0x3d, 0x7c, 0xeb, 0x45, 0x5d, 0x73, 0x61, + 0xe5, 0x9d, 0x09, 0x85, 0xbd, 0x6c, 0x7e, 0x74, 0x00, 0x1c, 0xd1, 0x7f, 0xdb, 0x63, 0xfb, 0x0e, + 0x69, 0x2b, 0x3b, 0x93, 0x6b, 0x8b, 0xb4, 0x2a, 0xe7, 0xbf, 0x7e, 0xfa, 0xf0, 0xba, 0xb3, 0xf3, + 0xc5, 0xa3, 0xe3, 0xaa, 0xf3, 0xf8, 0xb8, 0xea, 0xfc, 0x73, 0x5c, 0x75, 0xee, 0x9f, 0x54, 0x4b, + 0x8f, 0x4f, 0xaa, 0xa5, 0xbf, 0x4e, 0xaa, 0xa5, 0x2f, 0xdf, 0x8e, 0xa9, 0x4a, 0x3a, 0x4d, 0x0f, + 0xf3, 0x34, 0xff, 0x9e, 0xf1, 0x4f, 0xa3, 0x6e, 0xf6, 0x3e, 0xe3, 0xb2, 0x9b, 0xfe, 0xbd, 0xb3, + 0xdf, 0x72, 0xaa, 0xdb, 0x26, 0xb2, 0x39, 0x63, 0xc6, 0xff, 0xe6, 0xff, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x54, 0x99, 0x33, 0x3b, 0xfc, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -527,6 +645,7 @@ type MsgClient interface { AssignConsumerKey(ctx context.Context, in *MsgAssignConsumerKey, opts ...grpc.CallOption) (*MsgAssignConsumerKeyResponse, error) ConsumerAddition(ctx context.Context, in *MsgConsumerAddition, opts ...grpc.CallOption) (*MsgConsumerAdditionResponse, error) ConsumerRemoval(ctx context.Context, in *MsgConsumerRemoval, opts ...grpc.CallOption) (*MsgConsumerRemovalResponse, error) + ChangeRewardDenoms(ctx context.Context, in *MsgChangeRewardDenoms, opts ...grpc.CallOption) (*MsgChangeRewardDenomsResponse, error) } type msgClient struct { @@ -564,11 +683,21 @@ func (c *msgClient) ConsumerRemoval(ctx context.Context, in *MsgConsumerRemoval, return out, nil } +func (c *msgClient) ChangeRewardDenoms(ctx context.Context, in *MsgChangeRewardDenoms, opts ...grpc.CallOption) (*MsgChangeRewardDenomsResponse, error) { + out := new(MsgChangeRewardDenomsResponse) + err := c.cc.Invoke(ctx, "/interchain_security.ccv.provider.v1.Msg/ChangeRewardDenoms", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { AssignConsumerKey(context.Context, *MsgAssignConsumerKey) (*MsgAssignConsumerKeyResponse, error) ConsumerAddition(context.Context, *MsgConsumerAddition) (*MsgConsumerAdditionResponse, error) ConsumerRemoval(context.Context, *MsgConsumerRemoval) (*MsgConsumerRemovalResponse, error) + ChangeRewardDenoms(context.Context, *MsgChangeRewardDenoms) (*MsgChangeRewardDenomsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -584,6 +713,9 @@ func (*UnimplementedMsgServer) ConsumerAddition(ctx context.Context, req *MsgCon func (*UnimplementedMsgServer) ConsumerRemoval(ctx context.Context, req *MsgConsumerRemoval) (*MsgConsumerRemovalResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ConsumerRemoval not implemented") } +func (*UnimplementedMsgServer) ChangeRewardDenoms(ctx context.Context, req *MsgChangeRewardDenoms) (*MsgChangeRewardDenomsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangeRewardDenoms not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -643,6 +775,24 @@ func _Msg_ConsumerRemoval_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Msg_ChangeRewardDenoms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgChangeRewardDenoms) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ChangeRewardDenoms(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/interchain_security.ccv.provider.v1.Msg/ChangeRewardDenoms", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ChangeRewardDenoms(ctx, req.(*MsgChangeRewardDenoms)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "interchain_security.ccv.provider.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -659,6 +809,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "ConsumerRemoval", Handler: _Msg_ConsumerRemoval_Handler, }, + { + MethodName: "ChangeRewardDenoms", + Handler: _Msg_ChangeRewardDenoms_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "interchain_security/ccv/provider/v1/tx.proto", @@ -903,7 +1057,7 @@ func (m *MsgConsumerRemoval) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.Signer) i = encodeVarintTx(dAtA, i, uint64(len(m.Signer))) i-- - dAtA[i] = 0x6a + dAtA[i] = 0x1a } n6, err6 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.StopTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.StopTime):]) if err6 != nil { @@ -912,13 +1066,13 @@ func (m *MsgConsumerRemoval) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= n6 i = encodeVarintTx(dAtA, i, uint64(n6)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x12 if len(m.ChainId) > 0 { i -= len(m.ChainId) copy(dAtA[i:], m.ChainId) i = encodeVarintTx(dAtA, i, uint64(len(m.ChainId))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -946,6 +1100,77 @@ func (m *MsgConsumerRemovalResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } +func (m *MsgChangeRewardDenoms) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgChangeRewardDenoms) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgChangeRewardDenoms) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Signer) > 0 { + i -= len(m.Signer) + copy(dAtA[i:], m.Signer) + i = encodeVarintTx(dAtA, i, uint64(len(m.Signer))) + i-- + dAtA[i] = 0x1a + } + if len(m.DenomsToRemove) > 0 { + for iNdEx := len(m.DenomsToRemove) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DenomsToRemove[iNdEx]) + copy(dAtA[i:], m.DenomsToRemove[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.DenomsToRemove[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.DenomsToAdd) > 0 { + for iNdEx := len(m.DenomsToAdd) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DenomsToAdd[iNdEx]) + copy(dAtA[i:], m.DenomsToAdd[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.DenomsToAdd[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *MsgChangeRewardDenomsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgChangeRewardDenomsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgChangeRewardDenomsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintTx(dAtA []byte, offset int, v uint64) int { offset -= sovTx(v) base := offset @@ -1077,6 +1302,40 @@ func (m *MsgConsumerRemovalResponse) Size() (n int) { return n } +func (m *MsgChangeRewardDenoms) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.DenomsToAdd) > 0 { + for _, s := range m.DenomsToAdd { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.DenomsToRemove) > 0 { + for _, s := range m.DenomsToRemove { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + l = len(m.Signer) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgChangeRewardDenomsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1839,7 +2098,7 @@ func (m *MsgConsumerRemoval) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: MsgConsumerRemoval: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 3: + case 1: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) } @@ -1871,7 +2130,7 @@ func (m *MsgConsumerRemoval) Unmarshal(dAtA []byte) error { } m.ChainId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field StopTime", wireType) } @@ -1904,7 +2163,7 @@ func (m *MsgConsumerRemoval) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 13: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) } @@ -2007,6 +2266,202 @@ func (m *MsgConsumerRemovalResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgChangeRewardDenoms) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgChangeRewardDenoms: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgChangeRewardDenoms: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomsToAdd", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DenomsToAdd = append(m.DenomsToAdd, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomsToRemove", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DenomsToRemove = append(m.DenomsToRemove, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgChangeRewardDenomsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgChangeRewardDenomsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgChangeRewardDenomsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 From c688955344cafa0bae8feaae569d8e80c4762800 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Fri, 3 Nov 2023 16:38:23 +0100 Subject: [PATCH 06/17] move client/proposals to client/legacy_proposals --- x/ccv/provider/client/{proposals.go => legacy_proposals.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename x/ccv/provider/client/{proposals.go => legacy_proposals.go} (100%) diff --git a/x/ccv/provider/client/proposals.go b/x/ccv/provider/client/legacy_proposals.go similarity index 100% rename from x/ccv/provider/client/proposals.go rename to x/ccv/provider/client/legacy_proposals.go From cc6639a1bac15b4d1ec2b8e1bbb958efcf93daa5 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Fri, 3 Nov 2023 16:40:24 +0100 Subject: [PATCH 07/17] Testing: renaming --- tests/e2e/actions.go | 6 +++--- tests/e2e/main.go | 4 ++-- tests/e2e/steps_sovereign_changeover.go | 2 +- tests/e2e/steps_start_chains.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/e2e/actions.go b/tests/e2e/actions.go index 4f4b74a435..b6537b5550 100644 --- a/tests/e2e/actions.go +++ b/tests/e2e/actions.go @@ -217,7 +217,7 @@ func (tr TestRun) submitTextProposal( tr.waitBlocks(action.chain, 1, 10*time.Second) } -type submitConsumerAdditionProposalAction struct { +type submitConsumerAdditionLegacyProposalAction struct { preCCV bool chain chainID from validatorID @@ -228,8 +228,8 @@ type submitConsumerAdditionProposalAction struct { distributionChannel string } -func (tr TestRun) submitConsumerAdditionProposal( - action submitConsumerAdditionProposalAction, +func (tr TestRun) submitConsumerAdditionLegacyProposal( + action submitConsumerAdditionLegacyProposalAction, verbose bool, ) { spawnTime := tr.containerConfig.now.Add(time.Duration(action.spawnTime) * time.Millisecond) diff --git a/tests/e2e/main.go b/tests/e2e/main.go index cbab7b1fbb..f95d8405e4 100644 --- a/tests/e2e/main.go +++ b/tests/e2e/main.go @@ -204,8 +204,8 @@ func (tr *TestRun) runStep(step Step, verbose bool) { tr.sendTokens(action, verbose) case submitTextProposalAction: tr.submitTextProposal(action, verbose) - case submitConsumerAdditionProposalAction: - tr.submitConsumerAdditionProposal(action, verbose) + case submitConsumerAdditionLegacyProposalAction: + tr.submitConsumerAdditionLegacyProposal(action, verbose) case submitConsumerRemovalProposalAction: tr.submitConsumerRemovalProposal(action, verbose) case submitParamChangeLegacyProposalAction: diff --git a/tests/e2e/steps_sovereign_changeover.go b/tests/e2e/steps_sovereign_changeover.go index 64022d708c..41aff777d7 100644 --- a/tests/e2e/steps_sovereign_changeover.go +++ b/tests/e2e/steps_sovereign_changeover.go @@ -41,7 +41,7 @@ func stepsSovereignTransferChan() []Step { func stepsChangeoverToConsumer(consumerName string) []Step { s := []Step{ { - action: submitConsumerAdditionProposalAction{ + action: submitConsumerAdditionLegacyProposalAction{ preCCV: true, chain: chainID("provi"), from: validatorID("alice"), diff --git a/tests/e2e/steps_start_chains.go b/tests/e2e/steps_start_chains.go index 257c2ca710..60084c2fd3 100644 --- a/tests/e2e/steps_start_chains.go +++ b/tests/e2e/steps_start_chains.go @@ -34,7 +34,7 @@ func stepStartProviderChain() []Step { func stepsStartConsumerChain(consumerName string, proposalIndex, chainIndex uint, setupTransferChans bool) []Step { s := []Step{ { - action: submitConsumerAdditionProposalAction{ + action: submitConsumerAdditionLegacyProposalAction{ chain: chainID("provi"), from: validatorID("alice"), deposit: 10000001, From 8af8b7d12a60f49dd469abd4f5385ff05c3a0661 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Fri, 3 Nov 2023 16:42:06 +0100 Subject: [PATCH 08/17] Register amino message --- .../ccv/provider/v1/tx.proto | 2 + x/ccv/provider/types/codec.go | 2 + x/ccv/provider/types/tx.pb.go | 127 +++++++++--------- 3 files changed, 69 insertions(+), 62 deletions(-) diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index 80621a3989..a5082f22d7 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -3,6 +3,7 @@ package interchain_security.ccv.provider.v1; option go_package = "github.com/cosmos/interchain-security/v3/x/ccv/provider/types"; +import "amino/amino.proto"; import "google/api/annotations.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; @@ -57,6 +58,7 @@ message MsgAssignConsumerKeyResponse {} // // Note: this replaces ConsumerAdditionProposal which is deprecated and will be removed soon message MsgConsumerAddition { + option (amino.name) = "cosmos-sdk/MsgConsumerAddition"; option (cosmos.msg.v1.signer) = "signer"; // the proposed chain-id of the new consumer chain, must be different from all diff --git a/x/ccv/provider/types/codec.go b/x/ccv/provider/types/codec.go index 7f8078c556..b33a390c5f 100644 --- a/x/ccv/provider/types/codec.go +++ b/x/ccv/provider/types/codec.go @@ -2,6 +2,7 @@ package types import ( "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/legacy" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" @@ -11,6 +12,7 @@ import ( // RegisterLegacyAminoCodec registers the necessary x/ibc transfer interfaces and concrete types // on the provided LegacyAmino codec. These types are used for Amino JSON serialization. func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { + legacy.RegisterAminoMsg(cdc, &MsgConsumerAddition{}, "cosmos-sdk/MsgConsumerAddition") } // RegisterInterfaces registers the provider proposal structs to the interface registry diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index 16d87df8e6..7aa598fc82 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -9,6 +9,7 @@ import ( _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/codec/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -565,69 +566,71 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 985 bytes of a gzipped FileDescriptorProto + // 1012 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0x36, 0x69, 0x9a, 0x8c, 0x93, 0x34, 0x9d, 0xa6, 0xea, 0xc6, 0xa4, 0x76, 0x62, 0x38, - 0x44, 0x15, 0xd9, 0x25, 0xed, 0xa1, 0x10, 0x09, 0x81, 0x93, 0x00, 0x01, 0x14, 0x28, 0x4b, 0x24, - 0x24, 0x38, 0xac, 0xc6, 0xb3, 0x93, 0xdd, 0x51, 0xbd, 0x33, 0xd6, 0xcc, 0x78, 0x5b, 0xdf, 0x10, - 0x27, 0x24, 0x24, 0x54, 0x24, 0x0e, 0x1c, 0x7b, 0xe0, 0x03, 0x14, 0x89, 0x0f, 0xd1, 0x63, 0x85, - 0x10, 0x70, 0x2a, 0x28, 0x39, 0x94, 0x33, 0x9f, 0x00, 0xcd, 0xcc, 0xae, 0xe3, 0xd8, 0x6e, 0xe5, - 0xba, 0xb7, 0x99, 0xf9, 0xfd, 0x79, 0xef, 0x8d, 0xdf, 0x1b, 0x2f, 0x78, 0x9d, 0x32, 0x45, 0x04, - 0x4e, 0x10, 0x65, 0xa1, 0x24, 0xb8, 0x23, 0xa8, 0xea, 0xfa, 0x18, 0x67, 0x7e, 0x5b, 0xf0, 0x8c, - 0x46, 0x44, 0xf8, 0xd9, 0x96, 0xaf, 0xee, 0x79, 0x6d, 0xc1, 0x15, 0x87, 0xaf, 0x8e, 0x60, 0x7b, - 0x18, 0x67, 0x5e, 0xc1, 0xf6, 0xb2, 0xad, 0xca, 0x6a, 0xcc, 0x79, 0xdc, 0x22, 0x3e, 0x6a, 0x53, - 0x1f, 0x31, 0xc6, 0x15, 0x52, 0x94, 0x33, 0x69, 0x2d, 0x2a, 0xb5, 0x1c, 0x35, 0xbb, 0x66, 0xe7, - 0xc8, 0x57, 0x34, 0x25, 0x52, 0xa1, 0xb4, 0x9d, 0x13, 0xaa, 0x83, 0x84, 0xa8, 0x23, 0x8c, 0x43, - 0x8e, 0xaf, 0x0c, 0xe2, 0x88, 0x75, 0x73, 0x68, 0x39, 0xe6, 0x31, 0x37, 0x4b, 0x5f, 0xaf, 0x0a, - 0x01, 0xe6, 0x32, 0xe5, 0x32, 0xb4, 0x80, 0xdd, 0xe4, 0xd0, 0x55, 0xbb, 0xf3, 0x53, 0x19, 0xeb, - 0x3a, 0x53, 0x19, 0x17, 0x59, 0xd2, 0x26, 0xf6, 0x31, 0x17, 0xc4, 0xc7, 0x2d, 0x4a, 0x98, 0xd2, - 0xa8, 0x5d, 0x59, 0x42, 0xfd, 0x77, 0x07, 0x2c, 0x1f, 0xc8, 0xb8, 0x21, 0x25, 0x8d, 0xd9, 0x2e, - 0x67, 0xb2, 0x93, 0x12, 0xf1, 0x31, 0xe9, 0xc2, 0x15, 0x30, 0x6b, 0xef, 0x87, 0x46, 0xae, 0xb3, - 0xe6, 0x6c, 0xcc, 0x05, 0x17, 0xcc, 0xfe, 0xc3, 0x08, 0xde, 0x02, 0x0b, 0xc5, 0x3d, 0x85, 0x28, - 0x8a, 0x84, 0x7b, 0x4e, 0xe3, 0x3b, 0xf0, 0xbf, 0x27, 0xb5, 0xc5, 0x2e, 0x4a, 0x5b, 0xdb, 0x75, - 0x7d, 0x4a, 0xa4, 0xac, 0x07, 0xf3, 0x05, 0xb1, 0x11, 0x45, 0x02, 0xae, 0x83, 0x79, 0x9c, 0x87, - 0x08, 0xef, 0x90, 0xae, 0x3b, 0x65, 0x7c, 0xcb, 0xb8, 0x2f, 0xec, 0x1b, 0x60, 0x46, 0x67, 0x42, - 0x84, 0x3b, 0x6d, 0x4c, 0xdd, 0xdf, 0x7e, 0xdd, 0x5c, 0xce, 0x6b, 0x6d, 0x58, 0xd7, 0xcf, 0x95, - 0xa0, 0x2c, 0x0e, 0x72, 0xde, 0xf6, 0xe5, 0x6f, 0x1f, 0xd4, 0x4a, 0xff, 0x3e, 0xa8, 0x95, 0xbe, - 0x79, 0xfa, 0xf0, 0x7a, 0x7e, 0x58, 0xaf, 0x82, 0xd5, 0x51, 0x55, 0x05, 0x44, 0xb6, 0x39, 0x93, - 0xa4, 0xfe, 0xe7, 0x0c, 0xb8, 0x7c, 0x20, 0xe3, 0x02, 0x6a, 0x44, 0x11, 0xd5, 0x3f, 0xcd, 0xf3, - 0xaa, 0xfe, 0x00, 0x2c, 0x52, 0x46, 0x15, 0x45, 0xad, 0x30, 0x21, 0x34, 0x4e, 0x94, 0x29, 0xbb, - 0x7c, 0xa3, 0xe2, 0xd1, 0x26, 0xf6, 0xf4, 0x1d, 0x7b, 0xf9, 0xcd, 0x66, 0x5b, 0xde, 0xbe, 0x61, - 0xec, 0x4c, 0x3f, 0x7a, 0x52, 0x2b, 0x05, 0x0b, 0xb9, 0xce, 0x1e, 0xea, 0x5b, 0x88, 0x09, 0x23, - 0x92, 0xca, 0x30, 0x41, 0x32, 0x31, 0xb7, 0x30, 0x1f, 0x94, 0xf3, 0xb3, 0x7d, 0x24, 0x13, 0x58, - 0x03, 0xe5, 0x26, 0x65, 0x48, 0x74, 0x2d, 0x63, 0xda, 0x30, 0x80, 0x3d, 0x32, 0x84, 0x5d, 0x00, - 0x64, 0x1b, 0xdd, 0x65, 0xa1, 0xee, 0x3a, 0xf7, 0x7c, 0x9e, 0x88, 0xed, 0x28, 0xaf, 0xe8, 0x28, - 0xef, 0xb0, 0x68, 0xc9, 0x9d, 0x59, 0x9d, 0xc8, 0xfd, 0xbf, 0x6b, 0x4e, 0x30, 0x67, 0x74, 0x1a, - 0x81, 0x9f, 0x80, 0xa5, 0x0e, 0x6b, 0x72, 0x16, 0x51, 0x16, 0x87, 0x6d, 0x22, 0x28, 0x8f, 0xdc, - 0x19, 0x63, 0xb5, 0x32, 0x64, 0xb5, 0x97, 0x37, 0xaf, 0x75, 0xfa, 0x49, 0x3b, 0x5d, 0xec, 0x89, - 0x6f, 0x1b, 0x2d, 0xfc, 0x0c, 0x40, 0x8c, 0x33, 0x93, 0x12, 0xef, 0xa8, 0xc2, 0xf1, 0xc2, 0xf8, - 0x8e, 0x4b, 0x18, 0x67, 0x87, 0x56, 0x9d, 0x5b, 0x7e, 0x05, 0xae, 0x2a, 0x81, 0x98, 0x3c, 0x22, - 0x62, 0xd0, 0x77, 0x76, 0x7c, 0xdf, 0x2b, 0x85, 0xc7, 0x59, 0xf3, 0x7d, 0xb0, 0xd6, 0x6b, 0x47, - 0x41, 0x22, 0x2a, 0x95, 0xa0, 0xcd, 0x8e, 0xd6, 0x86, 0x47, 0x02, 0x61, 0xbd, 0x70, 0xe7, 0x4c, - 0x13, 0x54, 0x0b, 0x5e, 0x70, 0x86, 0xf6, 0x7e, 0xce, 0x82, 0x9f, 0x82, 0xd7, 0x9a, 0x2d, 0x8e, - 0xef, 0x48, 0x9d, 0x5c, 0x78, 0xc6, 0xc9, 0x84, 0x4e, 0xa9, 0x94, 0xda, 0x0d, 0xac, 0x39, 0x1b, - 0x53, 0xc1, 0xba, 0xe5, 0xde, 0x26, 0x62, 0xaf, 0x8f, 0x79, 0xd8, 0x47, 0x84, 0x9b, 0x00, 0x26, - 0x54, 0x2a, 0x2e, 0x28, 0x46, 0xad, 0x90, 0x30, 0x25, 0x28, 0x91, 0x6e, 0xd9, 0xc8, 0x2f, 0x9d, - 0x22, 0xef, 0x59, 0x00, 0x7e, 0x04, 0xd6, 0x9f, 0x19, 0x34, 0xc4, 0x09, 0x62, 0x8c, 0xb4, 0xdc, - 0x79, 0x53, 0x4a, 0x2d, 0x7a, 0x46, 0xcc, 0x5d, 0x4b, 0xeb, 0x9b, 0xc0, 0x85, 0x31, 0x27, 0xb0, - 0xdc, 0x3f, 0x79, 0xd7, 0xc0, 0x2b, 0x23, 0x06, 0xab, 0x37, 0x78, 0xbf, 0x38, 0x00, 0xf6, 0xe1, - 0x01, 0x49, 0x79, 0x86, 0x5a, 0xcf, 0x9b, 0xbb, 0x06, 0x98, 0x93, 0x8a, 0xb7, 0x6d, 0xa7, 0x9f, - 0x7b, 0x81, 0x4e, 0x9f, 0xd5, 0x32, 0xd3, 0xe8, 0xa7, 0x25, 0x4d, 0x4d, 0x52, 0xd2, 0x2a, 0xa8, - 0x0c, 0xa7, 0xdc, 0xab, 0xe8, 0x67, 0x07, 0x5c, 0xd1, 0x70, 0x82, 0x58, 0x4c, 0x02, 0x72, 0x17, - 0x89, 0x68, 0x8f, 0x30, 0x9e, 0x4a, 0x58, 0x07, 0x0b, 0x91, 0x59, 0x85, 0x8a, 0xeb, 0x87, 0xd2, - 0x75, 0xd6, 0xa6, 0xf4, 0x7b, 0x67, 0x0f, 0x0f, 0x79, 0x23, 0x8a, 0xe0, 0x06, 0x58, 0x3a, 0xe5, - 0x08, 0x6d, 0xad, 0x8b, 0xd4, 0xb4, 0xc5, 0x82, 0x66, 0x02, 0xbe, 0x74, 0x11, 0x35, 0x70, 0x6d, - 0x64, 0x96, 0x45, 0x1d, 0x37, 0xfe, 0x98, 0x06, 0x53, 0x07, 0x32, 0x86, 0x3f, 0x38, 0xe0, 0xd2, - 0xf0, 0xdf, 0xc1, 0x5b, 0xde, 0x18, 0x7f, 0x99, 0xde, 0xa8, 0x37, 0xb7, 0xd2, 0x98, 0x58, 0x5a, - 0xe4, 0x06, 0xbf, 0x77, 0xc0, 0xd2, 0xd0, 0x5b, 0xfd, 0xe6, 0xb8, 0xbe, 0x83, 0xca, 0xca, 0xbb, - 0x93, 0x2a, 0x7b, 0x09, 0x7d, 0xe7, 0x80, 0x8b, 0x83, 0x3d, 0x7c, 0xeb, 0x45, 0x5d, 0x73, 0x61, - 0xe5, 0x9d, 0x09, 0x85, 0xbd, 0x6c, 0x7e, 0x74, 0x00, 0x1c, 0xd1, 0x7f, 0xdb, 0x63, 0xfb, 0x0e, - 0x69, 0x2b, 0x3b, 0x93, 0x6b, 0x8b, 0xb4, 0x2a, 0xe7, 0xbf, 0x7e, 0xfa, 0xf0, 0xba, 0xb3, 0xf3, - 0xc5, 0xa3, 0xe3, 0xaa, 0xf3, 0xf8, 0xb8, 0xea, 0xfc, 0x73, 0x5c, 0x75, 0xee, 0x9f, 0x54, 0x4b, - 0x8f, 0x4f, 0xaa, 0xa5, 0xbf, 0x4e, 0xaa, 0xa5, 0x2f, 0xdf, 0x8e, 0xa9, 0x4a, 0x3a, 0x4d, 0x0f, - 0xf3, 0x34, 0xff, 0x9e, 0xf1, 0x4f, 0xa3, 0x6e, 0xf6, 0x3e, 0xe3, 0xb2, 0x9b, 0xfe, 0xbd, 0xb3, - 0xdf, 0x72, 0xaa, 0xdb, 0x26, 0xb2, 0x39, 0x63, 0xc6, 0xff, 0xe6, 0xff, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x54, 0x99, 0x33, 0x3b, 0xfc, 0x09, 0x00, 0x00, + 0x14, 0xf7, 0x36, 0x69, 0x9a, 0x8c, 0x93, 0x36, 0xd9, 0xa6, 0xea, 0xc6, 0xa4, 0xeb, 0xc4, 0x70, + 0x88, 0x22, 0xb2, 0x4b, 0xda, 0x43, 0x21, 0x12, 0x02, 0x3b, 0x01, 0x02, 0x28, 0x50, 0x96, 0x48, + 0x48, 0x70, 0x58, 0x8d, 0x67, 0x27, 0xbb, 0xa3, 0x78, 0x67, 0xac, 0x99, 0xf1, 0xb6, 0xbe, 0x21, + 0x4e, 0x08, 0x24, 0x54, 0x24, 0x0e, 0x1c, 0x7b, 0xe0, 0x03, 0x04, 0x89, 0x0f, 0xd1, 0x63, 0x85, + 0x10, 0xe2, 0x54, 0x50, 0x72, 0x08, 0x67, 0x8e, 0x9c, 0xd0, 0xcc, 0xec, 0x3a, 0x8e, 0xed, 0x56, + 0x6e, 0xb8, 0x44, 0x33, 0xf3, 0xfb, 0xf3, 0xde, 0x9b, 0xbc, 0x37, 0x5e, 0xf0, 0x2a, 0xa1, 0x12, + 0x73, 0x94, 0x40, 0x42, 0x43, 0x81, 0x51, 0x87, 0x13, 0xd9, 0xf5, 0x11, 0xca, 0xfc, 0x36, 0x67, + 0x19, 0x89, 0x30, 0xf7, 0xb3, 0x4d, 0x5f, 0x3e, 0xf0, 0xda, 0x9c, 0x49, 0x66, 0xbf, 0x3c, 0x82, + 0xed, 0x21, 0x94, 0x79, 0x05, 0xdb, 0xcb, 0x36, 0x2b, 0x0b, 0x30, 0x25, 0x94, 0xf9, 0xfa, 0xaf, + 0xd1, 0x55, 0x96, 0x63, 0xc6, 0xe2, 0x16, 0xf6, 0x61, 0x9b, 0xf8, 0x90, 0x52, 0x26, 0xa1, 0x24, + 0x8c, 0x8a, 0x1c, 0xad, 0xe6, 0xa8, 0xde, 0x35, 0x3b, 0x07, 0xbe, 0x24, 0x29, 0x16, 0x12, 0xa6, + 0xed, 0x9c, 0xe0, 0x0e, 0x12, 0xa2, 0x0e, 0xd7, 0x0e, 0x39, 0xbe, 0x34, 0x88, 0x43, 0xda, 0xcd, + 0xa1, 0xc5, 0x98, 0xc5, 0x4c, 0x2f, 0x7d, 0xb5, 0x2a, 0x04, 0x88, 0x89, 0x94, 0x89, 0xd0, 0x00, + 0x66, 0x93, 0x43, 0x37, 0xcd, 0xce, 0x4f, 0x45, 0xac, 0x4a, 0x4f, 0x45, 0x5c, 0x64, 0x49, 0x9a, + 0xc8, 0x47, 0x8c, 0x63, 0x1f, 0xb5, 0x08, 0xa6, 0x52, 0xa1, 0x66, 0x65, 0x08, 0xb5, 0xdf, 0x2c, + 0xb0, 0xb8, 0x27, 0xe2, 0xba, 0x10, 0x24, 0xa6, 0xdb, 0x8c, 0x8a, 0x4e, 0x8a, 0xf9, 0x87, 0xb8, + 0x6b, 0x2f, 0x81, 0x69, 0x73, 0x65, 0x24, 0x72, 0xac, 0x15, 0x6b, 0x6d, 0x26, 0xb8, 0xa2, 0xf7, + 0xef, 0x47, 0xf6, 0x5d, 0x30, 0x57, 0x5c, 0x5d, 0x08, 0xa3, 0x88, 0x3b, 0x97, 0x14, 0xde, 0xb0, + 0xff, 0x79, 0x5a, 0xbd, 0xda, 0x85, 0x69, 0x6b, 0xab, 0xa6, 0x4e, 0xb1, 0x10, 0xb5, 0x60, 0xb6, + 0x20, 0xd6, 0xa3, 0x88, 0xdb, 0xab, 0x60, 0x16, 0xe5, 0x21, 0xc2, 0x43, 0xdc, 0x75, 0x26, 0xb4, + 0x6f, 0x19, 0xf5, 0x85, 0x7d, 0x0d, 0x4c, 0xa9, 0x4c, 0x30, 0x77, 0x26, 0xb5, 0xa9, 0xf3, 0xeb, + 0x2f, 0x1b, 0x8b, 0x79, 0xad, 0x75, 0xe3, 0xfa, 0xa9, 0xe4, 0x84, 0xc6, 0x41, 0xce, 0xdb, 0xba, + 0xfe, 0xf5, 0xa3, 0x6a, 0xe9, 0xef, 0x47, 0xd5, 0xd2, 0x57, 0xa7, 0x47, 0xeb, 0xf9, 0x61, 0xcd, + 0x05, 0xcb, 0xa3, 0xaa, 0x0a, 0xb0, 0x68, 0x33, 0x2a, 0x70, 0xed, 0xdf, 0x29, 0x70, 0x7d, 0x4f, + 0xc4, 0x05, 0x54, 0x8f, 0x22, 0xa2, 0xfe, 0x35, 0xcf, 0xab, 0xfa, 0x3d, 0x70, 0x95, 0x50, 0x22, + 0x09, 0x6c, 0x85, 0x09, 0x26, 0x71, 0x22, 0x75, 0xd9, 0xe5, 0xdb, 0x15, 0x8f, 0x34, 0x91, 0xa7, + 0xee, 0xd8, 0xcb, 0x6f, 0x36, 0xdb, 0xf4, 0x76, 0x35, 0xa3, 0x31, 0xf9, 0xf8, 0x69, 0xb5, 0x14, + 0xcc, 0xe5, 0x3a, 0x73, 0xa8, 0x6e, 0x21, 0xc6, 0x14, 0x0b, 0x22, 0xc2, 0x04, 0x8a, 0x44, 0xdf, + 0xc2, 0x6c, 0x50, 0xce, 0xcf, 0x76, 0xa1, 0x48, 0xec, 0x2a, 0x28, 0x37, 0x09, 0x85, 0xbc, 0x6b, + 0x18, 0x93, 0x9a, 0x01, 0xcc, 0x91, 0x26, 0x6c, 0x03, 0x20, 0xda, 0xf0, 0x3e, 0x0d, 0x55, 0xd7, + 0x39, 0x97, 0xf3, 0x44, 0x4c, 0x47, 0x79, 0x45, 0x47, 0x79, 0xfb, 0x45, 0x4b, 0x36, 0xa6, 0x55, + 0x22, 0x0f, 0xff, 0xac, 0x5a, 0xc1, 0x8c, 0xd6, 0x29, 0xc4, 0xfe, 0x08, 0xcc, 0x77, 0x68, 0x93, + 0xd1, 0x88, 0xd0, 0x38, 0x6c, 0x63, 0x4e, 0x58, 0xe4, 0x4c, 0x69, 0xab, 0xa5, 0x21, 0xab, 0x9d, + 0xbc, 0x79, 0x8d, 0xd3, 0x8f, 0xca, 0xe9, 0x5a, 0x4f, 0x7c, 0x4f, 0x6b, 0xed, 0x4f, 0x80, 0x8d, + 0x50, 0xa6, 0x53, 0x62, 0x1d, 0x59, 0x38, 0x5e, 0x19, 0xdf, 0x71, 0x1e, 0xa1, 0x6c, 0xdf, 0xa8, + 0x73, 0xcb, 0x2f, 0xc0, 0x4d, 0xc9, 0x21, 0x15, 0x07, 0x98, 0x0f, 0xfa, 0x4e, 0x8f, 0xef, 0x7b, + 0xa3, 0xf0, 0x38, 0x6f, 0xbe, 0x0b, 0x56, 0x7a, 0xed, 0xc8, 0x71, 0x44, 0x84, 0xe4, 0xa4, 0xd9, + 0x51, 0xda, 0xf0, 0x80, 0x43, 0xa4, 0x16, 0xce, 0x8c, 0x6e, 0x02, 0xb7, 0xe0, 0x05, 0xe7, 0x68, + 0xef, 0xe6, 0x2c, 0xfb, 0x63, 0xf0, 0x4a, 0xb3, 0xc5, 0xd0, 0xa1, 0x50, 0xc9, 0x85, 0xe7, 0x9c, + 0x74, 0xe8, 0x94, 0x08, 0xa1, 0xdc, 0xc0, 0x8a, 0xb5, 0x36, 0x11, 0xac, 0x1a, 0xee, 0x3d, 0xcc, + 0x77, 0xfa, 0x98, 0xfb, 0x7d, 0x44, 0x7b, 0x03, 0xd8, 0x09, 0x11, 0x92, 0x71, 0x82, 0x60, 0x2b, + 0xc4, 0x54, 0x72, 0x82, 0x85, 0x53, 0xd6, 0xf2, 0x85, 0x33, 0xe4, 0x1d, 0x03, 0xd8, 0x1f, 0x80, + 0xd5, 0x67, 0x06, 0x0d, 0x51, 0x02, 0x29, 0xc5, 0x2d, 0x67, 0x56, 0x97, 0x52, 0x8d, 0x9e, 0x11, + 0x73, 0xdb, 0xd0, 0xfa, 0x26, 0x70, 0x6e, 0xcc, 0x09, 0xf4, 0xfa, 0x26, 0xef, 0x9b, 0xd3, 0xa3, + 0x75, 0xd7, 0xb0, 0x37, 0x44, 0x74, 0xe8, 0x8f, 0x18, 0xb2, 0xda, 0x2d, 0xf0, 0xd2, 0x88, 0xe3, + 0xde, 0x6c, 0xfe, 0x6c, 0x01, 0xbb, 0x0f, 0x0f, 0x70, 0xca, 0x32, 0xd8, 0x7a, 0xde, 0x68, 0xd6, + 0xc1, 0x8c, 0x90, 0xac, 0x6d, 0x86, 0xe1, 0xd2, 0x0b, 0x0c, 0xc3, 0xb4, 0x92, 0xe9, 0x59, 0x38, + 0xab, 0x7a, 0x62, 0xcc, 0xaa, 0xcb, 0xfd, 0xef, 0xcd, 0x32, 0xa8, 0x0c, 0xa7, 0xdc, 0xab, 0xe8, + 0x27, 0x0b, 0xdc, 0x50, 0x70, 0x02, 0x69, 0x8c, 0x03, 0x7c, 0x1f, 0xf2, 0x68, 0x07, 0x53, 0x96, + 0x0a, 0xbb, 0x06, 0xe6, 0x22, 0xbd, 0x0a, 0x25, 0x53, 0x6f, 0xa9, 0x63, 0xad, 0x4c, 0xa8, 0x27, + 0xd1, 0x1c, 0xee, 0xb3, 0x7a, 0x14, 0xd9, 0x6b, 0x60, 0xfe, 0x8c, 0xc3, 0x95, 0xb5, 0x2a, 0x52, + 0xd1, 0xae, 0x16, 0x34, 0x1d, 0xf0, 0x7f, 0x17, 0x51, 0x05, 0xb7, 0x46, 0x66, 0x59, 0xd4, 0x71, + 0xfb, 0xf7, 0x49, 0x30, 0xb1, 0x27, 0x62, 0xfb, 0x7b, 0x0b, 0x2c, 0x0c, 0xff, 0x62, 0xbc, 0xe1, + 0x8d, 0xf1, 0x43, 0xeb, 0x8d, 0x7a, 0x96, 0x2b, 0xf5, 0x0b, 0x4b, 0x8b, 0xdc, 0xec, 0xef, 0x2c, + 0x30, 0x3f, 0xf4, 0x9c, 0xbf, 0x3e, 0xae, 0xef, 0xa0, 0xb2, 0xf2, 0xf6, 0x45, 0x95, 0xbd, 0x84, + 0xbe, 0xb5, 0xc0, 0xb5, 0xc1, 0x1e, 0xbe, 0xfb, 0xa2, 0xae, 0xb9, 0xb0, 0xf2, 0xd6, 0x05, 0x85, + 0xbd, 0x6c, 0x7e, 0xb0, 0x80, 0x3d, 0xa2, 0xff, 0xb6, 0xc6, 0xf6, 0x1d, 0xd2, 0x56, 0x1a, 0x17, + 0xd7, 0x16, 0x69, 0x55, 0x2e, 0x7f, 0x79, 0x7a, 0xb4, 0x6e, 0x35, 0x3e, 0x7b, 0x7c, 0xec, 0x5a, + 0x4f, 0x8e, 0x5d, 0xeb, 0xaf, 0x63, 0xd7, 0x7a, 0x78, 0xe2, 0x96, 0x9e, 0x9c, 0xb8, 0xa5, 0x3f, + 0x4e, 0xdc, 0xd2, 0xe7, 0x6f, 0xc6, 0x44, 0x26, 0x9d, 0xa6, 0x87, 0x58, 0x9a, 0x7f, 0xf2, 0xf8, + 0x67, 0x51, 0x37, 0x7a, 0x1f, 0x7f, 0xd9, 0x1d, 0xff, 0xc1, 0xf9, 0x2f, 0x40, 0xd9, 0x6d, 0x63, + 0xd1, 0x9c, 0xd2, 0xe3, 0x7f, 0xe7, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x2f, 0x25, 0xa2, + 0x32, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. From c264d4f69faeae786ac9fe17b4bd6182ad5ce90d Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Mon, 6 Nov 2023 11:37:53 +0100 Subject: [PATCH 09/17] Fix e2e tests --- Dockerfile | 2 +- go.mod | 2 +- tests/e2e/config.go | 6 +++++ tests/e2e/testnet-scripts/start-chain.sh | 26 +++++++++---------- tests/e2e/testnet-scripts/start-changeover.sh | 18 ++++++------- tests/e2e/testnet-scripts/start-sovereign.sh | 16 ++++++------ 6 files changed, 38 insertions(+), 32 deletions(-) diff --git a/Dockerfile b/Dockerfile index de183457d0..5066d3af17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ ADD . /interchain-security WORKDIR /interchain-security -# Do not specify version here. It leads to odd replacement behavior +# Do not specify version here. It leads to odd replacement behavior RUN if [ -d "./cosmos-sdk" ]; then go mod edit -replace github.com/cosmos/cosmos-sdk=./cosmos-sdk; fi RUN go mod tidy diff --git a/go.mod b/go.mod index e47232b944..95d155db91 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/cosmos/interchain-security/v3 go 1.21 -toolchain go1.21.1 +toolchain go1.21.3 require ( cosmossdk.io/errors v1.0.0 diff --git a/tests/e2e/config.go b/tests/e2e/config.go index 4e025f03e7..749ea0f4bd 100644 --- a/tests/e2e/config.go +++ b/tests/e2e/config.go @@ -184,6 +184,7 @@ func SlashThrottleTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + + ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"15\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -230,6 +231,7 @@ func DefaultTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + + ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"15\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -246,6 +248,7 @@ func DefaultTestRun() TestRun { func DemocracyTestRun(allowReward bool) TestRun { consumerGenChanges := ".app_state.ccvconsumer.params.blocks_per_distribution_transmission = \"20\" | " + ".app_state.gov.voting_params.voting_period = \"10s\" | " + + ".app_state.gov.params.expedited_voting_period = \"5s\" | " + ".app_state.slashing.params.signed_blocks_window = \"10\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -328,6 +331,7 @@ func MultiConsumerTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + + ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"10\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -339,6 +343,7 @@ func MultiConsumerTestRun() TestRun { ipPrefix: "7.7.9", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + + ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"10\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -386,6 +391,7 @@ func ChangeoverTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + + ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"15\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + diff --git a/tests/e2e/testnet-scripts/start-chain.sh b/tests/e2e/testnet-scripts/start-chain.sh index 4c5a8c61ae..65221ca5d7 100644 --- a/tests/e2e/testnet-scripts/start-chain.sh +++ b/tests/e2e/testnet-scripts/start-chain.sh @@ -55,18 +55,18 @@ NODES=$(echo "$VALIDATORS" | jq '. | length') # SETUP NETWORK NAMESPACES, see: https://adil.medium.com/container-networking-under-the-hood-network-namespaces-6b2b8fe8dc2a # Create virtual bridge device (acts like a switch) -ip link add name virtual-bridge type bridge || true +ip link add name virtual-bridge type bridge || true for i in $(seq 0 $(($NODES - 1))); do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$i].ip_suffix") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" + IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" - # Create network namespace + # Create network namespace ip netns add $NET_NAMESPACE_NAME - # Create virtual ethernet device to connect with bridge + # Create virtual ethernet device to connect with bridge ip link add $NET_NAMESPACE_NAME-in type veth peer name $NET_NAMESPACE_NAME-out # Connect input end of virtual ethernet device to namespace ip link set $NET_NAMESPACE_NAME-in netns $NET_NAMESPACE_NAME @@ -84,14 +84,14 @@ do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - # Enable in/out interfaces for the namespace + # Enable in/out interfaces for the namespace ip link set $NET_NAMESPACE_NAME-out up ip netns exec $NET_NAMESPACE_NAME ip link set dev $NET_NAMESPACE_NAME-in up # Enable loopback device ip netns exec $NET_NAMESPACE_NAME ip link set dev lo up done -# Assign IP for bridge, to route between default network namespace and bridge +# Assign IP for bridge, to route between default network namespace and bridge BRIDGE_IP="$CHAIN_IP_PREFIX.254/24" ip addr add $BRIDGE_IP dev virtual-bridge @@ -129,11 +129,11 @@ do --keyring-backend test \ --recover > /dev/null fi - + # Give validators their initial token allocations # move the genesis in mv /$CHAIN_ID/genesis.json /$CHAIN_ID/validator$VAL_ID/config/genesis.json - + # give this validator some money ALLOCATION=$(echo "$VALIDATORS" | jq -r ".[$i].allocation") $BIN genesis add-genesis-account validator$VAL_ID $ALLOCATION \ @@ -178,7 +178,7 @@ do fi # Make a gentx (this command also sets up validator state on disk even if we are not going to use the gentx for anything) - if [ "$SKIP_GENTX" = "false" ] ; then + if [ "$SKIP_GENTX" = "false" ] ; then STAKE_AMOUNT=$(echo "$VALIDATORS" | jq -r ".[$i].stake") $BIN genesis gentx validator$VAL_ID "$STAKE_AMOUNT" \ --home /$CHAIN_ID/validator$VAL_ID \ @@ -186,7 +186,7 @@ do --moniker validator$VAL_ID \ --chain-id=$CHAIN_ID - # Copy gentxs to the first validator for possible future collection. + # Copy gentxs to the first validator for possible future collection. # Obviously we don't need to copy the first validator's gentx to itself if [ $VAL_ID != $FIRST_VAL_ID ]; then cp /$CHAIN_ID/validator$VAL_ID/config/gentx/* /$CHAIN_ID/validator$FIRST_VAL_ID/config/gentx/ @@ -194,7 +194,7 @@ do fi # Modify tendermint configs of validator - if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then + if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then #'s/foo/bar/;s/abc/def/' sed -i "$TENDERMINT_CONFIG_TRANSFORM" $CHAIN_ID/validator$VAL_ID/config/config.toml fi @@ -209,7 +209,7 @@ if [ "$SKIP_GENTX" = "false" ] ; then # make the final genesis.json $BIN genesis collect-gentxs --home /$CHAIN_ID/validator$FIRST_VAL_ID - # and copy it to the root + # and copy it to the root cp /$CHAIN_ID/validator$FIRST_VAL_ID/config/genesis.json /$CHAIN_ID/genesis.json # put the now final genesis.json into the correct folders @@ -249,7 +249,7 @@ do do if [ $i -ne $j ]; then PEER_VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$j].val_id") - PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") + PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") NODE_ID=$($BIN tendermint show-node-id --home /$CHAIN_ID/validator$PEER_VAL_ID) ADDRESS="$NODE_ID@$CHAIN_IP_PREFIX.$PEER_VAL_IP_SUFFIX:26656" # (jq -r '.body.memo' /$CHAIN_ID/validator$j/config/gentx/*) # Getting the address from the gentx should also work diff --git a/tests/e2e/testnet-scripts/start-changeover.sh b/tests/e2e/testnet-scripts/start-changeover.sh index 3bbd832a9d..afbccadf72 100644 --- a/tests/e2e/testnet-scripts/start-changeover.sh +++ b/tests/e2e/testnet-scripts/start-changeover.sh @@ -50,7 +50,7 @@ NODES=$(echo "$VALIDATORS" | jq '. | length') # SETUP NETWORK NAMESPACES, see: https://adil.medium.com/container-networking-under-the-hood-network-namespaces-6b2b8fe8dc2a # Create virtual bridge device (acts like a switch) -ip link add name virtual-bridge type bridge || true +ip link add name virtual-bridge type bridge || true for i in $(seq 0 $(($NODES - 1))); do @@ -59,11 +59,11 @@ do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$i].ip_suffix") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" + IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" - # Create network namespace + # Create network namespace ip netns add $NET_NAMESPACE_NAME - # Create virtual ethernet device to connect with bridge + # Create virtual ethernet device to connect with bridge ip link add $NET_NAMESPACE_NAME-in type veth peer name $NET_NAMESPACE_NAME-out # Connect input end of virtual ethernet device to namespace ip link set $NET_NAMESPACE_NAME-in netns $NET_NAMESPACE_NAME @@ -84,7 +84,7 @@ do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - # Enable in/out interfaces for the namespace + # Enable in/out interfaces for the namespace ip link set $NET_NAMESPACE_NAME-out up ip netns exec $NET_NAMESPACE_NAME ip link set dev $NET_NAMESPACE_NAME-in up # Enable loopback device @@ -92,7 +92,7 @@ do fi done -# Assign IP for bridge, to route between default network namespace and bridge +# Assign IP for bridge, to route between default network namespace and bridge # BRIDGE_IP="$CHAIN_IP_PREFIX.254/24" # ip addr add $BRIDGE_IP dev virtual-bridge @@ -127,7 +127,7 @@ do fi # Modify tendermint configs of validator - if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then + if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then #'s/foo/bar/;s/abc/def/' sed -i "$TENDERMINT_CONFIG_TRANSFORM" $CHAIN_ID/validator$VAL_ID/config/config.toml fi @@ -160,7 +160,7 @@ do do if [ $i -ne $j ]; then PEER_VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$j].val_id") - PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") + PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") NODE_ID=$($BIN tendermint show-node-id --home /$CHAIN_ID/validator$PEER_VAL_ID) ADDRESS="$NODE_ID@$CHAIN_IP_PREFIX.$PEER_VAL_IP_SUFFIX:26656" # (jq -r '.body.memo' /$CHAIN_ID/validator$j/config/gentx/*) # Getting the address from the gentx should also work @@ -184,4 +184,4 @@ set -e echo "done!!!!!!!!" -read -p "Press Return to Close..." \ No newline at end of file +read -p "Press Return to Close..." diff --git a/tests/e2e/testnet-scripts/start-sovereign.sh b/tests/e2e/testnet-scripts/start-sovereign.sh index 34adce39df..112f901bc2 100644 --- a/tests/e2e/testnet-scripts/start-sovereign.sh +++ b/tests/e2e/testnet-scripts/start-sovereign.sh @@ -33,17 +33,17 @@ TENDERMINT_CONFIG_TRANSFORM=$6 # SETUP NETWORK NAMESPACES, see: https://adil.medium.com/container-networking-under-the-hood-network-namespaces-6b2b8fe8dc2a # Create virtual bridge device (acts like a switch) -ip link add name virtual-bridge type bridge || true +ip link add name virtual-bridge type bridge || true # used globally in the whole script VAL_ID=$(echo "$VALIDATORS" | jq -r ".[0].val_id") VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[0].ip_suffix") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" -IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" +IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" -# Create network namespace +# Create network namespace ip netns add $NET_NAMESPACE_NAME -# Create virtual ethernet device to connect with bridge +# Create virtual ethernet device to connect with bridge ip link add $NET_NAMESPACE_NAME-in type veth peer name $NET_NAMESPACE_NAME-out # Connect input end of virtual ethernet device to namespace ip link set $NET_NAMESPACE_NAME-in netns $NET_NAMESPACE_NAME @@ -56,13 +56,13 @@ ip link set $NET_NAMESPACE_NAME-out master virtual-bridge ip link set virtual-bridge up NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" -# Enable in/out interfaces for the namespace +# Enable in/out interfaces for the namespace ip link set $NET_NAMESPACE_NAME-out up ip netns exec $NET_NAMESPACE_NAME ip link set dev $NET_NAMESPACE_NAME-in up # Enable loopback device ip netns exec $NET_NAMESPACE_NAME ip link set dev lo up -# Assign IP for bridge, to route between default network namespace and bridge +# Assign IP for bridge, to route between default network namespace and bridge BRIDGE_IP="$CHAIN_IP_PREFIX.254/24" ip addr add $BRIDGE_IP dev virtual-bridge @@ -100,7 +100,7 @@ echo "$VALIDATORS" | jq -r ".[0].mnemonic" | $BIN keys add validator$VAL_ID \ --recover > /dev/null # Modify tendermint configs of validator -if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then +if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then #'s/foo/bar/;s/abc/def/' sed -i "$TENDERMINT_CONFIG_TRANSFORM" $CHAIN_ID/validator$VAL_ID/config/config.toml fi @@ -130,4 +130,4 @@ set -e echo "done!!!!!!!!" -read -p "Press Return to Close..." \ No newline at end of file +read -p "Press Return to Close..." From 4b040698ef8b04ed045fedb37204f9603413fdb0 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Mon, 6 Nov 2023 13:31:31 +0100 Subject: [PATCH 10/17] Remove amino tag on new message --- .../ccv/provider/v1/tx.proto | 1 - x/ccv/provider/types/tx.pb.go | 129 +++++++++--------- 2 files changed, 64 insertions(+), 66 deletions(-) diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index a5082f22d7..7109cf2e67 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -58,7 +58,6 @@ message MsgAssignConsumerKeyResponse {} // // Note: this replaces ConsumerAdditionProposal which is deprecated and will be removed soon message MsgConsumerAddition { - option (amino.name) = "cosmos-sdk/MsgConsumerAddition"; option (cosmos.msg.v1.signer) = "signer"; // the proposed chain-id of the new consumer chain, must be different from all diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index 7aa598fc82..168401053f 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -566,71 +566,70 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 1012 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0x36, 0x69, 0x9a, 0x8c, 0x93, 0x36, 0xd9, 0xa6, 0xea, 0xc6, 0xa4, 0xeb, 0xc4, 0x70, - 0x88, 0x22, 0xb2, 0x4b, 0xda, 0x43, 0x21, 0x12, 0x02, 0x3b, 0x01, 0x02, 0x28, 0x50, 0x96, 0x48, - 0x48, 0x70, 0x58, 0x8d, 0x67, 0x27, 0xbb, 0xa3, 0x78, 0x67, 0xac, 0x99, 0xf1, 0xb6, 0xbe, 0x21, - 0x4e, 0x08, 0x24, 0x54, 0x24, 0x0e, 0x1c, 0x7b, 0xe0, 0x03, 0x04, 0x89, 0x0f, 0xd1, 0x63, 0x85, - 0x10, 0xe2, 0x54, 0x50, 0x72, 0x08, 0x67, 0x8e, 0x9c, 0xd0, 0xcc, 0xec, 0x3a, 0x8e, 0xed, 0x56, - 0x6e, 0xb8, 0x44, 0x33, 0xf3, 0xfb, 0xf3, 0xde, 0x9b, 0xbc, 0x37, 0x5e, 0xf0, 0x2a, 0xa1, 0x12, - 0x73, 0x94, 0x40, 0x42, 0x43, 0x81, 0x51, 0x87, 0x13, 0xd9, 0xf5, 0x11, 0xca, 0xfc, 0x36, 0x67, - 0x19, 0x89, 0x30, 0xf7, 0xb3, 0x4d, 0x5f, 0x3e, 0xf0, 0xda, 0x9c, 0x49, 0x66, 0xbf, 0x3c, 0x82, - 0xed, 0x21, 0x94, 0x79, 0x05, 0xdb, 0xcb, 0x36, 0x2b, 0x0b, 0x30, 0x25, 0x94, 0xf9, 0xfa, 0xaf, - 0xd1, 0x55, 0x96, 0x63, 0xc6, 0xe2, 0x16, 0xf6, 0x61, 0x9b, 0xf8, 0x90, 0x52, 0x26, 0xa1, 0x24, - 0x8c, 0x8a, 0x1c, 0xad, 0xe6, 0xa8, 0xde, 0x35, 0x3b, 0x07, 0xbe, 0x24, 0x29, 0x16, 0x12, 0xa6, - 0xed, 0x9c, 0xe0, 0x0e, 0x12, 0xa2, 0x0e, 0xd7, 0x0e, 0x39, 0xbe, 0x34, 0x88, 0x43, 0xda, 0xcd, - 0xa1, 0xc5, 0x98, 0xc5, 0x4c, 0x2f, 0x7d, 0xb5, 0x2a, 0x04, 0x88, 0x89, 0x94, 0x89, 0xd0, 0x00, - 0x66, 0x93, 0x43, 0x37, 0xcd, 0xce, 0x4f, 0x45, 0xac, 0x4a, 0x4f, 0x45, 0x5c, 0x64, 0x49, 0x9a, - 0xc8, 0x47, 0x8c, 0x63, 0x1f, 0xb5, 0x08, 0xa6, 0x52, 0xa1, 0x66, 0x65, 0x08, 0xb5, 0xdf, 0x2c, - 0xb0, 0xb8, 0x27, 0xe2, 0xba, 0x10, 0x24, 0xa6, 0xdb, 0x8c, 0x8a, 0x4e, 0x8a, 0xf9, 0x87, 0xb8, - 0x6b, 0x2f, 0x81, 0x69, 0x73, 0x65, 0x24, 0x72, 0xac, 0x15, 0x6b, 0x6d, 0x26, 0xb8, 0xa2, 0xf7, - 0xef, 0x47, 0xf6, 0x5d, 0x30, 0x57, 0x5c, 0x5d, 0x08, 0xa3, 0x88, 0x3b, 0x97, 0x14, 0xde, 0xb0, - 0xff, 0x79, 0x5a, 0xbd, 0xda, 0x85, 0x69, 0x6b, 0xab, 0xa6, 0x4e, 0xb1, 0x10, 0xb5, 0x60, 0xb6, - 0x20, 0xd6, 0xa3, 0x88, 0xdb, 0xab, 0x60, 0x16, 0xe5, 0x21, 0xc2, 0x43, 0xdc, 0x75, 0x26, 0xb4, - 0x6f, 0x19, 0xf5, 0x85, 0x7d, 0x0d, 0x4c, 0xa9, 0x4c, 0x30, 0x77, 0x26, 0xb5, 0xa9, 0xf3, 0xeb, - 0x2f, 0x1b, 0x8b, 0x79, 0xad, 0x75, 0xe3, 0xfa, 0xa9, 0xe4, 0x84, 0xc6, 0x41, 0xce, 0xdb, 0xba, - 0xfe, 0xf5, 0xa3, 0x6a, 0xe9, 0xef, 0x47, 0xd5, 0xd2, 0x57, 0xa7, 0x47, 0xeb, 0xf9, 0x61, 0xcd, - 0x05, 0xcb, 0xa3, 0xaa, 0x0a, 0xb0, 0x68, 0x33, 0x2a, 0x70, 0xed, 0xdf, 0x29, 0x70, 0x7d, 0x4f, - 0xc4, 0x05, 0x54, 0x8f, 0x22, 0xa2, 0xfe, 0x35, 0xcf, 0xab, 0xfa, 0x3d, 0x70, 0x95, 0x50, 0x22, - 0x09, 0x6c, 0x85, 0x09, 0x26, 0x71, 0x22, 0x75, 0xd9, 0xe5, 0xdb, 0x15, 0x8f, 0x34, 0x91, 0xa7, - 0xee, 0xd8, 0xcb, 0x6f, 0x36, 0xdb, 0xf4, 0x76, 0x35, 0xa3, 0x31, 0xf9, 0xf8, 0x69, 0xb5, 0x14, - 0xcc, 0xe5, 0x3a, 0x73, 0xa8, 0x6e, 0x21, 0xc6, 0x14, 0x0b, 0x22, 0xc2, 0x04, 0x8a, 0x44, 0xdf, - 0xc2, 0x6c, 0x50, 0xce, 0xcf, 0x76, 0xa1, 0x48, 0xec, 0x2a, 0x28, 0x37, 0x09, 0x85, 0xbc, 0x6b, - 0x18, 0x93, 0x9a, 0x01, 0xcc, 0x91, 0x26, 0x6c, 0x03, 0x20, 0xda, 0xf0, 0x3e, 0x0d, 0x55, 0xd7, - 0x39, 0x97, 0xf3, 0x44, 0x4c, 0x47, 0x79, 0x45, 0x47, 0x79, 0xfb, 0x45, 0x4b, 0x36, 0xa6, 0x55, - 0x22, 0x0f, 0xff, 0xac, 0x5a, 0xc1, 0x8c, 0xd6, 0x29, 0xc4, 0xfe, 0x08, 0xcc, 0x77, 0x68, 0x93, - 0xd1, 0x88, 0xd0, 0x38, 0x6c, 0x63, 0x4e, 0x58, 0xe4, 0x4c, 0x69, 0xab, 0xa5, 0x21, 0xab, 0x9d, - 0xbc, 0x79, 0x8d, 0xd3, 0x8f, 0xca, 0xe9, 0x5a, 0x4f, 0x7c, 0x4f, 0x6b, 0xed, 0x4f, 0x80, 0x8d, - 0x50, 0xa6, 0x53, 0x62, 0x1d, 0x59, 0x38, 0x5e, 0x19, 0xdf, 0x71, 0x1e, 0xa1, 0x6c, 0xdf, 0xa8, - 0x73, 0xcb, 0x2f, 0xc0, 0x4d, 0xc9, 0x21, 0x15, 0x07, 0x98, 0x0f, 0xfa, 0x4e, 0x8f, 0xef, 0x7b, - 0xa3, 0xf0, 0x38, 0x6f, 0xbe, 0x0b, 0x56, 0x7a, 0xed, 0xc8, 0x71, 0x44, 0x84, 0xe4, 0xa4, 0xd9, - 0x51, 0xda, 0xf0, 0x80, 0x43, 0xa4, 0x16, 0xce, 0x8c, 0x6e, 0x02, 0xb7, 0xe0, 0x05, 0xe7, 0x68, - 0xef, 0xe6, 0x2c, 0xfb, 0x63, 0xf0, 0x4a, 0xb3, 0xc5, 0xd0, 0xa1, 0x50, 0xc9, 0x85, 0xe7, 0x9c, - 0x74, 0xe8, 0x94, 0x08, 0xa1, 0xdc, 0xc0, 0x8a, 0xb5, 0x36, 0x11, 0xac, 0x1a, 0xee, 0x3d, 0xcc, - 0x77, 0xfa, 0x98, 0xfb, 0x7d, 0x44, 0x7b, 0x03, 0xd8, 0x09, 0x11, 0x92, 0x71, 0x82, 0x60, 0x2b, - 0xc4, 0x54, 0x72, 0x82, 0x85, 0x53, 0xd6, 0xf2, 0x85, 0x33, 0xe4, 0x1d, 0x03, 0xd8, 0x1f, 0x80, - 0xd5, 0x67, 0x06, 0x0d, 0x51, 0x02, 0x29, 0xc5, 0x2d, 0x67, 0x56, 0x97, 0x52, 0x8d, 0x9e, 0x11, - 0x73, 0xdb, 0xd0, 0xfa, 0x26, 0x70, 0x6e, 0xcc, 0x09, 0xf4, 0xfa, 0x26, 0xef, 0x9b, 0xd3, 0xa3, - 0x75, 0xd7, 0xb0, 0x37, 0x44, 0x74, 0xe8, 0x8f, 0x18, 0xb2, 0xda, 0x2d, 0xf0, 0xd2, 0x88, 0xe3, - 0xde, 0x6c, 0xfe, 0x6c, 0x01, 0xbb, 0x0f, 0x0f, 0x70, 0xca, 0x32, 0xd8, 0x7a, 0xde, 0x68, 0xd6, - 0xc1, 0x8c, 0x90, 0xac, 0x6d, 0x86, 0xe1, 0xd2, 0x0b, 0x0c, 0xc3, 0xb4, 0x92, 0xe9, 0x59, 0x38, - 0xab, 0x7a, 0x62, 0xcc, 0xaa, 0xcb, 0xfd, 0xef, 0xcd, 0x32, 0xa8, 0x0c, 0xa7, 0xdc, 0xab, 0xe8, - 0x27, 0x0b, 0xdc, 0x50, 0x70, 0x02, 0x69, 0x8c, 0x03, 0x7c, 0x1f, 0xf2, 0x68, 0x07, 0x53, 0x96, - 0x0a, 0xbb, 0x06, 0xe6, 0x22, 0xbd, 0x0a, 0x25, 0x53, 0x6f, 0xa9, 0x63, 0xad, 0x4c, 0xa8, 0x27, - 0xd1, 0x1c, 0xee, 0xb3, 0x7a, 0x14, 0xd9, 0x6b, 0x60, 0xfe, 0x8c, 0xc3, 0x95, 0xb5, 0x2a, 0x52, - 0xd1, 0xae, 0x16, 0x34, 0x1d, 0xf0, 0x7f, 0x17, 0x51, 0x05, 0xb7, 0x46, 0x66, 0x59, 0xd4, 0x71, - 0xfb, 0xf7, 0x49, 0x30, 0xb1, 0x27, 0x62, 0xfb, 0x7b, 0x0b, 0x2c, 0x0c, 0xff, 0x62, 0xbc, 0xe1, - 0x8d, 0xf1, 0x43, 0xeb, 0x8d, 0x7a, 0x96, 0x2b, 0xf5, 0x0b, 0x4b, 0x8b, 0xdc, 0xec, 0xef, 0x2c, - 0x30, 0x3f, 0xf4, 0x9c, 0xbf, 0x3e, 0xae, 0xef, 0xa0, 0xb2, 0xf2, 0xf6, 0x45, 0x95, 0xbd, 0x84, - 0xbe, 0xb5, 0xc0, 0xb5, 0xc1, 0x1e, 0xbe, 0xfb, 0xa2, 0xae, 0xb9, 0xb0, 0xf2, 0xd6, 0x05, 0x85, - 0xbd, 0x6c, 0x7e, 0xb0, 0x80, 0x3d, 0xa2, 0xff, 0xb6, 0xc6, 0xf6, 0x1d, 0xd2, 0x56, 0x1a, 0x17, - 0xd7, 0x16, 0x69, 0x55, 0x2e, 0x7f, 0x79, 0x7a, 0xb4, 0x6e, 0x35, 0x3e, 0x7b, 0x7c, 0xec, 0x5a, - 0x4f, 0x8e, 0x5d, 0xeb, 0xaf, 0x63, 0xd7, 0x7a, 0x78, 0xe2, 0x96, 0x9e, 0x9c, 0xb8, 0xa5, 0x3f, - 0x4e, 0xdc, 0xd2, 0xe7, 0x6f, 0xc6, 0x44, 0x26, 0x9d, 0xa6, 0x87, 0x58, 0x9a, 0x7f, 0xf2, 0xf8, - 0x67, 0x51, 0x37, 0x7a, 0x1f, 0x7f, 0xd9, 0x1d, 0xff, 0xc1, 0xf9, 0x2f, 0x40, 0xd9, 0x6d, 0x63, - 0xd1, 0x9c, 0xd2, 0xe3, 0x7f, 0xe7, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x2f, 0x25, 0xa2, - 0x32, 0x0a, 0x00, 0x00, + // 995 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xf7, 0x36, 0x69, 0x9a, 0x8c, 0x93, 0x34, 0xd9, 0xa6, 0xea, 0xc6, 0xdf, 0xd4, 0x4e, 0xfc, + 0xe5, 0x10, 0x55, 0x64, 0x97, 0xb4, 0x87, 0x42, 0x24, 0x04, 0x4e, 0x02, 0x04, 0x50, 0xa0, 0x2c, + 0x91, 0x90, 0xe0, 0xb0, 0x1a, 0xcf, 0x4e, 0x76, 0x47, 0xf5, 0xce, 0x58, 0x33, 0xe3, 0x6d, 0x7d, + 0x43, 0x9c, 0x90, 0x90, 0x50, 0x91, 0x38, 0x70, 0xec, 0x81, 0x3f, 0xa0, 0x48, 0xfc, 0x11, 0x3d, + 0x56, 0x08, 0x01, 0xa7, 0x82, 0x92, 0x43, 0x39, 0xf3, 0x17, 0xa0, 0xf9, 0xb1, 0x8e, 0x63, 0xbb, + 0x95, 0x6b, 0x2e, 0xd1, 0xcc, 0x7c, 0x7e, 0xbc, 0xf7, 0x26, 0xef, 0x8d, 0x17, 0xbc, 0x4a, 0xa8, + 0xc4, 0x1c, 0xa5, 0x90, 0xd0, 0x48, 0x60, 0xd4, 0xe1, 0x44, 0x76, 0x03, 0x84, 0xf2, 0xa0, 0xcd, + 0x59, 0x4e, 0x62, 0xcc, 0x83, 0x7c, 0x3b, 0x90, 0xf7, 0xfd, 0x36, 0x67, 0x92, 0xb9, 0xff, 0x1f, + 0xc1, 0xf6, 0x11, 0xca, 0xfd, 0x82, 0xed, 0xe7, 0xdb, 0x95, 0x65, 0x98, 0x11, 0xca, 0x02, 0xfd, + 0xd7, 0xe8, 0x2a, 0x6b, 0x09, 0x63, 0x49, 0x0b, 0x07, 0xb0, 0x4d, 0x02, 0x48, 0x29, 0x93, 0x50, + 0x12, 0x46, 0x85, 0x45, 0x6b, 0x16, 0xd5, 0xbb, 0x66, 0xe7, 0x38, 0x90, 0x24, 0xc3, 0x42, 0xc2, + 0xac, 0x6d, 0x09, 0xd5, 0x41, 0x42, 0xdc, 0xe1, 0xda, 0xc1, 0xe2, 0xab, 0x83, 0x38, 0xa4, 0x5d, + 0x0b, 0xad, 0x24, 0x2c, 0x61, 0x7a, 0x19, 0xa8, 0x55, 0x21, 0x40, 0x4c, 0x64, 0x4c, 0x44, 0x06, + 0x30, 0x1b, 0x0b, 0x5d, 0x33, 0xbb, 0x20, 0x13, 0x89, 0x2a, 0x3d, 0x13, 0x49, 0x91, 0x25, 0x69, + 0xa2, 0x00, 0x31, 0x8e, 0x03, 0xd4, 0x22, 0x98, 0x4a, 0x85, 0x9a, 0x95, 0x21, 0xd4, 0x7f, 0x75, + 0xc0, 0xca, 0xa1, 0x48, 0x1a, 0x42, 0x90, 0x84, 0xee, 0x31, 0x2a, 0x3a, 0x19, 0xe6, 0x1f, 0xe2, + 0xae, 0xbb, 0x0a, 0x66, 0xcd, 0x95, 0x91, 0xd8, 0x73, 0xd6, 0x9d, 0xcd, 0xb9, 0xf0, 0x92, 0xde, + 0xbf, 0x1f, 0xbb, 0xb7, 0xc1, 0x42, 0x71, 0x75, 0x11, 0x8c, 0x63, 0xee, 0x5d, 0x50, 0xf8, 0xae, + 0xfb, 0xcf, 0xd3, 0xda, 0x62, 0x17, 0x66, 0xad, 0x9d, 0xba, 0x3a, 0xc5, 0x42, 0xd4, 0xc3, 0xf9, + 0x82, 0xd8, 0x88, 0x63, 0xee, 0x6e, 0x80, 0x79, 0x64, 0x43, 0x44, 0x77, 0x71, 0xd7, 0x9b, 0xd2, + 0xbe, 0x65, 0xd4, 0x17, 0xf6, 0x35, 0x30, 0xa3, 0x32, 0xc1, 0xdc, 0x9b, 0xd6, 0xa6, 0xde, 0x2f, + 0x3f, 0x6f, 0xad, 0xd8, 0x5a, 0x1b, 0xc6, 0xf5, 0x53, 0xc9, 0x09, 0x4d, 0x42, 0xcb, 0xdb, 0xb9, + 0xf2, 0xf5, 0xc3, 0x5a, 0xe9, 0xef, 0x87, 0xb5, 0xd2, 0x57, 0xcf, 0x1e, 0xdd, 0xb0, 0x87, 0xf5, + 0x2a, 0x58, 0x1b, 0x55, 0x55, 0x88, 0x45, 0x9b, 0x51, 0x81, 0xeb, 0xbf, 0xcf, 0x80, 0x2b, 0x87, + 0x22, 0x29, 0xa0, 0x46, 0x1c, 0x13, 0xf5, 0xaf, 0x79, 0x51, 0xd5, 0xef, 0x81, 0x45, 0x42, 0x89, + 0x24, 0xb0, 0x15, 0xa5, 0x98, 0x24, 0xa9, 0xd4, 0x65, 0x97, 0x6f, 0x56, 0x7c, 0xd2, 0x44, 0xbe, + 0xba, 0x63, 0xdf, 0xde, 0x6c, 0xbe, 0xed, 0x1f, 0x68, 0xc6, 0xee, 0xf4, 0xe3, 0xa7, 0xb5, 0x52, + 0xb8, 0x60, 0x75, 0xe6, 0x50, 0xdd, 0x42, 0x82, 0x29, 0x16, 0x44, 0x44, 0x29, 0x14, 0xa9, 0xbe, + 0x85, 0xf9, 0xb0, 0x6c, 0xcf, 0x0e, 0xa0, 0x48, 0xdd, 0x1a, 0x28, 0x37, 0x09, 0x85, 0xbc, 0x6b, + 0x18, 0xd3, 0x9a, 0x01, 0xcc, 0x91, 0x26, 0xec, 0x01, 0x20, 0xda, 0xf0, 0x1e, 0x8d, 0x54, 0xd7, + 0x79, 0x17, 0x6d, 0x22, 0xa6, 0xa3, 0xfc, 0xa2, 0xa3, 0xfc, 0xa3, 0xa2, 0x25, 0x77, 0x67, 0x55, + 0x22, 0x0f, 0xfe, 0xac, 0x39, 0xe1, 0x9c, 0xd6, 0x29, 0xc4, 0xfd, 0x08, 0x2c, 0x75, 0x68, 0x93, + 0xd1, 0x98, 0xd0, 0x24, 0x6a, 0x63, 0x4e, 0x58, 0xec, 0xcd, 0x68, 0xab, 0xd5, 0x21, 0xab, 0x7d, + 0xdb, 0xbc, 0xc6, 0xe9, 0x07, 0xe5, 0x74, 0xb9, 0x27, 0xbe, 0xa3, 0xb5, 0xee, 0x27, 0xc0, 0x45, + 0x28, 0xd7, 0x29, 0xb1, 0x8e, 0x2c, 0x1c, 0x2f, 0x8d, 0xef, 0xb8, 0x84, 0x50, 0x7e, 0x64, 0xd4, + 0xd6, 0xf2, 0x0b, 0x70, 0x4d, 0x72, 0x48, 0xc5, 0x31, 0xe6, 0x83, 0xbe, 0xb3, 0xe3, 0xfb, 0x5e, + 0x2d, 0x3c, 0xce, 0x9b, 0x1f, 0x80, 0xf5, 0x5e, 0x3b, 0x72, 0x1c, 0x13, 0x21, 0x39, 0x69, 0x76, + 0x94, 0x36, 0x3a, 0xe6, 0x10, 0xa9, 0x85, 0x37, 0xa7, 0x9b, 0xa0, 0x5a, 0xf0, 0xc2, 0x73, 0xb4, + 0x77, 0x2d, 0xcb, 0xfd, 0x18, 0xbc, 0xd2, 0x6c, 0x31, 0x74, 0x57, 0xa8, 0xe4, 0xa2, 0x73, 0x4e, + 0x3a, 0x74, 0x46, 0x84, 0x50, 0x6e, 0x60, 0xdd, 0xd9, 0x9c, 0x0a, 0x37, 0x0c, 0xf7, 0x0e, 0xe6, + 0xfb, 0x7d, 0xcc, 0xa3, 0x3e, 0xa2, 0xbb, 0x05, 0xdc, 0x94, 0x08, 0xc9, 0x38, 0x41, 0xb0, 0x15, + 0x61, 0x2a, 0x39, 0xc1, 0xc2, 0x2b, 0x6b, 0xf9, 0xf2, 0x19, 0xf2, 0x8e, 0x01, 0xdc, 0x0f, 0xc0, + 0xc6, 0x73, 0x83, 0x46, 0x28, 0x85, 0x94, 0xe2, 0x96, 0x37, 0xaf, 0x4b, 0xa9, 0xc5, 0xcf, 0x89, + 0xb9, 0x67, 0x68, 0x7d, 0x13, 0xb8, 0x30, 0xe6, 0x04, 0x96, 0xfb, 0x27, 0xef, 0x3a, 0xf8, 0xdf, + 0x88, 0xc1, 0xea, 0x0d, 0xde, 0x4f, 0x0e, 0x70, 0xfb, 0xf0, 0x10, 0x67, 0x2c, 0x87, 0xad, 0x17, + 0xcd, 0x5d, 0x03, 0xcc, 0x09, 0xc9, 0xda, 0xa6, 0xd3, 0x2f, 0xbc, 0x44, 0xa7, 0xcf, 0x2a, 0x99, + 0x6e, 0xf4, 0xb3, 0x92, 0xa6, 0x26, 0x29, 0x69, 0x0d, 0x54, 0x86, 0x53, 0xee, 0x55, 0xf4, 0xa3, + 0x03, 0xae, 0x2a, 0x38, 0x85, 0x34, 0xc1, 0x21, 0xbe, 0x07, 0x79, 0xbc, 0x8f, 0x29, 0xcb, 0x84, + 0x5b, 0x07, 0x0b, 0xb1, 0x5e, 0x45, 0x92, 0xa9, 0x87, 0xd2, 0x73, 0xd6, 0xa7, 0xd4, 0x7b, 0x67, + 0x0e, 0x8f, 0x58, 0x23, 0x8e, 0xdd, 0x4d, 0xb0, 0x74, 0xc6, 0xe1, 0xca, 0x5a, 0x15, 0xa9, 0x68, + 0x8b, 0x05, 0x4d, 0x07, 0xfc, 0xcf, 0x45, 0xd4, 0xc0, 0xf5, 0x91, 0x59, 0x16, 0x75, 0xdc, 0xfc, + 0x6d, 0x1a, 0x4c, 0x1d, 0x8a, 0xc4, 0xfd, 0xce, 0x01, 0xcb, 0xc3, 0x3f, 0x07, 0x6f, 0xf8, 0x63, + 0xfc, 0x8a, 0xfa, 0xa3, 0xde, 0xdc, 0x4a, 0x63, 0x62, 0x69, 0x91, 0x9b, 0xfb, 0xad, 0x03, 0x96, + 0x86, 0xde, 0xea, 0xd7, 0xc7, 0xf5, 0x1d, 0x54, 0x56, 0xde, 0x9e, 0x54, 0xd9, 0x4b, 0xe8, 0x1b, + 0x07, 0x5c, 0x1e, 0xec, 0xe1, 0xdb, 0x2f, 0xeb, 0x6a, 0x85, 0x95, 0xb7, 0x26, 0x14, 0xf6, 0xb2, + 0xf9, 0xde, 0x01, 0xee, 0x88, 0xfe, 0xdb, 0x19, 0xdb, 0x77, 0x48, 0x5b, 0xd9, 0x9d, 0x5c, 0x5b, + 0xa4, 0x55, 0xb9, 0xf8, 0xe5, 0xb3, 0x47, 0x37, 0x9c, 0xdd, 0xcf, 0x1e, 0x9f, 0x54, 0x9d, 0x27, + 0x27, 0x55, 0xe7, 0xaf, 0x93, 0xaa, 0xf3, 0xe0, 0xb4, 0x5a, 0x7a, 0x72, 0x5a, 0x2d, 0xfd, 0x71, + 0x5a, 0x2d, 0x7d, 0xfe, 0x66, 0x42, 0x64, 0xda, 0x69, 0xfa, 0x88, 0x65, 0xf6, 0x7b, 0x26, 0x38, + 0x8b, 0xba, 0xd5, 0xfb, 0xb2, 0xcb, 0x6f, 0x05, 0xf7, 0xcf, 0x7f, 0xde, 0xc9, 0x6e, 0x1b, 0x8b, + 0xe6, 0x8c, 0x1e, 0xff, 0x5b, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x6a, 0x00, 0xc7, 0x0f, + 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. From 275ae8043eeaf98dc153b80509351168af19a2fc Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Tue, 7 Nov 2023 09:52:12 +0100 Subject: [PATCH 11/17] Added message handlers for new proposals --- x/ccv/provider/keeper/msg_server.go | 25 ++++++++++------ x/ccv/provider/keeper/proposal.go | 44 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index 134a4d621b..ff7137d805 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -117,8 +117,11 @@ func (k msgServer) ConsumerAddition(goCtx context.Context, msg *types.MsgConsume return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer) } - // TODO: Call keeper implementation ! - + ctx := sdk.UnwrapSDKContext(goCtx) + err := k.Keeper.HandleNewConsumerAdditionProposal(ctx, msg) + if err != nil { + return nil, errorsmod.Wrapf(err, "failed handling ConsumerAddition proposal") + } return &types.MsgConsumerAdditionResponse{}, nil } @@ -130,20 +133,26 @@ func (k msgServer) ConsumerRemoval( return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer) } - // TODO: Call keeper implementation ! + ctx := sdk.UnwrapSDKContext(goCtx) + err := k.Keeper.HandleNewConsumerRemovalProposal(ctx, msg) + if err != nil { + return nil, errorsmod.Wrapf(err, "failed handling ConsumerAddition proposal") + } return &types.MsgConsumerRemovalResponse{}, nil } -// ConsumerRemoval defines a rpc handler method for MsgConsumerRemoval -func (k msgServer) ChangeRewardDenoms( - goCtx context.Context, - msg *types.MsgChangeRewardDenoms) (*types.MsgChangeRewardDenomsResponse, error) { +// ChangeRewardDenoms defines a rpc handler method for MsgChangeRewardDenoms +func (k msgServer) ChangeRewardDenoms(goCtx context.Context, msg *types.MsgChangeRewardDenoms) (*types.MsgChangeRewardDenomsResponse, error) { if k.GetAuthority() != msg.Signer { return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Signer) } - // TODO: Call keeper implementation ! + sdkCtx := sdk.UnwrapSDKContext(goCtx) + err := k.Keeper.HandleNewConsumerRewardDenomProposal(sdkCtx, msg) + if err != nil { + return nil, errorsmod.Wrapf(err, "failed handling Change Reward Denoms proposal") + } return &types.MsgChangeRewardDenomsResponse{}, nil } diff --git a/x/ccv/provider/keeper/proposal.go b/x/ccv/provider/keeper/proposal.go index a1e1242e7a..c59705cf22 100644 --- a/x/ccv/provider/keeper/proposal.go +++ b/x/ccv/provider/keeper/proposal.go @@ -24,6 +24,50 @@ import ( ccv "github.com/cosmos/interchain-security/v3/x/ccv/types" ) +// Wrapper for the new proposal messages MsgConsumerAddition. +// Will replace legacy handler HandleConsumerAdditionProposal +func (k Keeper) HandleNewConsumerAdditionProposal(ctx sdk.Context, proposal *types.MsgConsumerAddition) error { + p := types.ConsumerAdditionProposal{ + Title: "New ConsumerAddition Proposal", + ChainId: proposal.ChainId, + InitialHeight: proposal.InitialHeight, + GenesisHash: proposal.GenesisHash, + BinaryHash: proposal.BinaryHash, + SpawnTime: proposal.SpawnTime, + UnbondingPeriod: proposal.UnbondingPeriod, + CcvTimeoutPeriod: proposal.CcvTimeoutPeriod, + TransferTimeoutPeriod: proposal.TransferTimeoutPeriod, + ConsumerRedistributionFraction: proposal.ConsumerRedistributionFraction, + BlocksPerDistributionTransmission: proposal.BlocksPerDistributionTransmission, + HistoricalEntries: proposal.HistoricalEntries, + DistributionTransmissionChannel: proposal.DistributionTransmissionChannel, + } + return k.HandleConsumerAdditionProposal(ctx, &p) + +} + +// Wrapper for the new proposal messages MsgConsumerRemoval. +// Will replace legacy handler HandleConsumerRemovalProposal +func (k Keeper) HandleNewConsumerRemovalProposal(ctx sdk.Context, proposal *types.MsgConsumerRemoval) error { + p := types.ConsumerRemovalProposal{ + ChainId: proposal.ChainId, + StopTime: proposal.StopTime, + } + return k.HandleConsumerRemovalProposal(ctx, &p) + +} + +// Wrapper for the new proposal messages MsgChangeRewardDenoms. +// Will replace legacy handler HandleConsumerRewardDenomProposal +func (k Keeper) HandleNewConsumerRewardDenomProposal(ctx sdk.Context, proposal *types.MsgChangeRewardDenoms) error { + p := types.ChangeRewardDenomsProposal{ + Title: "New ChangeRewardDenomsProposal", + DenomsToAdd: proposal.DenomsToAdd, + DenomsToRemove: proposal.DenomsToRemove, + } + return k.HandleConsumerRewardDenomProposal(ctx, &p) +} + // HandleConsumerAdditionProposal will receive the consumer chain's client state from the proposal. // If the client can be successfully created in a cached context, it stores the proposal as a pending proposal. // From eef2a04151a22c0274f60f583bfd4e76cc2a2471 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Tue, 7 Nov 2023 11:59:18 +0100 Subject: [PATCH 12/17] Added handler + commands + minor fixes --- go.mod | 2 +- .../ccv/provider/v1/tx.proto | 2 +- x/ccv/provider/client/cli/tx.go | 262 +++++++++++++++++- x/ccv/provider/keeper/proposal.go | 6 +- 4 files changed, 263 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 95d155db91..e47232b944 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/cosmos/interchain-security/v3 go 1.21 -toolchain go1.21.3 +toolchain go1.21.1 require ( cosmossdk.io/errors v1.0.0 diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index 7109cf2e67..69ccee0a73 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -160,4 +160,4 @@ message MsgChangeRewardDenoms { } // MsgChangeRewardDenomsResponse defines response type for MsgChangeRewardDenoms messages -message MsgChangeRewardDenomsResponse {} \ No newline at end of file +message MsgChangeRewardDenomsResponse {} diff --git a/x/ccv/provider/client/cli/tx.go b/x/ccv/provider/client/cli/tx.go index 74ae6dd635..8c4efb3af6 100644 --- a/x/ccv/provider/client/cli/tx.go +++ b/x/ccv/provider/client/cli/tx.go @@ -2,17 +2,52 @@ package cli import ( "fmt" - - "github.com/spf13/cobra" + "os" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" - + "github.com/cosmos/cosmos-sdk/types/address" + govcli "github.com/cosmos/cosmos-sdk/x/gov/client/cli" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/cosmos/interchain-security/v3/x/ccv/provider/types" + "github.com/spf13/cobra" ) +const FlagAuthority = "authority" + +// Get authority address from command line arguments or +// governance address as default if not provided on cli +func getAuthority(cmd *cobra.Command) (string, error) { + authority, _ := cmd.Flags().GetString(FlagAuthority) + if authority != "" { + if _, err := sdk.AccAddressFromBech32(authority); err != nil { + return "", fmt.Errorf("invalid authority address: %w", err) + } + } else { + authority = sdk.AccAddress(address.Module(govtypes.ModuleName)).String() + } + return authority, nil +} + +// Unmarshall json content of a file to given message type +func createMessageFromFile(ctx client.Context, cmd *cobra.Command, msg sdk.Msg, filePath string) error { + content, err := os.ReadFile(filePath) + if err != nil { + return fmt.Errorf("error reading file: %w", err) + } + + cdc := codec.NewProtoCodec(ctx.InterfaceRegistry) + + err = cdc.UnmarshalJSON(content, msg) + if err != nil { + return fmt.Errorf("invalid json content: %w", err) + } + return nil +} + // GetTxCmd returns the transaction commands for this module func GetTxCmd() *cobra.Command { cmd := &cobra.Command{ @@ -23,7 +58,11 @@ func GetTxCmd() *cobra.Command { RunE: client.ValidateCmd, } - cmd.AddCommand(NewAssignConsumerKeyCmd()) + cmd.AddCommand( + NewAssignConsumerKeyCmd(), + NewConsumerAdditionProposalCmd(), + NewConsumerRemovalProposalCmd(), + NewChangeRewardDenomsCmd()) return cmd } @@ -66,3 +105,218 @@ func NewAssignConsumerKeyCmd() *cobra.Command { return cmd } + +// NewConsumerAdditionProposalCmd creates a CLI command to submit a ConsumerAdditon proposal. +func NewConsumerAdditionProposalCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "consumer-addition [proposal-file] [flags]", + Args: cobra.ExactArgs(1), + Short: "submit a consumer addition proposal", + Long: ` + Submit a consumer addition proposal along with an initial deposit. + The proposal details must be supplied via a JSON file. + + Example: + $ tx provider consumer-addition --from= --title= --summary=<summary> + + Where proposal.json contains: + + { + "chain_id": "consumer", + "initial_height": { + "revision_number": "1", + "revision_height": "1" + }, + "genesis_hash": "Z2VuX2hhc2g=", + "binary_hash": "YmluX2hhc2g=", + "spawn_time": "2022-06-25T09:02:14.718477-08:00", + "unbonding_period": "86400s", + "ccv_timeout_period": "259200s", + "transfer_timeout_period": "1800s", + "consumer_redistribution_fraction": "0.75", + "blocks_per_distribution_transmission": "1000", + "historical_entries": "10000", + "distribution_transmission_channel": "" + }`, + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + submitProposal, err := govcli.ReadGovPropFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + + authority, err := getAuthority(cmd) + if err != nil { + return err + } + + msgFileName := args[0] + var msg types.MsgConsumerAddition + err = createMessageFromFile(clientCtx, cmd, &msg, msgFileName) + if err != nil { + return err + } + + msg.Signer = authority + + if err = msg.ValidateBasic(); err != nil { + return fmt.Errorf("error validating %T: %w", types.MsgConsumerAddition{}, err) + } + + if err := submitProposal.SetMsgs([]sdk.Msg{&msg}); err != nil { + return fmt.Errorf("failed to create consumer addition proposal message: %w", err) + } + + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), submitProposal) + }, + } + + cmd.Flags().String(FlagAuthority, "", "The address of the client module authority (defaults to gov)") + + flags.AddTxFlagsToCmd(cmd) + govcli.AddGovPropFlagsToCmd(cmd) + err := cmd.MarkFlagRequired(govcli.FlagTitle) + if err != nil { + panic(err) + } + + return cmd +} + +// NewConsumerRemovalProposalCmd creates a CLI command to submit a ConsumerRemoval proposal. +func NewConsumerRemovalProposalCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "consumer-removal [proposal-file] [flags]", + Args: cobra.ExactArgs(1), + Short: "submit a consumer removal proposal", + Long: ` + Submit a consumer removal proposal along with an initial deposit. + The proposal details must be supplied via a JSON file. + + Example: + $ <appd> tx gov submit-legacy-proposal consumer-removal <path/to/proposal.json> --from=<key_or_address> --title=<title> --summary=<summary> + + Where proposal.json contains: + + { + "chain_id": "foochain", + "stop_time": "2022-01-27T15:59:50.121607-08:00", + }`, + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + submitProposal, err := govcli.ReadGovPropFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + + msgFileName := args[0] + var msg types.MsgConsumerRemoval + err = createMessageFromFile(clientCtx, cmd, &msg, msgFileName) + if err != nil { + return err + } + + authority, err := getAuthority(cmd) + if err != nil { + return err + } + msg.Signer = authority + + if err = msg.ValidateBasic(); err != nil { + return fmt.Errorf("error validating %T: %w", types.MsgConsumerRemoval{}, err) + } + + if err := submitProposal.SetMsgs([]sdk.Msg{&msg}); err != nil { + return fmt.Errorf("failed to create consumer addition proposal message: %w", err) + } + + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), submitProposal) + }, + } + + cmd.Flags().String(FlagAuthority, "", "The address of the client module authority (defaults to gov)") + + flags.AddTxFlagsToCmd(cmd) + govcli.AddGovPropFlagsToCmd(cmd) + err := cmd.MarkFlagRequired(govcli.FlagTitle) + if err != nil { + panic(err) + } + + return cmd +} + +// NewChangeRewardDenomsCmd creates a CLI command to submit a ChangeRewardDenoms proposal. +func NewChangeRewardDenomsCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "change-reward-denoms [proposal-file] [flags]", + Args: cobra.ExactArgs(1), + Short: "Submit a change reward denoms proposal", + Long: `Submit an change reward denoms proposal with an initial deposit. + The proposal details must be supplied via a JSON file. + + Example: + $ <appd> tx gov submit-legacy-proposal change-reward-denoms <path/to/proposal.json> --from=<key_or_address> + + Where proposal.json contains: + { + "denoms_to_add": ["untrn"], + "denoms_to_remove": ["stake"], + "deposit": "10000stake" + } + `, + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + submitProposal, err := govcli.ReadGovPropFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + + msgFileName := args[0] + var msg types.MsgChangeRewardDenoms + err = createMessageFromFile(clientCtx, cmd, &msg, msgFileName) + if err != nil { + return err + } + + authority, err := getAuthority(cmd) + if err != nil { + return err + } + msg.Signer = authority + + if err = msg.ValidateBasic(); err != nil { + return fmt.Errorf("error validating %T: %w", types.MsgConsumerRemoval{}, err) + } + + if err := submitProposal.SetMsgs([]sdk.Msg{&msg}); err != nil { + return fmt.Errorf("failed to create consumer addition proposal message: %w", err) + } + + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), submitProposal) + }, + } + + cmd.Flags().String(FlagAuthority, "", "The address of the client module authority (defaults to gov)") + + flags.AddTxFlagsToCmd(cmd) + govcli.AddGovPropFlagsToCmd(cmd) + err := cmd.MarkFlagRequired(govcli.FlagTitle) + if err != nil { + panic(err) + } + + return cmd +} diff --git a/x/ccv/provider/keeper/proposal.go b/x/ccv/provider/keeper/proposal.go index c59705cf22..9b97305c0d 100644 --- a/x/ccv/provider/keeper/proposal.go +++ b/x/ccv/provider/keeper/proposal.go @@ -24,7 +24,7 @@ import ( ccv "github.com/cosmos/interchain-security/v3/x/ccv/types" ) -// Wrapper for the new proposal messages MsgConsumerAddition. +// Wrapper for the new proposal message MsgConsumerAddition // Will replace legacy handler HandleConsumerAdditionProposal func (k Keeper) HandleNewConsumerAdditionProposal(ctx sdk.Context, proposal *types.MsgConsumerAddition) error { p := types.ConsumerAdditionProposal{ @@ -46,7 +46,7 @@ func (k Keeper) HandleNewConsumerAdditionProposal(ctx sdk.Context, proposal *typ } -// Wrapper for the new proposal messages MsgConsumerRemoval. +// Wrapper for the new proposal message MsgConsumerRemoval // Will replace legacy handler HandleConsumerRemovalProposal func (k Keeper) HandleNewConsumerRemovalProposal(ctx sdk.Context, proposal *types.MsgConsumerRemoval) error { p := types.ConsumerRemovalProposal{ @@ -57,7 +57,7 @@ func (k Keeper) HandleNewConsumerRemovalProposal(ctx sdk.Context, proposal *type } -// Wrapper for the new proposal messages MsgChangeRewardDenoms. +// Wrapper for the new proposal message MsgChangeRewardDenoms // Will replace legacy handler HandleConsumerRewardDenomProposal func (k Keeper) HandleNewConsumerRewardDenomProposal(ctx sdk.Context, proposal *types.MsgChangeRewardDenoms) error { p := types.ChangeRewardDenomsProposal{ From 14741dc6ec54386c3a37fc6b034729e78fb8b50d Mon Sep 17 00:00:00 2001 From: Bernd Mueller <bernd@informal.systems> Date: Tue, 7 Nov 2023 12:03:38 +0100 Subject: [PATCH 13/17] Revert "Fix e2e tests" This reverts commit c264d4f69faeae786ac9fe17b4bd6182ad5ce90d. --- Dockerfile | 2 +- tests/e2e/config.go | 6 ----- tests/e2e/testnet-scripts/start-chain.sh | 26 +++++++++---------- tests/e2e/testnet-scripts/start-changeover.sh | 18 ++++++------- tests/e2e/testnet-scripts/start-sovereign.sh | 16 ++++++------ 5 files changed, 31 insertions(+), 37 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5066d3af17..de183457d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ ADD . /interchain-security WORKDIR /interchain-security -# Do not specify version here. It leads to odd replacement behavior +# Do not specify version here. It leads to odd replacement behavior RUN if [ -d "./cosmos-sdk" ]; then go mod edit -replace github.com/cosmos/cosmos-sdk=./cosmos-sdk; fi RUN go mod tidy diff --git a/tests/e2e/config.go b/tests/e2e/config.go index 749ea0f4bd..4e025f03e7 100644 --- a/tests/e2e/config.go +++ b/tests/e2e/config.go @@ -184,7 +184,6 @@ func SlashThrottleTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + - ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"15\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -231,7 +230,6 @@ func DefaultTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + - ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"15\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -248,7 +246,6 @@ func DefaultTestRun() TestRun { func DemocracyTestRun(allowReward bool) TestRun { consumerGenChanges := ".app_state.ccvconsumer.params.blocks_per_distribution_transmission = \"20\" | " + ".app_state.gov.voting_params.voting_period = \"10s\" | " + - ".app_state.gov.params.expedited_voting_period = \"5s\" | " + ".app_state.slashing.params.signed_blocks_window = \"10\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -331,7 +328,6 @@ func MultiConsumerTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + - ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"10\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -343,7 +339,6 @@ func MultiConsumerTestRun() TestRun { ipPrefix: "7.7.9", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + - ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"10\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + @@ -391,7 +386,6 @@ func ChangeoverTestRun() TestRun { ipPrefix: "7.7.8", votingWaitTime: 20, genesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + - ".app_state.gov.params.expedited_voting_period = \"10s\" | " + ".app_state.slashing.params.signed_blocks_window = \"15\" | " + ".app_state.slashing.params.min_signed_per_window = \"0.500000000000000000\" | " + ".app_state.slashing.params.downtime_jail_duration = \"60s\" | " + diff --git a/tests/e2e/testnet-scripts/start-chain.sh b/tests/e2e/testnet-scripts/start-chain.sh index 65221ca5d7..4c5a8c61ae 100644 --- a/tests/e2e/testnet-scripts/start-chain.sh +++ b/tests/e2e/testnet-scripts/start-chain.sh @@ -55,18 +55,18 @@ NODES=$(echo "$VALIDATORS" | jq '. | length') # SETUP NETWORK NAMESPACES, see: https://adil.medium.com/container-networking-under-the-hood-network-namespaces-6b2b8fe8dc2a # Create virtual bridge device (acts like a switch) -ip link add name virtual-bridge type bridge || true +ip link add name virtual-bridge type bridge || true for i in $(seq 0 $(($NODES - 1))); do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$i].ip_suffix") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" + IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" - # Create network namespace + # Create network namespace ip netns add $NET_NAMESPACE_NAME - # Create virtual ethernet device to connect with bridge + # Create virtual ethernet device to connect with bridge ip link add $NET_NAMESPACE_NAME-in type veth peer name $NET_NAMESPACE_NAME-out # Connect input end of virtual ethernet device to namespace ip link set $NET_NAMESPACE_NAME-in netns $NET_NAMESPACE_NAME @@ -84,14 +84,14 @@ do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - # Enable in/out interfaces for the namespace + # Enable in/out interfaces for the namespace ip link set $NET_NAMESPACE_NAME-out up ip netns exec $NET_NAMESPACE_NAME ip link set dev $NET_NAMESPACE_NAME-in up # Enable loopback device ip netns exec $NET_NAMESPACE_NAME ip link set dev lo up done -# Assign IP for bridge, to route between default network namespace and bridge +# Assign IP for bridge, to route between default network namespace and bridge BRIDGE_IP="$CHAIN_IP_PREFIX.254/24" ip addr add $BRIDGE_IP dev virtual-bridge @@ -129,11 +129,11 @@ do --keyring-backend test \ --recover > /dev/null fi - + # Give validators their initial token allocations # move the genesis in mv /$CHAIN_ID/genesis.json /$CHAIN_ID/validator$VAL_ID/config/genesis.json - + # give this validator some money ALLOCATION=$(echo "$VALIDATORS" | jq -r ".[$i].allocation") $BIN genesis add-genesis-account validator$VAL_ID $ALLOCATION \ @@ -178,7 +178,7 @@ do fi # Make a gentx (this command also sets up validator state on disk even if we are not going to use the gentx for anything) - if [ "$SKIP_GENTX" = "false" ] ; then + if [ "$SKIP_GENTX" = "false" ] ; then STAKE_AMOUNT=$(echo "$VALIDATORS" | jq -r ".[$i].stake") $BIN genesis gentx validator$VAL_ID "$STAKE_AMOUNT" \ --home /$CHAIN_ID/validator$VAL_ID \ @@ -186,7 +186,7 @@ do --moniker validator$VAL_ID \ --chain-id=$CHAIN_ID - # Copy gentxs to the first validator for possible future collection. + # Copy gentxs to the first validator for possible future collection. # Obviously we don't need to copy the first validator's gentx to itself if [ $VAL_ID != $FIRST_VAL_ID ]; then cp /$CHAIN_ID/validator$VAL_ID/config/gentx/* /$CHAIN_ID/validator$FIRST_VAL_ID/config/gentx/ @@ -194,7 +194,7 @@ do fi # Modify tendermint configs of validator - if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then + if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then #'s/foo/bar/;s/abc/def/' sed -i "$TENDERMINT_CONFIG_TRANSFORM" $CHAIN_ID/validator$VAL_ID/config/config.toml fi @@ -209,7 +209,7 @@ if [ "$SKIP_GENTX" = "false" ] ; then # make the final genesis.json $BIN genesis collect-gentxs --home /$CHAIN_ID/validator$FIRST_VAL_ID - # and copy it to the root + # and copy it to the root cp /$CHAIN_ID/validator$FIRST_VAL_ID/config/genesis.json /$CHAIN_ID/genesis.json # put the now final genesis.json into the correct folders @@ -249,7 +249,7 @@ do do if [ $i -ne $j ]; then PEER_VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$j].val_id") - PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") + PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") NODE_ID=$($BIN tendermint show-node-id --home /$CHAIN_ID/validator$PEER_VAL_ID) ADDRESS="$NODE_ID@$CHAIN_IP_PREFIX.$PEER_VAL_IP_SUFFIX:26656" # (jq -r '.body.memo' /$CHAIN_ID/validator$j/config/gentx/*) # Getting the address from the gentx should also work diff --git a/tests/e2e/testnet-scripts/start-changeover.sh b/tests/e2e/testnet-scripts/start-changeover.sh index afbccadf72..3bbd832a9d 100644 --- a/tests/e2e/testnet-scripts/start-changeover.sh +++ b/tests/e2e/testnet-scripts/start-changeover.sh @@ -50,7 +50,7 @@ NODES=$(echo "$VALIDATORS" | jq '. | length') # SETUP NETWORK NAMESPACES, see: https://adil.medium.com/container-networking-under-the-hood-network-namespaces-6b2b8fe8dc2a # Create virtual bridge device (acts like a switch) -ip link add name virtual-bridge type bridge || true +ip link add name virtual-bridge type bridge || true for i in $(seq 0 $(($NODES - 1))); do @@ -59,11 +59,11 @@ do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$i].ip_suffix") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" + IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" - # Create network namespace + # Create network namespace ip netns add $NET_NAMESPACE_NAME - # Create virtual ethernet device to connect with bridge + # Create virtual ethernet device to connect with bridge ip link add $NET_NAMESPACE_NAME-in type veth peer name $NET_NAMESPACE_NAME-out # Connect input end of virtual ethernet device to namespace ip link set $NET_NAMESPACE_NAME-in netns $NET_NAMESPACE_NAME @@ -84,7 +84,7 @@ do VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$i].val_id") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" - # Enable in/out interfaces for the namespace + # Enable in/out interfaces for the namespace ip link set $NET_NAMESPACE_NAME-out up ip netns exec $NET_NAMESPACE_NAME ip link set dev $NET_NAMESPACE_NAME-in up # Enable loopback device @@ -92,7 +92,7 @@ do fi done -# Assign IP for bridge, to route between default network namespace and bridge +# Assign IP for bridge, to route between default network namespace and bridge # BRIDGE_IP="$CHAIN_IP_PREFIX.254/24" # ip addr add $BRIDGE_IP dev virtual-bridge @@ -127,7 +127,7 @@ do fi # Modify tendermint configs of validator - if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then + if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then #'s/foo/bar/;s/abc/def/' sed -i "$TENDERMINT_CONFIG_TRANSFORM" $CHAIN_ID/validator$VAL_ID/config/config.toml fi @@ -160,7 +160,7 @@ do do if [ $i -ne $j ]; then PEER_VAL_ID=$(echo "$VALIDATORS" | jq -r ".[$j].val_id") - PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") + PEER_VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[$j].ip_suffix") NODE_ID=$($BIN tendermint show-node-id --home /$CHAIN_ID/validator$PEER_VAL_ID) ADDRESS="$NODE_ID@$CHAIN_IP_PREFIX.$PEER_VAL_IP_SUFFIX:26656" # (jq -r '.body.memo' /$CHAIN_ID/validator$j/config/gentx/*) # Getting the address from the gentx should also work @@ -184,4 +184,4 @@ set -e echo "done!!!!!!!!" -read -p "Press Return to Close..." +read -p "Press Return to Close..." \ No newline at end of file diff --git a/tests/e2e/testnet-scripts/start-sovereign.sh b/tests/e2e/testnet-scripts/start-sovereign.sh index 112f901bc2..34adce39df 100644 --- a/tests/e2e/testnet-scripts/start-sovereign.sh +++ b/tests/e2e/testnet-scripts/start-sovereign.sh @@ -33,17 +33,17 @@ TENDERMINT_CONFIG_TRANSFORM=$6 # SETUP NETWORK NAMESPACES, see: https://adil.medium.com/container-networking-under-the-hood-network-namespaces-6b2b8fe8dc2a # Create virtual bridge device (acts like a switch) -ip link add name virtual-bridge type bridge || true +ip link add name virtual-bridge type bridge || true # used globally in the whole script VAL_ID=$(echo "$VALIDATORS" | jq -r ".[0].val_id") VAL_IP_SUFFIX=$(echo "$VALIDATORS" | jq -r ".[0].ip_suffix") NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" -IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" +IP_ADDR="$CHAIN_IP_PREFIX.$VAL_IP_SUFFIX/24" -# Create network namespace +# Create network namespace ip netns add $NET_NAMESPACE_NAME -# Create virtual ethernet device to connect with bridge +# Create virtual ethernet device to connect with bridge ip link add $NET_NAMESPACE_NAME-in type veth peer name $NET_NAMESPACE_NAME-out # Connect input end of virtual ethernet device to namespace ip link set $NET_NAMESPACE_NAME-in netns $NET_NAMESPACE_NAME @@ -56,13 +56,13 @@ ip link set $NET_NAMESPACE_NAME-out master virtual-bridge ip link set virtual-bridge up NET_NAMESPACE_NAME="$CHAIN_ID-$VAL_ID" -# Enable in/out interfaces for the namespace +# Enable in/out interfaces for the namespace ip link set $NET_NAMESPACE_NAME-out up ip netns exec $NET_NAMESPACE_NAME ip link set dev $NET_NAMESPACE_NAME-in up # Enable loopback device ip netns exec $NET_NAMESPACE_NAME ip link set dev lo up -# Assign IP for bridge, to route between default network namespace and bridge +# Assign IP for bridge, to route between default network namespace and bridge BRIDGE_IP="$CHAIN_IP_PREFIX.254/24" ip addr add $BRIDGE_IP dev virtual-bridge @@ -100,7 +100,7 @@ echo "$VALIDATORS" | jq -r ".[0].mnemonic" | $BIN keys add validator$VAL_ID \ --recover > /dev/null # Modify tendermint configs of validator -if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then +if [ "$TENDERMINT_CONFIG_TRANSFORM" != "" ] ; then #'s/foo/bar/;s/abc/def/' sed -i "$TENDERMINT_CONFIG_TRANSFORM" $CHAIN_ID/validator$VAL_ID/config/config.toml fi @@ -130,4 +130,4 @@ set -e echo "done!!!!!!!!" -read -p "Press Return to Close..." +read -p "Press Return to Close..." \ No newline at end of file From c8a13a30238f3c5d261790c741d32b59ef2427f3 Mon Sep 17 00:00:00 2001 From: Bernd Mueller <bernd@informal.systems> Date: Tue, 7 Nov 2023 15:51:38 +0100 Subject: [PATCH 14/17] Remove cli commands for proposals attached to provider cli --- x/ccv/provider/client/cli/tx.go | 259 +------------------------------- 1 file changed, 1 insertion(+), 258 deletions(-) diff --git a/x/ccv/provider/client/cli/tx.go b/x/ccv/provider/client/cli/tx.go index 8c4efb3af6..79bbdcdfd2 100644 --- a/x/ccv/provider/client/cli/tx.go +++ b/x/ccv/provider/client/cli/tx.go @@ -2,52 +2,15 @@ package cli import ( "fmt" - "os" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/address" - govcli "github.com/cosmos/cosmos-sdk/x/gov/client/cli" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/cosmos/interchain-security/v3/x/ccv/provider/types" "github.com/spf13/cobra" ) -const FlagAuthority = "authority" - -// Get authority address from command line arguments or -// governance address as default if not provided on cli -func getAuthority(cmd *cobra.Command) (string, error) { - authority, _ := cmd.Flags().GetString(FlagAuthority) - if authority != "" { - if _, err := sdk.AccAddressFromBech32(authority); err != nil { - return "", fmt.Errorf("invalid authority address: %w", err) - } - } else { - authority = sdk.AccAddress(address.Module(govtypes.ModuleName)).String() - } - return authority, nil -} - -// Unmarshall json content of a file to given message type -func createMessageFromFile(ctx client.Context, cmd *cobra.Command, msg sdk.Msg, filePath string) error { - content, err := os.ReadFile(filePath) - if err != nil { - return fmt.Errorf("error reading file: %w", err) - } - - cdc := codec.NewProtoCodec(ctx.InterfaceRegistry) - - err = cdc.UnmarshalJSON(content, msg) - if err != nil { - return fmt.Errorf("invalid json content: %w", err) - } - return nil -} - // GetTxCmd returns the transaction commands for this module func GetTxCmd() *cobra.Command { cmd := &cobra.Command{ @@ -58,12 +21,7 @@ func GetTxCmd() *cobra.Command { RunE: client.ValidateCmd, } - cmd.AddCommand( - NewAssignConsumerKeyCmd(), - NewConsumerAdditionProposalCmd(), - NewConsumerRemovalProposalCmd(), - NewChangeRewardDenomsCmd()) - + cmd.AddCommand(NewAssignConsumerKeyCmd()) return cmd } @@ -105,218 +63,3 @@ func NewAssignConsumerKeyCmd() *cobra.Command { return cmd } - -// NewConsumerAdditionProposalCmd creates a CLI command to submit a ConsumerAdditon proposal. -func NewConsumerAdditionProposalCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "consumer-addition [proposal-file] [flags]", - Args: cobra.ExactArgs(1), - Short: "submit a consumer addition proposal", - Long: ` - Submit a consumer addition proposal along with an initial deposit. - The proposal details must be supplied via a JSON file. - - Example: - $ <appd> tx provider consumer-addition <path/to/proposal.json> --from=<key_or_address> --title=<title> --summary=<summary> - - Where proposal.json contains: - - { - "chain_id": "consumer", - "initial_height": { - "revision_number": "1", - "revision_height": "1" - }, - "genesis_hash": "Z2VuX2hhc2g=", - "binary_hash": "YmluX2hhc2g=", - "spawn_time": "2022-06-25T09:02:14.718477-08:00", - "unbonding_period": "86400s", - "ccv_timeout_period": "259200s", - "transfer_timeout_period": "1800s", - "consumer_redistribution_fraction": "0.75", - "blocks_per_distribution_transmission": "1000", - "historical_entries": "10000", - "distribution_transmission_channel": "" - }`, - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - - submitProposal, err := govcli.ReadGovPropFlags(clientCtx, cmd.Flags()) - if err != nil { - return err - } - - authority, err := getAuthority(cmd) - if err != nil { - return err - } - - msgFileName := args[0] - var msg types.MsgConsumerAddition - err = createMessageFromFile(clientCtx, cmd, &msg, msgFileName) - if err != nil { - return err - } - - msg.Signer = authority - - if err = msg.ValidateBasic(); err != nil { - return fmt.Errorf("error validating %T: %w", types.MsgConsumerAddition{}, err) - } - - if err := submitProposal.SetMsgs([]sdk.Msg{&msg}); err != nil { - return fmt.Errorf("failed to create consumer addition proposal message: %w", err) - } - - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), submitProposal) - }, - } - - cmd.Flags().String(FlagAuthority, "", "The address of the client module authority (defaults to gov)") - - flags.AddTxFlagsToCmd(cmd) - govcli.AddGovPropFlagsToCmd(cmd) - err := cmd.MarkFlagRequired(govcli.FlagTitle) - if err != nil { - panic(err) - } - - return cmd -} - -// NewConsumerRemovalProposalCmd creates a CLI command to submit a ConsumerRemoval proposal. -func NewConsumerRemovalProposalCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "consumer-removal [proposal-file] [flags]", - Args: cobra.ExactArgs(1), - Short: "submit a consumer removal proposal", - Long: ` - Submit a consumer removal proposal along with an initial deposit. - The proposal details must be supplied via a JSON file. - - Example: - $ <appd> tx gov submit-legacy-proposal consumer-removal <path/to/proposal.json> --from=<key_or_address> --title=<title> --summary=<summary> - - Where proposal.json contains: - - { - "chain_id": "foochain", - "stop_time": "2022-01-27T15:59:50.121607-08:00", - }`, - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - - submitProposal, err := govcli.ReadGovPropFlags(clientCtx, cmd.Flags()) - if err != nil { - return err - } - - msgFileName := args[0] - var msg types.MsgConsumerRemoval - err = createMessageFromFile(clientCtx, cmd, &msg, msgFileName) - if err != nil { - return err - } - - authority, err := getAuthority(cmd) - if err != nil { - return err - } - msg.Signer = authority - - if err = msg.ValidateBasic(); err != nil { - return fmt.Errorf("error validating %T: %w", types.MsgConsumerRemoval{}, err) - } - - if err := submitProposal.SetMsgs([]sdk.Msg{&msg}); err != nil { - return fmt.Errorf("failed to create consumer addition proposal message: %w", err) - } - - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), submitProposal) - }, - } - - cmd.Flags().String(FlagAuthority, "", "The address of the client module authority (defaults to gov)") - - flags.AddTxFlagsToCmd(cmd) - govcli.AddGovPropFlagsToCmd(cmd) - err := cmd.MarkFlagRequired(govcli.FlagTitle) - if err != nil { - panic(err) - } - - return cmd -} - -// NewChangeRewardDenomsCmd creates a CLI command to submit a ChangeRewardDenoms proposal. -func NewChangeRewardDenomsCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "change-reward-denoms [proposal-file] [flags]", - Args: cobra.ExactArgs(1), - Short: "Submit a change reward denoms proposal", - Long: `Submit an change reward denoms proposal with an initial deposit. - The proposal details must be supplied via a JSON file. - - Example: - $ <appd> tx gov submit-legacy-proposal change-reward-denoms <path/to/proposal.json> --from=<key_or_address> - - Where proposal.json contains: - { - "denoms_to_add": ["untrn"], - "denoms_to_remove": ["stake"], - "deposit": "10000stake" - } - `, - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - - submitProposal, err := govcli.ReadGovPropFlags(clientCtx, cmd.Flags()) - if err != nil { - return err - } - - msgFileName := args[0] - var msg types.MsgChangeRewardDenoms - err = createMessageFromFile(clientCtx, cmd, &msg, msgFileName) - if err != nil { - return err - } - - authority, err := getAuthority(cmd) - if err != nil { - return err - } - msg.Signer = authority - - if err = msg.ValidateBasic(); err != nil { - return fmt.Errorf("error validating %T: %w", types.MsgConsumerRemoval{}, err) - } - - if err := submitProposal.SetMsgs([]sdk.Msg{&msg}); err != nil { - return fmt.Errorf("failed to create consumer addition proposal message: %w", err) - } - - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), submitProposal) - }, - } - - cmd.Flags().String(FlagAuthority, "", "The address of the client module authority (defaults to gov)") - - flags.AddTxFlagsToCmd(cmd) - govcli.AddGovPropFlagsToCmd(cmd) - err := cmd.MarkFlagRequired(govcli.FlagTitle) - if err != nil { - panic(err) - } - - return cmd -} From fe9f5f580fb4c77d5f6fc9844d7078f1ba2aa51f Mon Sep 17 00:00:00 2001 From: Bernd Mueller <bernd@informal.systems> Date: Tue, 7 Nov 2023 16:07:57 +0100 Subject: [PATCH 15/17] Revert "Testing: renaming" This reverts commit cc6639a1bac15b4d1ec2b8e1bbb958efcf93daa5. --- tests/e2e/actions.go | 6 +++--- tests/e2e/main.go | 4 ++-- tests/e2e/steps_sovereign_changeover.go | 2 +- tests/e2e/steps_start_chains.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/e2e/actions.go b/tests/e2e/actions.go index b6537b5550..4f4b74a435 100644 --- a/tests/e2e/actions.go +++ b/tests/e2e/actions.go @@ -217,7 +217,7 @@ func (tr TestRun) submitTextProposal( tr.waitBlocks(action.chain, 1, 10*time.Second) } -type submitConsumerAdditionLegacyProposalAction struct { +type submitConsumerAdditionProposalAction struct { preCCV bool chain chainID from validatorID @@ -228,8 +228,8 @@ type submitConsumerAdditionLegacyProposalAction struct { distributionChannel string } -func (tr TestRun) submitConsumerAdditionLegacyProposal( - action submitConsumerAdditionLegacyProposalAction, +func (tr TestRun) submitConsumerAdditionProposal( + action submitConsumerAdditionProposalAction, verbose bool, ) { spawnTime := tr.containerConfig.now.Add(time.Duration(action.spawnTime) * time.Millisecond) diff --git a/tests/e2e/main.go b/tests/e2e/main.go index f95d8405e4..cbab7b1fbb 100644 --- a/tests/e2e/main.go +++ b/tests/e2e/main.go @@ -204,8 +204,8 @@ func (tr *TestRun) runStep(step Step, verbose bool) { tr.sendTokens(action, verbose) case submitTextProposalAction: tr.submitTextProposal(action, verbose) - case submitConsumerAdditionLegacyProposalAction: - tr.submitConsumerAdditionLegacyProposal(action, verbose) + case submitConsumerAdditionProposalAction: + tr.submitConsumerAdditionProposal(action, verbose) case submitConsumerRemovalProposalAction: tr.submitConsumerRemovalProposal(action, verbose) case submitParamChangeLegacyProposalAction: diff --git a/tests/e2e/steps_sovereign_changeover.go b/tests/e2e/steps_sovereign_changeover.go index 41aff777d7..64022d708c 100644 --- a/tests/e2e/steps_sovereign_changeover.go +++ b/tests/e2e/steps_sovereign_changeover.go @@ -41,7 +41,7 @@ func stepsSovereignTransferChan() []Step { func stepsChangeoverToConsumer(consumerName string) []Step { s := []Step{ { - action: submitConsumerAdditionLegacyProposalAction{ + action: submitConsumerAdditionProposalAction{ preCCV: true, chain: chainID("provi"), from: validatorID("alice"), diff --git a/tests/e2e/steps_start_chains.go b/tests/e2e/steps_start_chains.go index 60084c2fd3..257c2ca710 100644 --- a/tests/e2e/steps_start_chains.go +++ b/tests/e2e/steps_start_chains.go @@ -34,7 +34,7 @@ func stepStartProviderChain() []Step { func stepsStartConsumerChain(consumerName string, proposalIndex, chainIndex uint, setupTransferChans bool) []Step { s := []Step{ { - action: submitConsumerAdditionLegacyProposalAction{ + action: submitConsumerAdditionProposalAction{ chain: chainID("provi"), from: validatorID("alice"), deposit: 10000001, From 9dbf847aafba6b3c3e4531b6959f2ab944a9f22a Mon Sep 17 00:00:00 2001 From: Bernd Mueller <bernd@informal.systems> Date: Tue, 7 Nov 2023 16:18:02 +0100 Subject: [PATCH 16/17] Cleanup: remove dead code --- x/ccv/provider/types/msg.go | 42 ------------------------------------- 1 file changed, 42 deletions(-) diff --git a/x/ccv/provider/types/msg.go b/x/ccv/provider/types/msg.go index 727c8e64b8..b4f52dccaa 100644 --- a/x/ccv/provider/types/msg.go +++ b/x/ccv/provider/types/msg.go @@ -4,12 +4,10 @@ import ( "encoding/json" "fmt" "strings" - "time" errorsmod "cosmossdk.io/errors" "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" ccvtypes "github.com/cosmos/interchain-security/v3/x/ccv/types" ) @@ -111,34 +109,6 @@ func ParseConsumerKeyFromJson(jsonStr string) (pkType, key string, err error) { return pubKey.Type, pubKey.Key, nil } -// NewMsgConsumerAddition creates a new MsgConsumerAddition instance. -func NewMsgConsumerAddition(signer, chainID string, - initialHeight clienttypes.Height, genesisHash, binaryHash []byte, - spawnTime time.Time, - consumerRedistributionFraction string, - blocksPerDistributionTransmission int64, - distributionTransmissionChannel string, - historicalEntries int64, - ccvTimeoutPeriod time.Duration, - transferTimeoutPeriod time.Duration, - unbondingPeriod time.Duration) *MsgConsumerAddition { - return &MsgConsumerAddition{ - ChainId: chainID, - InitialHeight: initialHeight, - GenesisHash: genesisHash, - BinaryHash: binaryHash, - SpawnTime: spawnTime, - ConsumerRedistributionFraction: consumerRedistributionFraction, - BlocksPerDistributionTransmission: blocksPerDistributionTransmission, - DistributionTransmissionChannel: distributionTransmissionChannel, - HistoricalEntries: historicalEntries, - CcvTimeoutPeriod: ccvTimeoutPeriod, - TransferTimeoutPeriod: transferTimeoutPeriod, - UnbondingPeriod: unbondingPeriod, - Signer: signer, - } -} - // GetSigners implements the sdk.Msg interface. It returns the address(es) that // must sign over msg.GetSignBytes(). // If the validator address is not same as delegator's, then the validator must @@ -208,12 +178,6 @@ func (msg *MsgConsumerAddition) ValidateBasic() error { return nil } -// NewMsgConsumerRemoval creates a new MsgConsumerRemoval instance -func NewMsgConsumerRemoval(signer string) *MsgConsumerRemoval { - //@bermuell: TODO finsh implementation! - return &MsgConsumerRemoval{} -} - func (msg *MsgConsumerRemoval) ValidateBasic() error { if strings.TrimSpace(msg.ChainId) == "" { @@ -226,12 +190,6 @@ func (msg *MsgConsumerRemoval) ValidateBasic() error { return nil } -// MsgChangeRewardDenoms creates a new MsgChangeRewardDenoms instance -func NewMsgChangeRewardDenoms(signer string) *MsgChangeRewardDenoms { - //@bermuell: TODO finsh implementation! - return &MsgChangeRewardDenoms{} -} - func (msg *MsgChangeRewardDenoms) ValidateBasic() error { emptyDenomsToAdd := len(msg.DenomsToAdd) == 0 emptyDenomsToRemove := len(msg.DenomsToRemove) == 0 From 5f5cd27fa1384c2216455023466a3e259ad98bfb Mon Sep 17 00:00:00 2001 From: Bernd Mueller <bernd@informal.systems> Date: Wed, 8 Nov 2023 14:17:53 +0100 Subject: [PATCH 17/17] Addressed review comments --- x/ccv/provider/keeper/msg_server.go | 6 +++--- x/ccv/provider/keeper/proposal.go | 28 +++++++++++++------------- x/ccv/provider/keeper/proposal_test.go | 14 ++++++------- x/ccv/provider/proposal_handler.go | 6 +++--- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index ff7137d805..491e585f60 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -118,7 +118,7 @@ func (k msgServer) ConsumerAddition(goCtx context.Context, msg *types.MsgConsume } ctx := sdk.UnwrapSDKContext(goCtx) - err := k.Keeper.HandleNewConsumerAdditionProposal(ctx, msg) + err := k.Keeper.HandleConsumerAdditionProposal(ctx, msg) if err != nil { return nil, errorsmod.Wrapf(err, "failed handling ConsumerAddition proposal") } @@ -134,7 +134,7 @@ func (k msgServer) ConsumerRemoval( } ctx := sdk.UnwrapSDKContext(goCtx) - err := k.Keeper.HandleNewConsumerRemovalProposal(ctx, msg) + err := k.Keeper.HandleConsumerRemovalProposal(ctx, msg) if err != nil { return nil, errorsmod.Wrapf(err, "failed handling ConsumerAddition proposal") } @@ -149,7 +149,7 @@ func (k msgServer) ChangeRewardDenoms(goCtx context.Context, msg *types.MsgChang } sdkCtx := sdk.UnwrapSDKContext(goCtx) - err := k.Keeper.HandleNewConsumerRewardDenomProposal(sdkCtx, msg) + err := k.Keeper.HandleConsumerRewardDenomProposal(sdkCtx, msg) if err != nil { return nil, errorsmod.Wrapf(err, "failed handling Change Reward Denoms proposal") } diff --git a/x/ccv/provider/keeper/proposal.go b/x/ccv/provider/keeper/proposal.go index 9b97305c0d..8f90e14448 100644 --- a/x/ccv/provider/keeper/proposal.go +++ b/x/ccv/provider/keeper/proposal.go @@ -25,8 +25,8 @@ import ( ) // Wrapper for the new proposal message MsgConsumerAddition -// Will replace legacy handler HandleConsumerAdditionProposal -func (k Keeper) HandleNewConsumerAdditionProposal(ctx sdk.Context, proposal *types.MsgConsumerAddition) error { +// Will replace legacy handler HandleLegacyConsumerAdditionProposal +func (k Keeper) HandleConsumerAdditionProposal(ctx sdk.Context, proposal *types.MsgConsumerAddition) error { p := types.ConsumerAdditionProposal{ Title: "New ConsumerAddition Proposal", ChainId: proposal.ChainId, @@ -42,39 +42,39 @@ func (k Keeper) HandleNewConsumerAdditionProposal(ctx sdk.Context, proposal *typ HistoricalEntries: proposal.HistoricalEntries, DistributionTransmissionChannel: proposal.DistributionTransmissionChannel, } - return k.HandleConsumerAdditionProposal(ctx, &p) + return k.HandleLegacyConsumerAdditionProposal(ctx, &p) } // Wrapper for the new proposal message MsgConsumerRemoval -// Will replace legacy handler HandleConsumerRemovalProposal -func (k Keeper) HandleNewConsumerRemovalProposal(ctx sdk.Context, proposal *types.MsgConsumerRemoval) error { +// Will replace legacy handler HandleLegacyConsumerRemovalProposal +func (k Keeper) HandleConsumerRemovalProposal(ctx sdk.Context, proposal *types.MsgConsumerRemoval) error { p := types.ConsumerRemovalProposal{ ChainId: proposal.ChainId, StopTime: proposal.StopTime, } - return k.HandleConsumerRemovalProposal(ctx, &p) + return k.HandleLegacyConsumerRemovalProposal(ctx, &p) } // Wrapper for the new proposal message MsgChangeRewardDenoms -// Will replace legacy handler HandleConsumerRewardDenomProposal -func (k Keeper) HandleNewConsumerRewardDenomProposal(ctx sdk.Context, proposal *types.MsgChangeRewardDenoms) error { +// Will replace legacy handler HandleLegacyConsumerRewardDenomProposal +func (k Keeper) HandleConsumerRewardDenomProposal(ctx sdk.Context, proposal *types.MsgChangeRewardDenoms) error { p := types.ChangeRewardDenomsProposal{ Title: "New ChangeRewardDenomsProposal", DenomsToAdd: proposal.DenomsToAdd, DenomsToRemove: proposal.DenomsToRemove, } - return k.HandleConsumerRewardDenomProposal(ctx, &p) + return k.HandleLegacyConsumerRewardDenomProposal(ctx, &p) } -// HandleConsumerAdditionProposal will receive the consumer chain's client state from the proposal. +// HandleLegacyConsumerAdditionProposal will receive the consumer chain's client state from the proposal. // If the client can be successfully created in a cached context, it stores the proposal as a pending proposal. // // Note: This method implements SpawnConsumerChainProposalHandler in spec. // See: https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#ccv-pcf-hcaprop1 // Spec tag: [CCV-PCF-HCAPROP.1] -func (k Keeper) HandleConsumerAdditionProposal(ctx sdk.Context, p *types.ConsumerAdditionProposal) error { +func (k Keeper) HandleLegacyConsumerAdditionProposal(ctx sdk.Context, p *types.ConsumerAdditionProposal) error { // verify the consumer addition proposal execution // in cached context and discard the cached writes if _, _, err := k.CreateConsumerClientInCachedCtx(ctx, *p); err != nil { @@ -167,13 +167,13 @@ func (k Keeper) CreateConsumerClient(ctx sdk.Context, prop *types.ConsumerAdditi return nil } -// HandleConsumerRemovalProposal stops a consumer chain and released the outstanding unbonding operations. +// HandleLegacyConsumerRemovalProposal stops a consumer chain and released the outstanding unbonding operations. // If the consumer can be successfully stopped in a cached context, it stores the proposal as a pending proposal. // // This method implements StopConsumerChainProposalHandler from spec. // See: https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#ccv-pcf-hcrprop1 // Spec tag: [CCV-PCF-HCRPROP.1] -func (k Keeper) HandleConsumerRemovalProposal(ctx sdk.Context, p *types.ConsumerRemovalProposal) error { +func (k Keeper) HandleLegacyConsumerRemovalProposal(ctx sdk.Context, p *types.ConsumerRemovalProposal) error { // verify the consumer removal proposal execution // in cached context and discard the cached writes if _, _, err := k.StopConsumerChainInCachedCtx(ctx, *p); err != nil { @@ -655,7 +655,7 @@ func (k Keeper) StopConsumerChainInCachedCtx(ctx sdk.Context, p types.ConsumerRe return } -func (k Keeper) HandleConsumerRewardDenomProposal(ctx sdk.Context, p *types.ChangeRewardDenomsProposal) error { +func (k Keeper) HandleLegacyConsumerRewardDenomProposal(ctx sdk.Context, p *types.ChangeRewardDenomsProposal) error { for _, denomToAdd := range p.DenomsToAdd { // Log error and move on if one of the denoms is already registered if k.ConsumerRewardDenomExists(ctx, denomToAdd) { diff --git a/x/ccv/provider/keeper/proposal_test.go b/x/ccv/provider/keeper/proposal_test.go index 5bf25c7e68..5899e058b1 100644 --- a/x/ccv/provider/keeper/proposal_test.go +++ b/x/ccv/provider/keeper/proposal_test.go @@ -29,10 +29,10 @@ import ( // Initialization sub-protocol related tests of proposal.go // -// Tests the HandleConsumerAdditionProposal method against the SpawnConsumerChainProposalHandler spec. +// Tests the HandleLegacyConsumerAdditionProposal method against the SpawnConsumerChainProposalHandler spec. // See: https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#ccv-pcf-hcaprop1 // Spec tag: [CCV-PCF-HCAPROP.1] -func TestHandleConsumerAdditionProposal(t *testing.T) { +func TestHandleLegacyConsumerAdditionProposal(t *testing.T) { type testCase struct { description string malleate func(ctx sdk.Context, k providerkeeper.Keeper, chainID string) @@ -113,7 +113,7 @@ func TestHandleConsumerAdditionProposal(t *testing.T) { tc.malleate(ctx, providerKeeper, tc.prop.ChainId) - err := providerKeeper.HandleConsumerAdditionProposal(ctx, tc.prop) + err := providerKeeper.HandleLegacyConsumerAdditionProposal(ctx, tc.prop) if tc.expAppendProp { require.NoError(t, err) @@ -371,11 +371,11 @@ func TestGetAllConsumerAdditionProps(t *testing.T) { // Consumer Chain Removal sub-protocol related tests of proposal.go // -// TestHandleConsumerRemovalProposal tests HandleConsumerRemovalProposal against its corresponding spec method. +// TestHandleLegacyConsumerRemovalProposal tests HandleLegacyConsumerRemovalProposal against its corresponding spec method. // // See: https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#ccv-pcf-hcrprop1 // Spec tag: [CCV-PCF-HCRPROP.1] -func TestHandleConsumerRemovalProposal(t *testing.T) { +func TestHandleLegacyConsumerRemovalProposal(t *testing.T) { type testCase struct { description string setupMocks func(ctx sdk.Context, k providerkeeper.Keeper, chainID string) @@ -479,7 +479,7 @@ func TestHandleConsumerRemovalProposal(t *testing.T) { tc.setupMocks(ctx, providerKeeper, tc.prop.ChainId) - err := providerKeeper.HandleConsumerRemovalProposal(ctx, tc.prop) + err := providerKeeper.HandleLegacyConsumerRemovalProposal(ctx, tc.prop) if tc.expAppendProp { require.NoError(t, err) @@ -505,7 +505,7 @@ func TestHandleConsumerRemovalProposal(t *testing.T) { } // Tests the StopConsumerChain method against the spec, -// with more granularity than what's covered in TestHandleConsumerRemovalProposal, or integration tests. +// with more granularity than what's covered in TestHandleLegacyConsumerRemovalProposal, or integration tests. // See: https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#ccv-pcf-stcc1 // Spec tag: [CCV-PCF-STCC.1] func TestStopConsumerChain(t *testing.T) { diff --git a/x/ccv/provider/proposal_handler.go b/x/ccv/provider/proposal_handler.go index ff230b69ce..8f2671e086 100644 --- a/x/ccv/provider/proposal_handler.go +++ b/x/ccv/provider/proposal_handler.go @@ -17,11 +17,11 @@ func NewProviderProposalHandler(k keeper.Keeper) govv1beta1.Handler { return func(ctx sdk.Context, content govv1beta1.Content) error { switch c := content.(type) { case *types.ConsumerAdditionProposal: - return k.HandleConsumerAdditionProposal(ctx, c) + return k.HandleLegacyConsumerAdditionProposal(ctx, c) case *types.ConsumerRemovalProposal: - return k.HandleConsumerRemovalProposal(ctx, c) + return k.HandleLegacyConsumerRemovalProposal(ctx, c) case *types.ChangeRewardDenomsProposal: - return k.HandleConsumerRewardDenomProposal(ctx, c) + return k.HandleLegacyConsumerRewardDenomProposal(ctx, c) default: return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized ccv proposal content type: %T", c) }