fix: Add sims export/import test and fix (backport #23462) (#23464)

Co-authored-by: Alexander Peters <alpe@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot] 2025-01-20 11:17:54 +01:00 committed by GitHub
parent 4c47d8dddd
commit 2fddc86c8d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 597 additions and 343 deletions

View File

@ -182,6 +182,9 @@ var (
SkipStoreKeys: []string{
authtxconfig.DepinjectModuleName,
validate.ModuleName,
genutiltypes.ModuleName,
runtime.ModuleName,
vestingtypes.ModuleName,
},
}),
},

View File

@ -37,13 +37,16 @@ func NewStoreDecoderFuncFromCollectionsSchema(schema collections.Schema) func(kv
if err != nil {
panic(err)
}
vAString, err := vc.Stringify(vA)
if err != nil {
panic(err)
vAString, vBString := "<nil>", "<nil>"
if vA != nil {
if vAString, err = vc.Stringify(vA); err != nil {
panic(err)
}
}
vBString, err := vc.Stringify(vB)
if err != nil {
panic(err)
if vB != nil {
if vBString, err = vc.Stringify(vB); err != nil {
panic(err)
}
}
return vAString + "\n" + vBString
}

View File

@ -86,6 +86,7 @@ func (m *Period) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins {
return nil
}
// UnbondingEntries list of elements
type UnbondingEntries struct {
Entries []*UnbondingEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
}

View File

@ -23,6 +23,7 @@ message Period {
];
}
// UnbondingEntries list of elements
message UnbondingEntries {
repeated UnbondingEntry entries = 1;
}

View File

@ -7,7 +7,6 @@ option go_package = "cosmossdk.io/x/accounts/v1";
import "google/protobuf/any.proto";
import "cosmos/msg/v1/msg.proto";
import "cosmos/base/v1beta1/coin.proto";
import "cosmos/tx/v1beta1/tx.proto";
import "gogoproto/gogo.proto";
// Msg defines the Msg service for the x/accounts module.

View File

@ -9,7 +9,6 @@ import (
github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types"
types "github.com/cosmos/cosmos-sdk/types"
_ "github.com/cosmos/cosmos-sdk/types/msgservice"
_ "github.com/cosmos/cosmos-sdk/types/tx"
_ "github.com/cosmos/gogoproto/gogoproto"
grpc1 "github.com/cosmos/gogoproto/grpc"
proto "github.com/cosmos/gogoproto/proto"
@ -506,52 +505,51 @@ func init() {
func init() { proto.RegisterFile("cosmos/accounts/v1/tx.proto", fileDescriptor_29c2b6d8a13d4189) }
var fileDescriptor_29c2b6d8a13d4189 = []byte{
// 709 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcb, 0x4e, 0xdb, 0x40,
0x14, 0x8d, 0xf3, 0x2c, 0x37, 0x69, 0xa1, 0x53, 0x0a, 0xc6, 0x48, 0x26, 0x4d, 0x5f, 0x11, 0xa2,
0x36, 0xa1, 0x55, 0x2b, 0xb1, 0x03, 0x44, 0x1f, 0x52, 0x91, 0xa8, 0x4b, 0x37, 0xdd, 0x44, 0x8e,
0x3d, 0x98, 0x08, 0xe2, 0x89, 0x7c, 0xc7, 0x28, 0xd9, 0x55, 0xdd, 0x74, 0x57, 0xf5, 0x3b, 0xba,
0xe2, 0x33, 0x58, 0xb2, 0xec, 0xa2, 0xea, 0x03, 0x16, 0xfc, 0x46, 0x95, 0xf1, 0xd8, 0x26, 0x3c,
0x22, 0x96, 0x5d, 0x65, 0x66, 0xce, 0xbd, 0xe7, 0x9e, 0x73, 0x26, 0xb6, 0x61, 0xd6, 0x61, 0xd8,
0x61, 0x68, 0xda, 0x8e, 0xc3, 0x42, 0x9f, 0xa3, 0xb9, 0xdf, 0x30, 0x79, 0xcf, 0xe8, 0x06, 0x8c,
0x33, 0x42, 0x22, 0xd0, 0x88, 0x41, 0x63, 0xbf, 0xa1, 0xcd, 0x78, 0x8c, 0x79, 0x7b, 0xd4, 0x14,
0x15, 0xad, 0x70, 0xdb, 0xb4, 0xfd, 0x7e, 0x54, 0xae, 0x4d, 0x4b, 0xae, 0x0e, 0x7a, 0x03, 0x9a,
0x0e, 0x7a, 0x12, 0xd0, 0x25, 0xd0, 0xb2, 0x91, 0x9a, 0xfb, 0x8d, 0x16, 0xe5, 0x76, 0xc3, 0x74,
0x58, 0xdb, 0x97, 0xb8, 0x26, 0x71, 0xde, 0x4b, 0xd0, 0x58, 0x83, 0x36, 0xe9, 0x31, 0x8f, 0x89,
0xa5, 0x39, 0x58, 0x45, 0xa7, 0xb5, 0x2f, 0x59, 0x28, 0x6d, 0xa0, 0xf7, 0xc6, 0x6f, 0x73, 0x32,
0x05, 0x45, 0xa4, 0xbe, 0x4b, 0x03, 0x55, 0xa9, 0x2a, 0xf5, 0x31, 0x4b, 0xee, 0xc8, 0x3d, 0xa8,
0x48, 0xe1, 0x4d, 0xde, 0xef, 0x52, 0x35, 0x2b, 0xd0, 0xb2, 0x3c, 0xdb, 0xea, 0x77, 0x29, 0x31,
0xa0, 0xd4, 0xa1, 0x88, 0xb6, 0x47, 0xd5, 0x5c, 0x55, 0xa9, 0x97, 0x97, 0x26, 0x8d, 0xc8, 0x9e,
0x11, 0xdb, 0x33, 0x56, 0xfc, 0xbe, 0x15, 0x17, 0x11, 0x1b, 0x0a, 0xdb, 0xa1, 0xef, 0xa2, 0x9a,
0xaf, 0xe6, 0xea, 0xe5, 0xa5, 0x19, 0x43, 0x06, 0x34, 0x30, 0x66, 0x48, 0xe9, 0xc6, 0x1a, 0x6b,
0xfb, 0xab, 0x8b, 0x87, 0xbf, 0xe6, 0x32, 0xdf, 0x7f, 0xcf, 0xd5, 0xbd, 0x36, 0xdf, 0x09, 0x5b,
0x86, 0xc3, 0x3a, 0xa6, 0x74, 0x19, 0xfd, 0x3c, 0x41, 0x77, 0xd7, 0x1c, 0xe8, 0x42, 0xd1, 0x80,
0x56, 0xc4, 0x2c, 0x54, 0xbb, 0x6e, 0x40, 0x11, 0x9b, 0x48, 0xa9, 0xab, 0x16, 0xaa, 0x4a, 0xbd,
0x62, 0x95, 0xe5, 0xd9, 0x7b, 0x4a, 0xdd, 0xe5, 0xf2, 0xe7, 0xd3, 0x83, 0x79, 0xe9, 0xb2, 0xb6,
0x07, 0xe3, 0x32, 0x08, 0x8b, 0x62, 0x97, 0xf9, 0x48, 0xc9, 0x63, 0x18, 0x8f, 0x8d, 0xcb, 0x36,
0x99, 0xcc, 0x2d, 0x79, 0xbc, 0x12, 0x9d, 0x92, 0x45, 0xb8, 0x11, 0xc8, 0x26, 0x91, 0xce, 0x55,
0xfe, 0x93, 0xaa, 0xda, 0x4f, 0x05, 0x60, 0x03, 0xbd, 0xf5, 0x1e, 0x75, 0x42, 0x4e, 0xaf, 0x8c,
0x7e, 0x0a, 0x8a, 0xdc, 0x0e, 0x3c, 0xca, 0x65, 0xe8, 0x72, 0xf7, 0x1f, 0xe6, 0x3d, 0x1c, 0xe6,
0x4b, 0x20, 0xa9, 0xbb, 0x24, 0xcf, 0xb3, 0x31, 0x29, 0xd7, 0x8a, 0xe9, 0x2d, 0x4c, 0xa4, 0x3c,
0xab, 0xa1, 0xef, 0xee, 0x51, 0xa2, 0x42, 0xa9, 0x25, 0x56, 0x71, 0x58, 0xf1, 0x96, 0x4c, 0x40,
0x8e, 0xf7, 0x50, 0xcd, 0x56, 0x73, 0xf5, 0x8a, 0x35, 0x58, 0x2e, 0x57, 0x06, 0xa2, 0x62, 0xbc,
0xf6, 0x37, 0x0b, 0xb7, 0x23, 0x12, 0x77, 0xab, 0x97, 0xa8, 0x7a, 0x0e, 0xd3, 0x76, 0xc8, 0x77,
0xa8, 0xcf, 0xdb, 0x8e, 0xcd, 0xdb, 0xcc, 0x6f, 0x7a, 0x36, 0x36, 0x43, 0xa4, 0xae, 0xe0, 0xcf,
0x5b, 0x77, 0x87, 0xe1, 0x57, 0x36, 0x7e, 0x40, 0xea, 0x92, 0x17, 0xa0, 0x4a, 0xe2, 0x66, 0xd7,
0xee, 0x77, 0xa8, 0xcf, 0xd3, 0xc6, 0x6c, 0xd4, 0x28, 0xf1, 0xcd, 0x08, 0x8e, 0x1b, 0x37, 0x61,
0xe6, 0x7c, 0x63, 0x6c, 0x18, 0xd5, 0x9c, 0xb8, 0xa0, 0xcb, 0x73, 0x99, 0x1e, 0xe6, 0x8b, 0x1d,
0x20, 0x59, 0x00, 0x42, 0x45, 0x46, 0x43, 0xea, 0xf3, 0x42, 0xc4, 0x44, 0x82, 0xc4, 0xf3, 0xd7,
0xe1, 0x4e, 0x5a, 0x9d, 0x4e, 0x2e, 0x8c, 0x98, 0x9c, 0xd2, 0xa7, 0x43, 0x27, 0xa1, 0x40, 0x83,
0x80, 0x05, 0x6a, 0x51, 0xdc, 0x42, 0xb4, 0xa9, 0x35, 0x41, 0x3d, 0x7f, 0x63, 0x49, 0xd2, 0x6b,
0x30, 0x96, 0x8e, 0x53, 0xc4, 0xb8, 0x87, 0xc6, 0xc5, 0x57, 0xa3, 0x71, 0xe1, 0x8e, 0xac, 0xb4,
0x6f, 0xe9, 0x6b, 0x16, 0x72, 0x1b, 0xe8, 0x91, 0xd7, 0x90, 0x17, 0x6f, 0xad, 0xd9, 0xcb, 0x18,
0xe4, 0x93, 0xac, 0xdd, 0x1f, 0x01, 0x26, 0xb2, 0xde, 0x41, 0x29, 0x7e, 0x0e, 0xf5, 0x2b, 0xea,
0x25, 0xae, 0x3d, 0x1a, 0x8d, 0x27, 0x94, 0x0e, 0xdc, 0x1c, 0xfe, 0xd3, 0x3e, 0x18, 0xdd, 0x18,
0x55, 0x69, 0x0b, 0xd7, 0xa9, 0x8a, 0x87, 0x68, 0x85, 0x4f, 0xa7, 0x07, 0xf3, 0xca, 0xea, 0xb3,
0xc3, 0x63, 0x5d, 0x39, 0x3a, 0xd6, 0x95, 0x3f, 0xc7, 0xba, 0xf2, 0xed, 0x44, 0xcf, 0x1c, 0x9d,
0xe8, 0x99, 0x1f, 0x27, 0x7a, 0xe6, 0xa3, 0xfc, 0x1c, 0xa0, 0xbb, 0x6b, 0xb4, 0x99, 0xd9, 0x3b,
0xfb, 0x6d, 0x6a, 0x15, 0xc5, 0xfd, 0x3e, 0xfd, 0x17, 0x00, 0x00, 0xff, 0xff, 0x53, 0x6a, 0x24,
0xdc, 0xb8, 0x06, 0x00, 0x00,
// 702 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x4b, 0x4f, 0xdb, 0x40,
0x10, 0x8e, 0xf3, 0x2c, 0x93, 0xb4, 0xd0, 0x2d, 0x05, 0x13, 0x24, 0x93, 0xa6, 0xaf, 0x08, 0xd1,
0x35, 0xa1, 0x55, 0x2b, 0x71, 0x03, 0x44, 0x1f, 0x52, 0x91, 0xa8, 0x4b, 0x2f, 0xbd, 0x44, 0x8e,
0xbd, 0x98, 0x08, 0xe2, 0x8d, 0x3c, 0x6b, 0x94, 0xdc, 0xaa, 0x5e, 0x7a, 0xab, 0xfa, 0x3b, 0x7a,
0xe2, 0x67, 0x70, 0xe4, 0xd8, 0x43, 0xd5, 0x07, 0x1c, 0xf8, 0x1b, 0x55, 0xd6, 0xeb, 0x98, 0xf0,
0x88, 0x38, 0xf6, 0x94, 0xdd, 0xf9, 0x66, 0xbe, 0xf9, 0xe6, 0x9b, 0xd8, 0x86, 0x59, 0x87, 0x63,
0x9b, 0xa3, 0x69, 0x3b, 0x0e, 0x0f, 0x7d, 0x81, 0xe6, 0x7e, 0xdd, 0x14, 0x5d, 0xda, 0x09, 0xb8,
0xe0, 0x84, 0x44, 0x20, 0x8d, 0x41, 0xba, 0x5f, 0x2f, 0xcf, 0x78, 0x9c, 0x7b, 0x7b, 0xcc, 0x94,
0x19, 0xcd, 0x70, 0xdb, 0xb4, 0xfd, 0x5e, 0x94, 0x5e, 0x9e, 0x56, 0x5c, 0x6d, 0xf4, 0xfa, 0x34,
0x6d, 0xf4, 0x14, 0x60, 0x28, 0xa0, 0x69, 0x23, 0x33, 0xf7, 0xeb, 0x4d, 0x26, 0xec, 0xba, 0xe9,
0xf0, 0x96, 0xaf, 0xf0, 0x49, 0x8f, 0x7b, 0x5c, 0x1e, 0xcd, 0xfe, 0x29, 0x8a, 0x56, 0xbf, 0xa4,
0xa1, 0xb0, 0x81, 0xde, 0x1b, 0xbf, 0x25, 0xc8, 0x14, 0xe4, 0x91, 0xf9, 0x2e, 0x0b, 0x74, 0xad,
0xa2, 0xd5, 0xc6, 0x2c, 0x75, 0x23, 0xf7, 0xa0, 0xa4, 0xc4, 0x35, 0x44, 0xaf, 0xc3, 0xf4, 0xb4,
0x44, 0x8b, 0x2a, 0xb6, 0xd5, 0xeb, 0x30, 0x42, 0xa1, 0xd0, 0x66, 0x88, 0xb6, 0xc7, 0xf4, 0x4c,
0x45, 0xab, 0x15, 0x97, 0x26, 0x69, 0x34, 0x02, 0x8d, 0x47, 0xa0, 0x2b, 0x7e, 0xcf, 0x8a, 0x93,
0x88, 0x0d, 0xb9, 0xed, 0xd0, 0x77, 0x51, 0xcf, 0x56, 0x32, 0xb5, 0xe2, 0xd2, 0x0c, 0x55, 0x26,
0xf4, 0xc5, 0x53, 0x25, 0x9e, 0xae, 0xf1, 0x96, 0xbf, 0xba, 0x78, 0xf8, 0x6b, 0x2e, 0xf5, 0xfd,
0xf7, 0x5c, 0xcd, 0x6b, 0x89, 0x9d, 0xb0, 0x49, 0x1d, 0xde, 0x36, 0xd5, 0xa4, 0xd1, 0xcf, 0x13,
0x74, 0x77, 0xcd, 0xbe, 0x2e, 0x94, 0x05, 0x68, 0x45, 0xcc, 0x52, 0xb5, 0xeb, 0x06, 0x0c, 0xb1,
0x81, 0x8c, 0xb9, 0x7a, 0xae, 0xa2, 0xd5, 0x4a, 0x56, 0x51, 0xc5, 0xde, 0x33, 0xe6, 0x2e, 0x17,
0x3f, 0x9f, 0x1e, 0xcc, 0xab, 0x29, 0xab, 0x7b, 0x30, 0xae, 0x8c, 0xb0, 0x18, 0x76, 0xb8, 0x8f,
0x8c, 0x3c, 0x86, 0xf1, 0x78, 0x70, 0x55, 0xa6, 0x9c, 0xb9, 0xa5, 0xc2, 0x2b, 0x51, 0x94, 0x2c,
0xc2, 0x8d, 0x40, 0x15, 0x49, 0x77, 0xae, 0x9a, 0x7f, 0x90, 0x55, 0xfd, 0xa9, 0x01, 0x6c, 0xa0,
0xb7, 0xde, 0x65, 0x4e, 0x28, 0xd8, 0x95, 0xd6, 0x4f, 0x41, 0x5e, 0xd8, 0x81, 0xc7, 0x84, 0x32,
0x5d, 0xdd, 0xfe, 0x43, 0xbf, 0x87, 0xcd, 0x7c, 0x09, 0x24, 0x99, 0x6e, 0xe0, 0xe7, 0x59, 0x9b,
0xb4, 0x6b, 0xd9, 0xf4, 0x16, 0x26, 0x12, 0x9e, 0xd5, 0xd0, 0x77, 0xf7, 0x18, 0xd1, 0xa1, 0xd0,
0x94, 0xa7, 0xd8, 0xac, 0xf8, 0x4a, 0x26, 0x20, 0x23, 0xba, 0xa8, 0xa7, 0x2b, 0x99, 0x5a, 0xc9,
0xea, 0x1f, 0x97, 0x4b, 0x7d, 0x51, 0x31, 0x5e, 0xfd, 0x9b, 0x86, 0xdb, 0x11, 0x89, 0xbb, 0xd5,
0x1d, 0xa8, 0x7a, 0x0e, 0xd3, 0x76, 0x28, 0x76, 0x98, 0x2f, 0x5a, 0x8e, 0x2d, 0x5a, 0xdc, 0x6f,
0x78, 0x36, 0x36, 0x42, 0x64, 0xae, 0xe4, 0xcf, 0x5a, 0x77, 0x87, 0xe1, 0x57, 0x36, 0x7e, 0x40,
0xe6, 0x92, 0x17, 0xa0, 0x2b, 0xe2, 0x46, 0xc7, 0xee, 0xb5, 0x99, 0x2f, 0x92, 0xc2, 0x74, 0x54,
0xa8, 0xf0, 0xcd, 0x08, 0x8e, 0x0b, 0x37, 0x61, 0xe6, 0x7c, 0x61, 0x3c, 0x30, 0xea, 0x19, 0xb9,
0xa0, 0xcb, 0x7d, 0x99, 0x1e, 0xe6, 0x8b, 0x27, 0x40, 0xb2, 0x00, 0x84, 0x49, 0x8f, 0x86, 0xd4,
0x67, 0xa5, 0x88, 0x89, 0x01, 0x12, 0xf7, 0x5f, 0x87, 0x3b, 0x49, 0x76, 0xd2, 0x39, 0x37, 0xa2,
0x73, 0x42, 0x9f, 0x34, 0x9d, 0x84, 0x1c, 0x0b, 0x02, 0x1e, 0xe8, 0x79, 0xb9, 0x85, 0xe8, 0x52,
0x6d, 0x80, 0x7e, 0x7e, 0x63, 0x03, 0xa7, 0xd7, 0x60, 0x2c, 0x69, 0xa7, 0xc9, 0x76, 0x0f, 0xe9,
0xc5, 0xd7, 0x1f, 0xbd, 0xb0, 0x23, 0x2b, 0xa9, 0x5b, 0xfa, 0x9a, 0x86, 0xcc, 0x06, 0x7a, 0xe4,
0x35, 0x64, 0xe5, 0x5b, 0x6b, 0xf6, 0x32, 0x06, 0xf5, 0x24, 0x97, 0xef, 0x8f, 0x00, 0x07, 0xb2,
0xde, 0x41, 0x21, 0x7e, 0x0e, 0x8d, 0x2b, 0xf2, 0x15, 0x5e, 0x7e, 0x34, 0x1a, 0x1f, 0x50, 0x3a,
0x70, 0x73, 0xf8, 0x4f, 0xfb, 0x60, 0x74, 0x61, 0x94, 0x55, 0x5e, 0xb8, 0x4e, 0x56, 0xdc, 0xa4,
0x9c, 0xfb, 0x74, 0x7a, 0x30, 0xaf, 0xad, 0x3e, 0x3b, 0x3c, 0x36, 0xb4, 0xa3, 0x63, 0x43, 0xfb,
0x73, 0x6c, 0x68, 0xdf, 0x4e, 0x8c, 0xd4, 0xd1, 0x89, 0x91, 0xfa, 0x71, 0x62, 0xa4, 0x3e, 0x96,
0x23, 0x36, 0x74, 0x77, 0x69, 0x8b, 0x9b, 0xdd, 0xb3, 0xdf, 0x9f, 0x66, 0x5e, 0xee, 0xf7, 0xe9,
0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4a, 0xc9, 0x1e, 0xc7, 0x9c, 0x06, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

View File

@ -6,7 +6,6 @@ option go_package = "cosmossdk.io/x/mint/types";
import "gogoproto/gogo.proto";
import "cosmos_proto/cosmos.proto";
import "amino/amino.proto";
import "google/protobuf/any.proto";
// Minter represents the minting state.
message Minter {

View File

@ -10,7 +10,6 @@ import (
_ "github.com/cosmos/cosmos-sdk/types/tx/amino"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
_ "github.com/cosmos/gogoproto/types/any"
io "io"
math "math"
math_bits "math/bits"
@ -151,38 +150,37 @@ func init() {
func init() { proto.RegisterFile("cosmos/mint/v1beta1/mint.proto", fileDescriptor_2df116d183c1e223) }
var fileDescriptor_2df116d183c1e223 = []byte{
// 490 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x3f, 0x6f, 0xd3, 0x40,
0x18, 0xc6, 0x73, 0x10, 0x82, 0x72, 0xb4, 0x82, 0x5e, 0xa9, 0xe4, 0x16, 0xd5, 0x8d, 0x3a, 0xa0,
0xa8, 0xa8, 0xb1, 0xa2, 0x4a, 0x0c, 0x8c, 0x21, 0x4b, 0x11, 0x15, 0x91, 0x19, 0x10, 0x20, 0x61,
0xbd, 0xb6, 0xaf, 0xee, 0x11, 0xdf, 0x9d, 0xe5, 0xbb, 0x54, 0xf6, 0x57, 0x60, 0xe2, 0x63, 0x30,
0x76, 0x60, 0xe1, 0x1b, 0x74, 0x41, 0xaa, 0x98, 0x10, 0x43, 0x85, 0x92, 0xa1, 0x5f, 0x03, 0xf9,
0xce, 0xa4, 0xfc, 0x99, 0x08, 0x5d, 0xac, 0xbb, 0xf7, 0x79, 0xdf, 0xdf, 0xf3, 0xd8, 0xf2, 0x8b,
0xdd, 0x48, 0x2a, 0x2e, 0x95, 0xc7, 0x99, 0xd0, 0xde, 0x71, 0x3f, 0xa4, 0x1a, 0xfa, 0xe6, 0xd2,
0xcb, 0x72, 0xa9, 0x25, 0x59, 0xb5, 0x7a, 0xcf, 0x94, 0x6a, 0x7d, 0xe3, 0x6e, 0x22, 0x13, 0x69,
0x74, 0xaf, 0x3a, 0xd9, 0xd6, 0x8d, 0x75, 0xdb, 0x1a, 0x58, 0xa1, 0x9e, 0xb3, 0xd2, 0x0a, 0x70,
0x26, 0xa4, 0x67, 0x9e, 0x3f, 0xbb, 0x13, 0x29, 0x93, 0x94, 0x7a, 0xe6, 0x16, 0x4e, 0x0e, 0x3d,
0x10, 0xa5, 0x95, 0xb6, 0x3f, 0x23, 0xdc, 0x3a, 0x60, 0x42, 0xd3, 0x9c, 0x3c, 0xc3, 0x6d, 0x26,
0x0e, 0x53, 0xd0, 0x4c, 0x0a, 0x07, 0x75, 0x50, 0xb7, 0x3d, 0xe8, 0x9f, 0x9e, 0x6f, 0x35, 0xbe,
0x9d, 0x6f, 0xdd, 0xb3, 0x0e, 0x2a, 0x1e, 0xf7, 0x98, 0xf4, 0x38, 0xe8, 0xa3, 0xde, 0x53, 0x9a,
0x40, 0x54, 0x0e, 0x69, 0xf4, 0xe5, 0xe3, 0x2e, 0xae, 0x03, 0x0c, 0x69, 0xe4, 0x5f, 0x32, 0xc8,
0x1b, 0xbc, 0x02, 0x42, 0x4c, 0x20, 0xad, 0x62, 0x1e, 0x33, 0xc5, 0xa4, 0x50, 0xce, 0xb5, 0x45,
0xc1, 0x77, 0x2c, 0x6b, 0x34, 0x47, 0x11, 0x82, 0x9b, 0x31, 0x68, 0x70, 0xae, 0x77, 0x50, 0x77,
0xc9, 0x37, 0xe7, 0xed, 0x4f, 0x4d, 0xdc, 0x1a, 0x41, 0x0e, 0x5c, 0x91, 0x4d, 0x8c, 0xab, 0x2f,
0x19, 0xc4, 0x54, 0x48, 0x6e, 0x5f, 0xc8, 0x6f, 0x57, 0x95, 0x61, 0x55, 0x20, 0x6f, 0xf1, 0xda,
0x3c, 0x6a, 0x90, 0x83, 0xa6, 0x41, 0x74, 0x04, 0x22, 0xa1, 0x75, 0xc2, 0x87, 0xff, 0x9c, 0xf0,
0xc3, 0xc5, 0xc9, 0x0e, 0xf2, 0x57, 0xe7, 0x50, 0x1f, 0x34, 0x7d, 0x6c, 0x90, 0xe4, 0x35, 0x5e,
0xbe, 0xf4, 0xe2, 0x50, 0x98, 0xc8, 0x8b, 0x7b, 0x2c, 0xcd, 0x61, 0x07, 0x50, 0xfc, 0x01, 0x67,
0xc2, 0x69, 0x5e, 0x15, 0x9c, 0x09, 0xf2, 0x02, 0xdf, 0x4a, 0x24, 0xa4, 0x41, 0x28, 0x45, 0x4c,
0x63, 0xe7, 0xc6, 0x7f, 0xa1, 0x71, 0x85, 0x1a, 0x18, 0x12, 0xb9, 0x8f, 0x6f, 0x87, 0xa9, 0x8c,
0xc6, 0x2a, 0xc8, 0x68, 0x1e, 0x94, 0x14, 0x72, 0xa7, 0xd5, 0x41, 0xdd, 0xa6, 0xbf, 0x6c, 0xcb,
0x23, 0x9a, 0xbf, 0xa4, 0x90, 0x93, 0x27, 0x18, 0x73, 0x28, 0x02, 0x35, 0xc9, 0xb2, 0xb4, 0x74,
0x6e, 0x1a, 0xff, 0x07, 0xb5, 0xff, 0xda, 0xdf, 0xfe, 0xfb, 0x42, 0xff, 0xe2, 0xbc, 0x2f, 0xb4,
0xdf, 0xe6, 0x50, 0x3c, 0x37, 0xd3, 0x8f, 0x36, 0xdf, 0x5d, 0x9c, 0xec, 0x38, 0x56, 0xdb, 0x55,
0xf1, 0xd8, 0x2b, 0xec, 0x2e, 0xda, 0x1f, 0x66, 0xb0, 0x77, 0x3a, 0x75, 0xd1, 0xd9, 0xd4, 0x45,
0xdf, 0xa7, 0x2e, 0x7a, 0x3f, 0x73, 0x1b, 0x67, 0x33, 0xb7, 0xf1, 0x75, 0xe6, 0x36, 0x5e, 0xad,
0xff, 0x66, 0x54, 0x4f, 0xe9, 0x32, 0xa3, 0x2a, 0x6c, 0x99, 0x3d, 0xda, 0xfb, 0x11, 0x00, 0x00,
0xff, 0xff, 0x53, 0x44, 0x4d, 0x1a, 0xdd, 0x03, 0x00, 0x00,
// 476 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x4f, 0x6f, 0xd3, 0x30,
0x18, 0xc6, 0x6b, 0x28, 0x45, 0x35, 0x9b, 0x60, 0x1e, 0x93, 0xb2, 0xa1, 0x65, 0xd5, 0x0e, 0xa8,
0x1a, 0x5a, 0xa3, 0x6a, 0x12, 0x07, 0x8e, 0xa5, 0x97, 0x21, 0x26, 0xaa, 0x70, 0x40, 0x80, 0x44,
0xf4, 0x36, 0x31, 0x99, 0x69, 0x6c, 0x47, 0xb6, 0x37, 0xa5, 0x5f, 0x81, 0x13, 0x1f, 0x83, 0xe3,
0x0e, 0x5c, 0xf8, 0x06, 0xbb, 0x20, 0x4d, 0x9c, 0x10, 0x87, 0x09, 0xb5, 0x87, 0x7d, 0x0d, 0x14,
0x3b, 0xca, 0xf8, 0x73, 0xa2, 0xec, 0x12, 0x39, 0xcf, 0xe3, 0xf7, 0xf7, 0x3c, 0x89, 0x6c, 0xec,
0xc7, 0x52, 0x73, 0xa9, 0x03, 0xce, 0x84, 0x09, 0x8e, 0xfb, 0x63, 0x6a, 0xa0, 0x6f, 0x5f, 0x7a,
0xb9, 0x92, 0x46, 0x92, 0x55, 0xe7, 0xf7, 0xac, 0x54, 0xf9, 0x1b, 0x77, 0x53, 0x99, 0x4a, 0xeb,
0x07, 0xe5, 0xca, 0x6d, 0xdd, 0x58, 0x77, 0x5b, 0x23, 0x67, 0x54, 0x73, 0xce, 0x5a, 0x01, 0xce,
0x84, 0x0c, 0xec, 0xd3, 0x49, 0xdb, 0x5f, 0x10, 0x6e, 0x1d, 0x30, 0x61, 0xa8, 0x22, 0xcf, 0x70,
0x9b, 0x89, 0xb7, 0x19, 0x18, 0x26, 0x85, 0x87, 0x3a, 0xa8, 0xdb, 0x1e, 0xf4, 0x4f, 0xcf, 0xb7,
0x1a, 0xdf, 0xcf, 0xb7, 0xee, 0x39, 0x8c, 0x4e, 0x26, 0x3d, 0x26, 0x03, 0x0e, 0xe6, 0xb0, 0xf7,
0x94, 0xa6, 0x10, 0x4f, 0x87, 0x34, 0xfe, 0xfa, 0x69, 0x17, 0x57, 0x29, 0x43, 0x1a, 0x87, 0x97,
0x0c, 0xf2, 0x06, 0xaf, 0x80, 0x10, 0x47, 0x90, 0x95, 0x5d, 0x8e, 0x99, 0x66, 0x52, 0x68, 0xef,
0xda, 0xa2, 0xe0, 0x3b, 0x8e, 0x35, 0xaa, 0x51, 0x84, 0xe0, 0x66, 0x02, 0x06, 0xbc, 0xeb, 0x1d,
0xd4, 0x5d, 0x0a, 0xed, 0x7a, 0xfb, 0x73, 0x13, 0xb7, 0x46, 0xa0, 0x80, 0x6b, 0xb2, 0x89, 0x71,
0xf9, 0xbb, 0xa2, 0x84, 0x0a, 0xc9, 0xdd, 0x07, 0x85, 0xed, 0x52, 0x19, 0x96, 0x02, 0x79, 0x87,
0xd7, 0xea, 0xaa, 0x91, 0x02, 0x43, 0xa3, 0xf8, 0x10, 0x44, 0x4a, 0xab, 0x86, 0x0f, 0xff, 0xb9,
0xe1, 0xc7, 0x8b, 0x93, 0x1d, 0x14, 0xae, 0xd6, 0xd0, 0x10, 0x0c, 0x7d, 0x6c, 0x91, 0xe4, 0x35,
0x5e, 0xbe, 0xcc, 0xe2, 0x50, 0xd8, 0xca, 0x8b, 0x67, 0x2c, 0xd5, 0xb0, 0x03, 0x28, 0xfe, 0x80,
0x33, 0xe1, 0x35, 0xaf, 0x0a, 0xce, 0x04, 0x79, 0x81, 0x6f, 0xa5, 0x12, 0xb2, 0x68, 0x2c, 0x45,
0x42, 0x13, 0xef, 0xc6, 0x7f, 0xa1, 0x71, 0x89, 0x1a, 0x58, 0x12, 0xb9, 0x8f, 0x6f, 0x8f, 0x33,
0x19, 0x4f, 0x74, 0x94, 0x53, 0x15, 0x4d, 0x29, 0x28, 0xaf, 0xd5, 0x41, 0xdd, 0x66, 0xb8, 0xec,
0xe4, 0x11, 0x55, 0x2f, 0x29, 0x28, 0xf2, 0x04, 0x63, 0x0e, 0x45, 0xa4, 0x8f, 0xf2, 0x3c, 0x9b,
0x7a, 0x37, 0x6d, 0xfe, 0x83, 0x2a, 0x7f, 0xed, 0xef, 0xfc, 0x7d, 0x61, 0x7e, 0x49, 0xde, 0x17,
0x26, 0x6c, 0x73, 0x28, 0x9e, 0xdb, 0xe9, 0x47, 0x9b, 0xef, 0x2f, 0x4e, 0x76, 0x3c, 0xe7, 0xed,
0xea, 0x64, 0x12, 0x14, 0xee, 0xc2, 0xb9, 0x03, 0x33, 0xd8, 0x3b, 0x9d, 0xf9, 0xe8, 0x6c, 0xe6,
0xa3, 0x1f, 0x33, 0x1f, 0x7d, 0x98, 0xfb, 0x8d, 0xb3, 0xb9, 0xdf, 0xf8, 0x36, 0xf7, 0x1b, 0xaf,
0xd6, 0x7f, 0x0b, 0xaa, 0xa6, 0xcc, 0x34, 0xa7, 0x7a, 0xdc, 0xb2, 0xf7, 0x68, 0xef, 0x67, 0x00,
0x00, 0x00, 0xff, 0xff, 0xf6, 0x1e, 0x9c, 0x7d, 0xc2, 0x03, 0x00, 0x00,
}
func (m *Minter) Marshal() (dAtA []byte, err error) {

View File

@ -5,7 +5,6 @@ option go_package = "cosmossdk.io/x/protocolpool/types";
import "cosmos/protocolpool/v1/types.proto";
import "gogoproto/gogo.proto";
import "cosmos_proto/cosmos.proto";
import "google/protobuf/timestamp.proto";
// GenesisState defines the protocolpool module's genesis state.
@ -29,6 +28,7 @@ message GenesisState {
Params params = 5;
}
// Distribution time with amount tuple
message Distribution {
// time at which this distribution was made, in order to distribute to non-expired funds only
// and funds that existed at that time. Because we don't distribute right away, we keep track

View File

@ -5,7 +5,6 @@ package types
import (
fmt "fmt"
_ "github.com/cosmos/cosmos-proto"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types"
@ -114,6 +113,7 @@ func (m *GenesisState) GetParams() *Params {
return nil
}
// Distribution time with amount tuple
type Distribution struct {
// time at which this distribution was made, in order to distribute to non-expired funds only
// and funds that existed at that time. Because we don't distribute right away, we keep track
@ -180,32 +180,32 @@ func init() {
}
var fileDescriptor_72560a99455b4146 = []byte{
// 394 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x92, 0x41, 0xeb, 0xd3, 0x30,
0x18, 0x87, 0x9b, 0xad, 0xee, 0x90, 0x4d, 0x85, 0x22, 0x52, 0x7b, 0xe8, 0xe6, 0x18, 0x32, 0x3c,
0xa4, 0x6c, 0x8a, 0x17, 0x4f, 0x56, 0x51, 0xf1, 0xa2, 0x74, 0x9e, 0xbc, 0x8c, 0xb4, 0xcd, 0x4a,
0xb1, 0xcd, 0x5b, 0x96, 0x64, 0xe8, 0x97, 0x90, 0x7d, 0xac, 0x1d, 0x77, 0xf4, 0xa4, 0xb2, 0x7d,
0x01, 0x3f, 0x82, 0x34, 0xe9, 0xa4, 0x03, 0x0b, 0xf2, 0xbf, 0xa5, 0x6f, 0x9f, 0xdf, 0xc3, 0xfb,
0xe6, 0x0d, 0x9e, 0x25, 0x20, 0x4a, 0x10, 0x41, 0xb5, 0x05, 0x09, 0x09, 0x14, 0x15, 0x40, 0x11,
0xec, 0x16, 0x41, 0xc6, 0x38, 0x13, 0xb9, 0x20, 0xba, 0xee, 0xdc, 0x37, 0x14, 0x69, 0x53, 0x64,
0xb7, 0xf0, 0xa6, 0x1d, 0x69, 0xf9, 0xb5, 0x62, 0x0d, 0xed, 0xdd, 0xcb, 0x20, 0x03, 0x7d, 0x0c,
0xea, 0x53, 0x53, 0x7d, 0x60, 0x92, 0x6b, 0xf3, 0xa3, 0xad, 0xf7, 0xc6, 0x19, 0x40, 0x56, 0x30,
0x23, 0x8d, 0xd5, 0x26, 0x90, 0x79, 0xc9, 0x84, 0xa4, 0x65, 0x65, 0x80, 0xe9, 0xef, 0x1e, 0x1e,
0xbd, 0x31, 0xfd, 0xad, 0x24, 0x95, 0xcc, 0x79, 0x8f, 0xef, 0x26, 0xc0, 0x65, 0xce, 0x15, 0x28,
0xb1, 0xde, 0x28, 0x9e, 0xba, 0x68, 0xd2, 0x9f, 0x0f, 0x97, 0x8f, 0xc8, 0xbf, 0x1b, 0x27, 0x2f,
0xff, 0xe2, 0xaf, 0x15, 0x4f, 0xa3, 0x3b, 0xc9, 0xd5, 0xb7, 0xf3, 0x0c, 0x0f, 0x62, 0x95, 0x66,
0x4c, 0xba, 0x3d, 0xed, 0xf1, 0xbb, 0x3c, 0xa1, 0xa6, 0xa2, 0x86, 0x76, 0x56, 0x78, 0x54, 0x50,
0x21, 0xd7, 0x31, 0x2d, 0x28, 0x4f, 0x98, 0xdb, 0x9f, 0xa0, 0xf9, 0x70, 0xf9, 0xb8, 0x2b, 0xfd,
0x2a, 0x17, 0x72, 0x9b, 0xc7, 0x4a, 0xe6, 0xc0, 0x5f, 0x94, 0xa0, 0xb8, 0x0c, 0xed, 0xc3, 0x8f,
0xb1, 0x15, 0x0d, 0x6b, 0x4b, 0x68, 0x24, 0xce, 0x3b, 0x7c, 0x3b, 0x6d, 0x81, 0xc2, 0xb5, 0x75,
0x4f, 0xb3, 0xff, 0xb1, 0x46, 0xd7, 0xd1, 0x7a, 0xb0, 0x8a, 0x6e, 0x69, 0x29, 0xdc, 0x5b, 0xba,
0xb5, 0xce, 0xc1, 0x3e, 0x68, 0x2a, 0x6a, 0xe8, 0xe9, 0x37, 0x84, 0x47, 0x6d, 0xaf, 0xf3, 0x14,
0xdb, 0xf5, 0x5a, 0x5c, 0xa4, 0x35, 0x1e, 0x31, 0x3b, 0x23, 0x97, 0x9d, 0x91, 0x8f, 0x97, 0x9d,
0x85, 0xf6, 0xfe, 0xe7, 0x18, 0x45, 0x9a, 0x76, 0xde, 0xe2, 0x01, 0xd5, 0x73, 0xba, 0xbd, 0x1b,
0xde, 0x4c, 0x93, 0x0f, 0x9f, 0x1f, 0x4e, 0x3e, 0x3a, 0x9e, 0x7c, 0xf4, 0xeb, 0xe4, 0xa3, 0xfd,
0xd9, 0xb7, 0x8e, 0x67, 0xdf, 0xfa, 0x7e, 0xf6, 0xad, 0x4f, 0x0f, 0x8d, 0x52, 0xa4, 0x9f, 0x49,
0x0e, 0xc1, 0x97, 0xeb, 0xb7, 0xa9, 0x1f, 0x66, 0x3c, 0xd0, 0xb5, 0x27, 0x7f, 0x02, 0x00, 0x00,
0xff, 0xff, 0xa2, 0x1c, 0x62, 0x0f, 0xfd, 0x02, 0x00, 0x00,
// 389 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x92, 0xc1, 0x6a, 0xdb, 0x40,
0x10, 0x86, 0xb5, 0xb6, 0xea, 0xc3, 0xda, 0x6d, 0x41, 0x94, 0x22, 0x7c, 0x90, 0x5d, 0x63, 0x8a,
0xe9, 0x61, 0x85, 0xdd, 0xd2, 0x4b, 0x4f, 0x55, 0x4b, 0x5b, 0x7a, 0x49, 0x90, 0x73, 0xca, 0xc5,
0xac, 0xa4, 0xb5, 0x10, 0x91, 0x76, 0x84, 0x77, 0xd7, 0x24, 0x2f, 0x11, 0xfc, 0x58, 0x3e, 0xfa,
0x98, 0x53, 0x12, 0xec, 0x17, 0xc8, 0x23, 0x04, 0xad, 0xe4, 0x60, 0x43, 0x04, 0x21, 0xb7, 0xd5,
0xf0, 0xfd, 0x1f, 0x33, 0x9a, 0xc1, 0xc3, 0x10, 0x44, 0x06, 0xc2, 0xcd, 0x17, 0x20, 0x21, 0x84,
0x34, 0x07, 0x48, 0xdd, 0xe5, 0xd8, 0x8d, 0x19, 0x67, 0x22, 0x11, 0x44, 0xd7, 0xad, 0x8f, 0x25,
0x45, 0x0e, 0x29, 0xb2, 0x1c, 0x77, 0x07, 0x35, 0x69, 0x79, 0x95, 0xb3, 0x8a, 0xee, 0x7e, 0x88,
0x21, 0x06, 0xfd, 0x74, 0x8b, 0x57, 0x55, 0xed, 0xc5, 0x00, 0x71, 0xca, 0xca, 0x64, 0xa0, 0xe6,
0xae, 0x4c, 0x32, 0x26, 0x24, 0xcd, 0xf2, 0x12, 0x18, 0x3c, 0x34, 0x70, 0xe7, 0x6f, 0xd9, 0xc4,
0x54, 0x52, 0xc9, 0xac, 0x13, 0xfc, 0x3e, 0x04, 0x2e, 0x13, 0xae, 0x40, 0x89, 0xd9, 0x5c, 0xf1,
0xc8, 0x46, 0xfd, 0xe6, 0xa8, 0x3d, 0xf9, 0x4c, 0x9e, 0xef, 0x8e, 0xfc, 0x7a, 0xc2, 0xff, 0x28,
0x1e, 0xf9, 0xef, 0xc2, 0xa3, 0x6f, 0xeb, 0x3b, 0x6e, 0x05, 0x2a, 0x8a, 0x99, 0xb4, 0x1b, 0xda,
0xe3, 0xd4, 0x79, 0x3c, 0x4d, 0xf9, 0x15, 0x6d, 0x4d, 0x71, 0x27, 0xa5, 0x42, 0xce, 0x02, 0x9a,
0x52, 0x1e, 0x32, 0xbb, 0xd9, 0x47, 0xa3, 0xf6, 0xe4, 0x4b, 0x5d, 0xfa, 0x77, 0x22, 0xe4, 0x22,
0x09, 0x94, 0x4c, 0x80, 0xff, 0xcc, 0x40, 0x71, 0xe9, 0x99, 0xeb, 0xdb, 0x9e, 0xe1, 0xb7, 0x0b,
0x8b, 0x57, 0x4a, 0xac, 0xff, 0xf8, 0x6d, 0x74, 0x00, 0x0a, 0xdb, 0xd4, 0x3d, 0x0d, 0x5f, 0x62,
0xf5, 0x8f, 0xa3, 0xc5, 0x60, 0x39, 0x5d, 0xd0, 0x4c, 0xd8, 0x6f, 0x74, 0x6b, 0xb5, 0x83, 0x9d,
0x6a, 0xca, 0xaf, 0xe8, 0xc1, 0x35, 0xc2, 0x9d, 0x43, 0xaf, 0xf5, 0x0d, 0x9b, 0xc5, 0x5a, 0x6c,
0xa4, 0x35, 0x5d, 0x52, 0xee, 0x8c, 0xec, 0x77, 0x46, 0xce, 0xf6, 0x3b, 0xf3, 0xcc, 0xd5, 0x5d,
0x0f, 0xf9, 0x9a, 0xb6, 0xfe, 0xe1, 0x16, 0xd5, 0x73, 0xda, 0x8d, 0x57, 0xfe, 0x99, 0x2a, 0xef,
0xfd, 0x58, 0x6f, 0x1d, 0xb4, 0xd9, 0x3a, 0xe8, 0x7e, 0xeb, 0xa0, 0xd5, 0xce, 0x31, 0x36, 0x3b,
0xc7, 0xb8, 0xd9, 0x39, 0xc6, 0xf9, 0xa7, 0x52, 0x29, 0xa2, 0x0b, 0x92, 0x80, 0x7b, 0x79, 0x7c,
0x80, 0xfa, 0xfa, 0x82, 0x96, 0xae, 0x7d, 0x7d, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x79, 0x0c, 0x21,
0x4c, 0xe2, 0x02, 0x00, 0x00,
}
func (m *GenesisState) Marshal() (dAtA []byte, err error) {

View File

@ -25,6 +25,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
## [Unreleased]
### Bug Fixes
* [#23462](https://github.com/cosmos/cosmos-sdk/pull/23462) Fixes missing data for genesis ex-/import on key rotation.
## [v0.2.0-rc.1](https://github.com/cosmos/cosmos-sdk/releases/tag/x/staking/v0.2.0-rc.1) - 2024-12-18
### Features

View File

@ -133,7 +133,7 @@ func (AppModule) GenerateGenesisState(simState *module.SimulationState) {
// RegisterStoreDecoder registers a decoder for staking module's types
func (am AppModule) RegisterStoreDecoder(sdr simtypes.StoreDecoderRegistry) {
sdr[types.StoreKey] = simulation.NewDecodeStore(am.cdc)
sdr[types.StoreKey] = simtypes.NewStoreDecoderFuncFromCollectionsSchema(am.keeper.Schema)
}
// ProposalMsgsX returns msgs used for governance proposals for simulations.

View File

@ -195,6 +195,35 @@ func (k Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) ([]ap
}
}
for i, record := range data.RotatedConsAddresses {
oldAddr, err := k.consensusAddressCodec.StringToBytes(record.OldAddress)
if err != nil {
return nil, fmt.Errorf("decode old address at entry %d: %w", i, err)
}
newAddr, err := k.consensusAddressCodec.StringToBytes(record.NewAddress)
if err != nil {
return nil, fmt.Errorf("decode new address at entry %d: %w", i, err)
}
// sets a map: old ConsKey -> new ConsKey
if err := k.OldToNewConsAddrMap.Set(ctx, oldAddr, newAddr); err != nil {
return nil, err
}
}
for i, record := range data.InitialConsAddresses {
initAddr, err := k.consensusAddressCodec.StringToBytes(record.OldAddress)
if err != nil {
return nil, fmt.Errorf("decode initial address at entry %d: %w", i, err)
}
currentAddr, err := k.consensusAddressCodec.StringToBytes(record.NewAddress)
if err != nil {
return nil, fmt.Errorf("decode current address at entry %d: %w", i, err)
}
// sets a map: current ConsKey -> initial ConsKey
if err := k.ConsAddrToValidatorIdentifierMap.Set(ctx, currentAddr, initAddr); err != nil {
return nil, err
}
}
// don't need to run CometBFT updates if we exported
var moduleValidatorUpdates []appmodule.ValidatorUpdate
if data.Exported {
@ -331,6 +360,32 @@ func (k Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error)
return nil, err
}
var initConsAddrs, rotatedConsAddrs []types.RotatedConsensusAddresses
err = k.ConsAddrToValidatorIdentifierMap.Walk(ctx, nil, func(newBz []byte, initBz []byte) (stop bool, err error) {
oldAddr, err2 := k.consensusAddressCodec.BytesToString(initBz)
if err2 != nil {
return true, fmt.Errorf("decode initial address %X: %w", initBz, err2)
}
newAddr, err2 := k.consensusAddressCodec.BytesToString(newBz)
if err2 != nil {
return true, fmt.Errorf("decode new address %X: %w", newBz, err2)
}
initConsAddrs = append(initConsAddrs, types.RotatedConsensusAddresses{OldAddress: oldAddr, NewAddress: newAddr})
return false, nil
})
err = k.OldToNewConsAddrMap.Walk(ctx, nil, func(oldBz []byte, newBz []byte) (stop bool, err error) {
oldAddr, err2 := k.consensusAddressCodec.BytesToString(oldBz)
if err2 != nil {
return true, fmt.Errorf("decode old address %X: %w", oldBz, err2)
}
newAddr, err2 := k.consensusAddressCodec.BytesToString(newBz)
if err2 != nil {
return true, fmt.Errorf("decode new address %X: %w", newBz, err2)
}
rotatedConsAddrs = append(rotatedConsAddrs, types.RotatedConsensusAddresses{OldAddress: oldAddr, NewAddress: newAddr})
return false, nil
})
return &types.GenesisState{
Params: params,
LastTotalPower: totalPower,
@ -343,5 +398,7 @@ func (k Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error)
RotationIndexRecords: rotationIndex,
RotationHistory: conspubKeyRotationHistory,
RotationQueue: rotationQueue,
RotatedConsAddresses: rotatedConsAddrs,
InitialConsAddresses: initConsAddrs,
}, nil
}

View File

@ -47,7 +47,16 @@ message GenesisState {
repeated ConsPubKeyRotationHistory rotation_history = 10
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
// RotationQueue with address and time tuples
repeated RotationQueueRecord rotation_queue = 11 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
// RotatedConsAddresses contains old and new address pairs
repeated RotatedConsensusAddresses rotated_cons_addresses = 12
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
// InitialConsAddresses contains current to initial address pair
repeated RotatedConsensusAddresses initial_cons_addresses = 13
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
// LastValidatorPower required for validator set update logic.
@ -62,7 +71,20 @@ message LastValidatorPower {
int64 power = 2;
}
message RotationIndexRecord { // contains address as bytes and time as int64
// RotatedConsensusAddresses contains the old and new address tuple.
message RotatedConsensusAddresses {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
// OldAddress is the consensus address of the validator before rotating.
string old_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
// NewAddress is the consensus address of the validator after rotating.
string new_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}
// RotationIndexRecord address as bytes and time as int64
message RotationIndexRecord {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
@ -70,6 +92,7 @@ message RotationIndexRecord { // contains address as bytes and time as int64
google.protobuf.Timestamp time = 6 [(gogoproto.stdtime) = true];
}
// RotationQueueRecord address time tuple
message RotationQueueRecord {
ValAddrsOfRotatedConsKeys val_addrs = 1;
google.protobuf.Timestamp time = 2 [(gogoproto.stdtime) = true];

View File

@ -1,118 +0,0 @@
package simulation
import (
"bytes"
"fmt"
"cosmossdk.io/core/codec"
"cosmossdk.io/math"
"cosmossdk.io/x/staking/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/kv"
)
// NewDecodeStore returns a decoder function closure that unmarshals the KVPair's
// Value to the corresponding staking type.
func NewDecodeStore(cdc codec.Codec) func(kvA, kvB kv.Pair) string {
return func(kvA, kvB kv.Pair) string {
switch {
case bytes.Equal(kvA.Key[:1], types.LastTotalPowerKey):
var powerA, powerB math.Int
if err := powerA.Unmarshal(kvA.Value); err != nil {
panic(err)
}
if err := powerB.Unmarshal(kvB.Value); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", powerA, powerB)
case bytes.Equal(kvA.Key[:1], types.ValidatorsKey):
var validatorA, validatorB types.Validator
if err := cdc.Unmarshal(kvA.Value, &validatorA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &validatorB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", validatorA, validatorB)
case bytes.Equal(kvA.Key[:1], types.LastValidatorPowerKey),
bytes.Equal(kvA.Key[:1], types.ValidatorsByConsAddrKey),
bytes.Equal(kvA.Key[:1], types.ValidatorsByPowerIndexKey):
return fmt.Sprintf("%v\n%v", sdk.ValAddress(kvA.Value), sdk.ValAddress(kvB.Value))
case bytes.Equal(kvA.Key[:1], types.DelegationKey):
var delegationA, delegationB types.Delegation
if err := cdc.Unmarshal(kvA.Value, &delegationA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &delegationB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", delegationA, delegationB)
case bytes.Equal(kvA.Key[:1], types.UnbondingDelegationKey),
bytes.Equal(kvA.Key[:1], types.UnbondingDelegationByValIndexKey):
var ubdA, ubdB types.UnbondingDelegation
if err := cdc.Unmarshal(kvA.Value, &ubdA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &ubdB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", ubdA, ubdB)
case bytes.Equal(kvA.Key[:1], types.RedelegationKey),
bytes.Equal(kvA.Key[:1], types.RedelegationByValSrcIndexKey):
var redA, redB types.Redelegation
if err := cdc.Unmarshal(kvA.Value, &redA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &redB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", redA, redB)
case bytes.Equal(kvA.Key[:1], types.ParamsKey):
var paramsA, paramsB types.Params
if err := cdc.Unmarshal(kvA.Value, &paramsA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &paramsB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", paramsA, paramsB)
case bytes.Equal(kvA.Key[:1], types.ValidatorConsPubKeyRotationHistoryKey):
var historyA, historyB types.ConsPubKeyRotationHistory
if err := cdc.Unmarshal(kvA.Value, &historyA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &historyB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", historyA, historyB)
case bytes.Equal(kvA.Key[:1], types.ValidatorConsensusKeyRotationRecordQueueKey):
var historyA, historyB types.ValAddrsOfRotatedConsKeys
if err := cdc.Unmarshal(kvA.Value, &historyA); err != nil {
panic(err)
}
if err := cdc.Unmarshal(kvB.Value, &historyB); err != nil {
panic(err)
}
return fmt.Sprintf("%v\n%v", historyA, historyB)
default:
panic(fmt.Sprintf("invalid staking key prefix %X", kvA.Key[:1]))
}
}
}

View File

@ -1,58 +0,0 @@
package simulation_test
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
"cosmossdk.io/math"
"cosmossdk.io/x/staking/simulation"
"cosmossdk.io/x/staking/types"
codectestutil "github.com/cosmos/cosmos-sdk/codec/testutil"
"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/kv"
"github.com/cosmos/cosmos-sdk/types/module/testutil"
)
var (
delPk1 = ed25519.GenPrivKey().PubKey()
valAddr1 = sdk.ValAddress(delPk1.Address())
)
func TestDecodeStore(t *testing.T) {
cdc := testutil.MakeTestEncodingConfig(codectestutil.CodecOptions{}).Codec
dec := simulation.NewDecodeStore(cdc)
oneIntBz, err := math.OneInt().Marshal()
require.NoError(t, err)
kvPairs := kv.Pairs{
Pairs: []kv.Pair{
{Key: types.LastTotalPowerKey, Value: oneIntBz},
{Key: types.LastValidatorPowerKey, Value: valAddr1.Bytes()},
{Key: []byte{0x99}, Value: []byte{0x99}},
},
}
tests := []struct {
name string
expectedLog string
}{
{"LastTotalPower", fmt.Sprintf("%v\n%v", math.OneInt(), math.OneInt())},
{"LastValidatorPower/ValidatorsByConsAddr/ValidatorsByPowerIndex", fmt.Sprintf("%v\n%v", valAddr1, valAddr1)},
{"other", ""},
}
for i, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
switch i {
case len(tests) - 1:
require.Panics(t, func() { dec(kvPairs.Pairs[i], kvPairs.Pairs[i]) }, tt.name)
default:
require.Equal(t, tt.expectedLog, dec(kvPairs.Pairs[i], kvPairs.Pairs[i]), tt.name)
}
})
}
}

View File

@ -52,7 +52,12 @@ type GenesisState struct {
Exported bool `protobuf:"varint,8,opt,name=exported,proto3" json:"exported,omitempty"`
RotationIndexRecords []RotationIndexRecord `protobuf:"bytes,9,rep,name=rotation_index_records,json=rotationIndexRecords,proto3" json:"rotation_index_records"`
RotationHistory []ConsPubKeyRotationHistory `protobuf:"bytes,10,rep,name=rotation_history,json=rotationHistory,proto3" json:"rotation_history"`
RotationQueue []RotationQueueRecord `protobuf:"bytes,11,rep,name=rotation_queue,json=rotationQueue,proto3" json:"rotation_queue"`
// RotationQueue with address and time tuples
RotationQueue []RotationQueueRecord `protobuf:"bytes,11,rep,name=rotation_queue,json=rotationQueue,proto3" json:"rotation_queue"`
// RotatedConsAddresses contains old and new address pairs
RotatedConsAddresses []RotatedConsensusAddresses `protobuf:"bytes,12,rep,name=rotated_cons_addresses,json=rotatedConsAddresses,proto3" json:"rotated_cons_addresses"`
// InitialConsAddresses contains current to initial address pair
InitialConsAddresses []RotatedConsensusAddresses `protobuf:"bytes,13,rep,name=initial_cons_addresses,json=initialConsAddresses,proto3" json:"initial_cons_addresses"`
}
func (m *GenesisState) Reset() { *m = GenesisState{} }
@ -158,6 +163,20 @@ func (m *GenesisState) GetRotationQueue() []RotationQueueRecord {
return nil
}
func (m *GenesisState) GetRotatedConsAddresses() []RotatedConsensusAddresses {
if m != nil {
return m.RotatedConsAddresses
}
return nil
}
func (m *GenesisState) GetInitialConsAddresses() []RotatedConsensusAddresses {
if m != nil {
return m.InitialConsAddresses
}
return nil
}
// LastValidatorPower required for validator set update logic.
type LastValidatorPower struct {
// address is the address of the validator.
@ -199,6 +218,48 @@ func (m *LastValidatorPower) XXX_DiscardUnknown() {
var xxx_messageInfo_LastValidatorPower proto.InternalMessageInfo
// RotatedConsensusAddresses contains the old and new address tuple.
type RotatedConsensusAddresses struct {
// OldAddress is the consensus address of the validator before rotating.
OldAddress string `protobuf:"bytes,1,opt,name=old_address,json=oldAddress,proto3" json:"old_address,omitempty"`
// NewAddress is the consensus address of the validator after rotating.
NewAddress string `protobuf:"bytes,2,opt,name=new_address,json=newAddress,proto3" json:"new_address,omitempty"`
}
func (m *RotatedConsensusAddresses) Reset() { *m = RotatedConsensusAddresses{} }
func (m *RotatedConsensusAddresses) String() string { return proto.CompactTextString(m) }
func (*RotatedConsensusAddresses) ProtoMessage() {}
func (*RotatedConsensusAddresses) Descriptor() ([]byte, []int) {
return fileDescriptor_9b3dec8894f2831b, []int{2}
}
func (m *RotatedConsensusAddresses) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *RotatedConsensusAddresses) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_RotatedConsensusAddresses.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 *RotatedConsensusAddresses) XXX_Merge(src proto.Message) {
xxx_messageInfo_RotatedConsensusAddresses.Merge(m, src)
}
func (m *RotatedConsensusAddresses) XXX_Size() int {
return m.Size()
}
func (m *RotatedConsensusAddresses) XXX_DiscardUnknown() {
xxx_messageInfo_RotatedConsensusAddresses.DiscardUnknown(m)
}
var xxx_messageInfo_RotatedConsensusAddresses proto.InternalMessageInfo
// RotationIndexRecord address as bytes and time as int64
type RotationIndexRecord struct {
Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Time *time.Time `protobuf:"bytes,6,opt,name=time,proto3,stdtime" json:"time,omitempty"`
@ -208,7 +269,7 @@ func (m *RotationIndexRecord) Reset() { *m = RotationIndexRecord{} }
func (m *RotationIndexRecord) String() string { return proto.CompactTextString(m) }
func (*RotationIndexRecord) ProtoMessage() {}
func (*RotationIndexRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_9b3dec8894f2831b, []int{2}
return fileDescriptor_9b3dec8894f2831b, []int{3}
}
func (m *RotationIndexRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -237,6 +298,7 @@ func (m *RotationIndexRecord) XXX_DiscardUnknown() {
var xxx_messageInfo_RotationIndexRecord proto.InternalMessageInfo
// RotationQueueRecord address time tuple
type RotationQueueRecord struct {
ValAddrs *ValAddrsOfRotatedConsKeys `protobuf:"bytes,1,opt,name=val_addrs,json=valAddrs,proto3" json:"val_addrs,omitempty"`
Time *time.Time `protobuf:"bytes,2,opt,name=time,proto3,stdtime" json:"time,omitempty"`
@ -246,7 +308,7 @@ func (m *RotationQueueRecord) Reset() { *m = RotationQueueRecord{} }
func (m *RotationQueueRecord) String() string { return proto.CompactTextString(m) }
func (*RotationQueueRecord) ProtoMessage() {}
func (*RotationQueueRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_9b3dec8894f2831b, []int{3}
return fileDescriptor_9b3dec8894f2831b, []int{4}
}
func (m *RotationQueueRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -292,6 +354,7 @@ func (m *RotationQueueRecord) GetTime() *time.Time {
func init() {
proto.RegisterType((*GenesisState)(nil), "cosmos.staking.v1beta1.GenesisState")
proto.RegisterType((*LastValidatorPower)(nil), "cosmos.staking.v1beta1.LastValidatorPower")
proto.RegisterType((*RotatedConsensusAddresses)(nil), "cosmos.staking.v1beta1.RotatedConsensusAddresses")
proto.RegisterType((*RotationIndexRecord)(nil), "cosmos.staking.v1beta1.RotationIndexRecord")
proto.RegisterType((*RotationQueueRecord)(nil), "cosmos.staking.v1beta1.RotationQueueRecord")
}
@ -301,52 +364,57 @@ func init() {
}
var fileDescriptor_9b3dec8894f2831b = []byte{
// 705 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0x4f, 0x4f, 0x13, 0x4f,
0x18, 0xc7, 0xbb, 0xfc, 0x29, 0xed, 0x14, 0xf8, 0xf1, 0x1b, 0x0a, 0x59, 0x1b, 0xd3, 0xd6, 0x86,
0x43, 0x83, 0x61, 0xd7, 0xa2, 0xf1, 0xe0, 0x8d, 0x6a, 0xa2, 0x04, 0x22, 0xb8, 0x80, 0x07, 0x12,
0xb3, 0x99, 0xb2, 0xc3, 0xb2, 0x61, 0xbb, 0x53, 0x67, 0xa6, 0x95, 0xbe, 0x03, 0x8f, 0xdc, 0xbd,
0x70, 0xf4, 0xe8, 0x81, 0x17, 0xc1, 0xc5, 0x84, 0x70, 0x32, 0x1e, 0xd0, 0xc0, 0x41, 0x5f, 0x86,
0xd9, 0x99, 0xdd, 0x65, 0x9a, 0xb2, 0x44, 0x2f, 0x4d, 0xa7, 0xcf, 0xf7, 0xfb, 0xf9, 0x3e, 0xcf,
0x76, 0xe7, 0x01, 0x0b, 0x7b, 0x84, 0xb5, 0x09, 0x33, 0x19, 0x47, 0x87, 0x5e, 0xe0, 0x9a, 0xbd,
0x46, 0x0b, 0x73, 0xd4, 0x30, 0x5d, 0x1c, 0x60, 0xe6, 0x31, 0xa3, 0x43, 0x09, 0x27, 0x70, 0x5e,
0xaa, 0x8c, 0x48, 0x65, 0x44, 0xaa, 0x52, 0xd1, 0x25, 0x2e, 0x11, 0x12, 0x33, 0xfc, 0x26, 0xd5,
0xa5, 0x34, 0x66, 0xec, 0x96, 0xaa, 0x7b, 0x52, 0x65, 0x4b, 0x7b, 0x14, 0x20, 0x4b, 0xff, 0xa3,
0xb6, 0x17, 0x10, 0x53, 0x7c, 0x46, 0x3f, 0x55, 0x5c, 0x42, 0x5c, 0x1f, 0x9b, 0xe2, 0xd4, 0xea,
0xee, 0x9b, 0xdc, 0x6b, 0x63, 0xc6, 0x51, 0xbb, 0x23, 0x05, 0xb5, 0xaf, 0x13, 0x60, 0xf2, 0xa5,
0x6c, 0x7a, 0x8b, 0x23, 0x8e, 0xe1, 0x0a, 0xc8, 0x76, 0x10, 0x45, 0x6d, 0xa6, 0x6b, 0x55, 0xad,
0x5e, 0x58, 0x2e, 0x1b, 0xb7, 0x0f, 0x61, 0x6c, 0x0a, 0x55, 0x33, 0x7f, 0x76, 0x59, 0xc9, 0x7c,
0xfe, 0xf5, 0x65, 0x51, 0xb3, 0x22, 0x23, 0xdc, 0x05, 0x33, 0x3e, 0x62, 0xdc, 0xe6, 0x84, 0x23,
0xdf, 0xee, 0x90, 0x0f, 0x98, 0xea, 0x23, 0x55, 0xad, 0x3e, 0xd9, 0x7c, 0x14, 0x8a, 0xbf, 0x5f,
0x56, 0xe6, 0x24, 0x93, 0x39, 0x87, 0x86, 0x47, 0xcc, 0x36, 0xe2, 0x07, 0xc6, 0x6a, 0xc0, 0x2f,
0x4e, 0x97, 0x40, 0x14, 0xb6, 0x1a, 0x70, 0xc9, 0x9c, 0x0e, 0x49, 0xdb, 0x21, 0x68, 0x33, 0xe4,
0x40, 0x0f, 0xcc, 0x09, 0x76, 0x0f, 0xf9, 0x9e, 0x83, 0x38, 0xa1, 0x92, 0xcf, 0xf4, 0xd1, 0xea,
0x68, 0xbd, 0xb0, 0xbc, 0x98, 0xd6, 0xed, 0x3a, 0x62, 0xfc, 0x6d, 0xec, 0x11, 0x28, 0xb5, 0xf3,
0x59, 0x7f, 0xa8, 0xcc, 0xe0, 0x3a, 0x00, 0x49, 0x0a, 0xd3, 0xc7, 0x04, 0xff, 0x41, 0x1a, 0x3f,
0x31, 0xab, 0x58, 0xc5, 0x0f, 0x37, 0x40, 0xc1, 0xc1, 0x3e, 0x76, 0x11, 0xf7, 0x48, 0xc0, 0xf4,
0x71, 0x81, 0xab, 0xa5, 0xe1, 0x5e, 0x24, 0x52, 0x95, 0xa7, 0x12, 0xe0, 0x21, 0x98, 0xeb, 0x06,
0x2d, 0x12, 0x38, 0x5e, 0xe0, 0xda, 0x2a, 0x3a, 0x2b, 0xd0, 0x0f, 0xd3, 0xd0, 0x3b, 0xb1, 0xe9,
0xf6, 0x8c, 0x62, 0x77, 0xb8, 0xce, 0xe0, 0x0e, 0x98, 0xa2, 0x58, 0x0d, 0x99, 0x10, 0x21, 0x0b,
0x69, 0x21, 0x96, 0x22, 0x56, 0xe9, 0x83, 0x14, 0x58, 0x02, 0x39, 0x7c, 0xd4, 0x21, 0x94, 0x63,
0x47, 0xcf, 0x55, 0xb5, 0x7a, 0xce, 0x4a, 0xce, 0xd0, 0x07, 0xf3, 0x94, 0x70, 0x21, 0xb4, 0xbd,
0xc0, 0xc1, 0x47, 0x36, 0xc5, 0x7b, 0x84, 0x3a, 0x4c, 0xcf, 0xdf, 0x3d, 0xa0, 0x15, 0xb9, 0x56,
0x43, 0x93, 0x25, 0x3c, 0x03, 0x03, 0xd2, 0xe1, 0x3a, 0x83, 0x2e, 0x98, 0x49, 0xd2, 0x0e, 0x3c,
0xc6, 0x09, 0xed, 0xeb, 0x40, 0xe4, 0x34, 0xd2, 0x72, 0x9e, 0x93, 0x80, 0x6d, 0x76, 0x5b, 0x6b,
0xb8, 0x1f, 0x27, 0xbe, 0x92, 0x46, 0x35, 0xed, 0x3f, 0x3a, 0x58, 0x83, 0xef, 0xc0, 0x74, 0x12,
0xf4, 0xbe, 0x8b, 0xbb, 0x58, 0x2f, 0xfc, 0xdd, 0x38, 0x6f, 0x42, 0xf1, 0xf0, 0x38, 0x53, 0x54,
0xad, 0xd7, 0x0e, 0x00, 0x1c, 0x7e, 0xd5, 0xe1, 0x32, 0x98, 0x40, 0x8e, 0x43, 0x31, 0x93, 0xb7,
0x3a, 0xdf, 0xd4, 0x2f, 0x4e, 0x97, 0x8a, 0x51, 0xe0, 0x8a, 0xac, 0x6c, 0x71, 0xea, 0x05, 0xae,
0x15, 0x0b, 0x61, 0x11, 0x8c, 0xdf, 0x5c, 0xdd, 0x51, 0x4b, 0x1e, 0x9e, 0xe5, 0x3e, 0x9e, 0x54,
0x32, 0xbf, 0x4f, 0x2a, 0x99, 0x1a, 0x01, 0xb3, 0xb7, 0x3c, 0x69, 0xa8, 0x0f, 0x46, 0x4d, 0xde,
0x00, 0x9f, 0x80, 0xb1, 0x70, 0xfb, 0xe8, 0x59, 0xb1, 0x57, 0x4a, 0x86, 0x5c, 0x4d, 0x46, 0xbc,
0x9a, 0x8c, 0xed, 0x78, 0x35, 0x35, 0xc7, 0x8e, 0x7f, 0x54, 0x34, 0x4b, 0xa8, 0x95, 0xc0, 0x4f,
0xda, 0x4d, 0xa2, 0xf2, 0x30, 0xe0, 0x6b, 0x90, 0xef, 0x21, 0xdf, 0x0e, 0x63, 0xe2, 0xa5, 0xd5,
0xb8, 0xe3, 0x9a, 0x86, 0xe3, 0xb2, 0x8d, 0x7d, 0x41, 0xc2, 0x4e, 0xf8, 0x27, 0xae, 0xe1, 0x3e,
0xb3, 0x72, 0xbd, 0xa8, 0x94, 0xf4, 0x39, 0xf2, 0x2f, 0x7d, 0x36, 0x9f, 0x9e, 0x5d, 0x95, 0xb5,
0xf3, 0xab, 0xb2, 0xf6, 0xf3, 0xaa, 0xac, 0x1d, 0x5f, 0x97, 0x33, 0xe7, 0xd7, 0xe5, 0xcc, 0xb7,
0xeb, 0x72, 0x66, 0xf7, 0xfe, 0xc0, 0xb2, 0x3b, 0x4a, 0xf6, 0x3b, 0xef, 0x77, 0x30, 0x6b, 0x65,
0x05, 0xf7, 0xf1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x22, 0x7b, 0xa0, 0x65, 0x52, 0x06, 0x00,
0x00,
// 788 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x4f, 0x4f, 0xe3, 0x46,
0x18, 0xc6, 0x63, 0xfe, 0x84, 0x64, 0x12, 0x28, 0x1d, 0x02, 0x32, 0x51, 0x95, 0xa4, 0x11, 0x87,
0x88, 0x0a, 0xbb, 0xa1, 0x55, 0xa5, 0xf6, 0x46, 0x5a, 0xa9, 0x45, 0xa0, 0x42, 0x0d, 0xf4, 0x80,
0x54, 0x59, 0x13, 0x3c, 0x18, 0x0b, 0x67, 0x26, 0x9d, 0x99, 0x04, 0xf2, 0x0d, 0x7a, 0xe4, 0xde,
0x0b, 0xc7, 0x1e, 0x7b, 0x60, 0xbf, 0x03, 0x47, 0xc4, 0x69, 0xb5, 0x07, 0x76, 0x05, 0x87, 0xdd,
0x8f, 0xb1, 0xf2, 0x8c, 0x6d, 0x9c, 0x4d, 0xcc, 0xb2, 0xd2, 0x5e, 0x10, 0xf6, 0xfb, 0x3c, 0xbf,
0xe7, 0x7d, 0x47, 0xce, 0xbc, 0x60, 0xe5, 0x88, 0xf2, 0x0e, 0xe5, 0x26, 0x17, 0xe8, 0xd4, 0x23,
0xae, 0xd9, 0x6f, 0xb6, 0xb1, 0x40, 0x4d, 0xd3, 0xc5, 0x04, 0x73, 0x8f, 0x1b, 0x5d, 0x46, 0x05,
0x85, 0x4b, 0x4a, 0x65, 0x84, 0x2a, 0x23, 0x54, 0x95, 0x4b, 0x2e, 0x75, 0xa9, 0x94, 0x98, 0xc1,
0x7f, 0x4a, 0x5d, 0x4e, 0x63, 0x46, 0x6e, 0xa5, 0x5a, 0x56, 0x2a, 0x5b, 0xd9, 0xc3, 0x00, 0x55,
0xfa, 0x12, 0x75, 0x3c, 0x42, 0x4d, 0xf9, 0x37, 0x7c, 0x55, 0x75, 0x29, 0x75, 0x7d, 0x6c, 0xca,
0xa7, 0x76, 0xef, 0xd8, 0x14, 0x5e, 0x07, 0x73, 0x81, 0x3a, 0x5d, 0x25, 0xa8, 0xbf, 0xc8, 0x83,
0xe2, 0xaf, 0xaa, 0xe9, 0x3d, 0x81, 0x04, 0x86, 0x1b, 0x20, 0xdb, 0x45, 0x0c, 0x75, 0xb8, 0xae,
0xd5, 0xb4, 0x46, 0x61, 0xbd, 0x62, 0x8c, 0x1f, 0xc2, 0xd8, 0x95, 0xaa, 0x56, 0xfe, 0xfa, 0xae,
0x9a, 0xf9, 0xef, 0xed, 0xff, 0xab, 0x9a, 0x15, 0x1a, 0xe1, 0x21, 0x98, 0xf7, 0x11, 0x17, 0xb6,
0xa0, 0x02, 0xf9, 0x76, 0x97, 0x9e, 0x61, 0xa6, 0x4f, 0xd4, 0xb4, 0x46, 0xb1, 0xf5, 0x6d, 0x20,
0x7e, 0x75, 0x57, 0x5d, 0x54, 0x4c, 0xee, 0x9c, 0x1a, 0x1e, 0x35, 0x3b, 0x48, 0x9c, 0x18, 0x9b,
0x44, 0xdc, 0x5e, 0xad, 0x81, 0x30, 0x6c, 0x93, 0x08, 0xc5, 0x9c, 0x0b, 0x48, 0xfb, 0x01, 0x68,
0x37, 0xe0, 0x40, 0x0f, 0x2c, 0x4a, 0x76, 0x1f, 0xf9, 0x9e, 0x83, 0x04, 0x65, 0x8a, 0xcf, 0xf5,
0xc9, 0xda, 0x64, 0xa3, 0xb0, 0xbe, 0x9a, 0xd6, 0xed, 0x36, 0xe2, 0xe2, 0xcf, 0xc8, 0x23, 0x51,
0xc9, 0xce, 0x17, 0xfc, 0x91, 0x32, 0x87, 0xdb, 0x00, 0xc4, 0x29, 0x5c, 0x9f, 0x92, 0xfc, 0xaf,
0xd3, 0xf8, 0xb1, 0x39, 0x89, 0x4d, 0xf8, 0xe1, 0x0e, 0x28, 0x38, 0xd8, 0xc7, 0x2e, 0x12, 0x1e,
0x25, 0x5c, 0x9f, 0x96, 0xb8, 0x7a, 0x1a, 0xee, 0x97, 0x58, 0x9a, 0xe4, 0x25, 0x09, 0xf0, 0x14,
0x2c, 0xf6, 0x48, 0x9b, 0x12, 0xc7, 0x23, 0xae, 0x9d, 0x44, 0x67, 0x25, 0xfa, 0x9b, 0x34, 0xf4,
0x41, 0x64, 0x1a, 0x9f, 0x51, 0xea, 0x8d, 0xd6, 0x39, 0x3c, 0x00, 0xb3, 0x0c, 0x27, 0x43, 0x66,
0x64, 0xc8, 0x4a, 0x5a, 0x88, 0x95, 0x10, 0x27, 0xe9, 0xc3, 0x14, 0x58, 0x06, 0x39, 0x7c, 0xde,
0xa5, 0x4c, 0x60, 0x47, 0xcf, 0xd5, 0xb4, 0x46, 0xce, 0x8a, 0x9f, 0xa1, 0x0f, 0x96, 0x18, 0x15,
0x52, 0x68, 0x7b, 0xc4, 0xc1, 0xe7, 0x36, 0xc3, 0x47, 0x94, 0x39, 0x5c, 0xcf, 0x3f, 0x3d, 0xa0,
0x15, 0xba, 0x36, 0x03, 0x93, 0x25, 0x3d, 0x43, 0x03, 0xb2, 0xd1, 0x3a, 0x87, 0x2e, 0x98, 0x8f,
0xd3, 0x4e, 0x3c, 0x2e, 0x28, 0x1b, 0xe8, 0x40, 0xe6, 0x34, 0xd3, 0x72, 0x7e, 0xa6, 0x84, 0xef,
0xf6, 0xda, 0x5b, 0x78, 0x10, 0x25, 0xfe, 0xa6, 0x8c, 0xc9, 0xb4, 0x2f, 0xd8, 0x70, 0x0d, 0xfe,
0x05, 0xe6, 0xe2, 0xa0, 0xbf, 0x7b, 0xb8, 0x87, 0xf5, 0xc2, 0xf3, 0xc6, 0xf9, 0x23, 0x10, 0x8f,
0x8e, 0x33, 0xcb, 0x92, 0x75, 0xc8, 0xc2, 0x53, 0xc3, 0x8e, 0x7d, 0x44, 0x09, 0xb7, 0x91, 0xe3,
0x30, 0xcc, 0x39, 0xe6, 0x7a, 0xf1, 0xe9, 0x69, 0x2c, 0xe5, 0x0a, 0x86, 0xc2, 0x84, 0xf7, 0xf8,
0x46, 0x64, 0x1c, 0x3d, 0x3b, 0xa5, 0x8a, 0x05, 0x41, 0xa6, 0x47, 0x3c, 0xe1, 0x21, 0xff, 0xc3,
0xcc, 0xd9, 0xcf, 0x91, 0x19, 0xb2, 0x87, 0x32, 0xeb, 0x27, 0x00, 0x8e, 0xfe, 0xa4, 0xe1, 0x3a,
0x98, 0x09, 0xc3, 0xe5, 0xed, 0x95, 0x6f, 0xe9, 0xb7, 0x57, 0x6b, 0xa5, 0x30, 0x3d, 0x34, 0xef,
0x09, 0xe6, 0x11, 0xd7, 0x8a, 0x84, 0xb0, 0x04, 0xa6, 0x1f, 0xaf, 0xa8, 0x49, 0x4b, 0x3d, 0xfc,
0x94, 0xfb, 0xe7, 0xb2, 0x9a, 0x79, 0x77, 0x59, 0xcd, 0xd4, 0xff, 0xd5, 0xc0, 0x72, 0x6a, 0xa3,
0xf0, 0x47, 0x50, 0xa0, 0xbe, 0x63, 0x3f, 0x37, 0x15, 0x50, 0xdf, 0x09, 0xdf, 0x04, 0x56, 0x82,
0xcf, 0x62, 0xeb, 0xc4, 0xc7, 0xac, 0x04, 0x9f, 0x85, 0x6f, 0x12, 0xdd, 0x51, 0xb0, 0x30, 0xe6,
0x7b, 0x87, 0xfa, 0xf0, 0x41, 0x14, 0x1f, 0xc7, 0xfd, 0x1e, 0x4c, 0x05, 0x3b, 0x40, 0xcf, 0xca,
0xdb, 0xbd, 0x6c, 0xa8, 0x05, 0x61, 0x44, 0x0b, 0xc2, 0xd8, 0x8f, 0x16, 0x44, 0x6b, 0xea, 0xe2,
0x75, 0x55, 0xb3, 0xa4, 0x7a, 0xf8, 0x38, 0x16, 0xc6, 0x7c, 0x92, 0xf0, 0x77, 0x90, 0xef, 0x23,
0x5f, 0x4e, 0x13, 0xad, 0x8e, 0xe6, 0x13, 0x97, 0x65, 0x30, 0x09, 0xdf, 0x39, 0x4e, 0x1c, 0xec,
0x16, 0x1e, 0x70, 0x2b, 0xd7, 0x0f, 0x4b, 0x71, 0x9f, 0x13, 0x9f, 0xd2, 0x67, 0xeb, 0x87, 0xeb,
0xfb, 0x8a, 0x76, 0x73, 0x5f, 0xd1, 0xde, 0xdc, 0x57, 0xb4, 0x8b, 0x87, 0x4a, 0xe6, 0xe6, 0xa1,
0x92, 0x79, 0xf9, 0x50, 0xc9, 0x1c, 0x7e, 0x35, 0xb4, 0x72, 0xce, 0xe3, 0x2d, 0x2b, 0x06, 0x5d,
0xcc, 0xdb, 0x59, 0xc9, 0xfd, 0xee, 0x7d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x50, 0x68, 0x15, 0xf4,
0xd8, 0x07, 0x00, 0x00,
}
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
@ -369,6 +437,34 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.InitialConsAddresses) > 0 {
for iNdEx := len(m.InitialConsAddresses) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.InitialConsAddresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenesis(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x6a
}
}
if len(m.RotatedConsAddresses) > 0 {
for iNdEx := len(m.RotatedConsAddresses) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.RotatedConsAddresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenesis(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x62
}
}
if len(m.RotationQueue) > 0 {
for iNdEx := len(m.RotationQueue) - 1; iNdEx >= 0; iNdEx-- {
{
@ -549,6 +645,43 @@ func (m *LastValidatorPower) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *RotatedConsensusAddresses) 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 *RotatedConsensusAddresses) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *RotatedConsensusAddresses) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.NewAddress) > 0 {
i -= len(m.NewAddress)
copy(dAtA[i:], m.NewAddress)
i = encodeVarintGenesis(dAtA, i, uint64(len(m.NewAddress)))
i--
dAtA[i] = 0x12
}
if len(m.OldAddress) > 0 {
i -= len(m.OldAddress)
copy(dAtA[i:], m.OldAddress)
i = encodeVarintGenesis(dAtA, i, uint64(len(m.OldAddress)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *RotationIndexRecord) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -706,6 +839,18 @@ func (m *GenesisState) Size() (n int) {
n += 1 + l + sovGenesis(uint64(l))
}
}
if len(m.RotatedConsAddresses) > 0 {
for _, e := range m.RotatedConsAddresses {
l = e.Size()
n += 1 + l + sovGenesis(uint64(l))
}
}
if len(m.InitialConsAddresses) > 0 {
for _, e := range m.InitialConsAddresses {
l = e.Size()
n += 1 + l + sovGenesis(uint64(l))
}
}
return n
}
@ -725,6 +870,23 @@ func (m *LastValidatorPower) Size() (n int) {
return n
}
func (m *RotatedConsensusAddresses) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.OldAddress)
if l > 0 {
n += 1 + l + sovGenesis(uint64(l))
}
l = len(m.NewAddress)
if l > 0 {
n += 1 + l + sovGenesis(uint64(l))
}
return n
}
func (m *RotationIndexRecord) Size() (n int) {
if m == nil {
return 0
@ -1152,6 +1314,74 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 12:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RotatedConsAddresses", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.RotatedConsAddresses = append(m.RotatedConsAddresses, RotatedConsensusAddresses{})
if err := m.RotatedConsAddresses[len(m.RotatedConsAddresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 13:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field InitialConsAddresses", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.InitialConsAddresses = append(m.InitialConsAddresses, RotatedConsensusAddresses{})
if err := m.InitialConsAddresses[len(m.InitialConsAddresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenesis(dAtA[iNdEx:])
@ -1274,6 +1504,120 @@ func (m *LastValidatorPower) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *RotatedConsensusAddresses) 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 ErrIntOverflowGenesis
}
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: RotatedConsensusAddresses: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: RotatedConsensusAddresses: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field OldAddress", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
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 ErrInvalidLengthGenesis
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.OldAddress = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field NewAddress", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
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 ErrInvalidLengthGenesis
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.NewAddress = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenesis(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthGenesis
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *RotationIndexRecord) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0