diff --git a/.github/workflows/proto-registry.yml b/.github/workflows/proto-registry.yml index 5500603f14ab..aa7d9a1505d9 100644 --- a/.github/workflows/proto-registry.yml +++ b/.github/workflows/proto-registry.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.27.0 + - uses: bufbuild/buf-setup-action@v1.27.1 - uses: bufbuild/buf-push-action@v1 with: input: "proto" diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml index bd09a21cf5f1..4de0ee1e18d1 100644 --- a/.github/workflows/proto.yml +++ b/.github/workflows/proto.yml @@ -15,7 +15,7 @@ jobs: timeout-minutes: 5 steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.27.0 + - uses: bufbuild/buf-setup-action@v1.27.1 - uses: bufbuild/buf-lint-action@v1 with: input: "proto" @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.27.0 + - uses: bufbuild/buf-setup-action@v1.27.1 - uses: bufbuild/buf-breaking-action@v1 with: input: "proto" diff --git a/CHANGELOG.md b/CHANGELOG.md index 5969a8dc9684..103b5c238fff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features +* (server) [#18110](https://github.com/cosmos/cosmos-sdk/pull/18110) Start gRPC & API server in standalone mode +* (client) [#18101](https://github.com/cosmos/cosmos-sdk/pull/18101) Add a `keyring-default-keyname` in `client.toml` for specifying a default key name, and skip the need to use the `--from` flag when signing transactions. * (tests) [#17868](https://github.com/cosmos/cosmos-sdk/pull/17868) Added helper method `SubmitTestTx` in testutil to broadcast test txns to test e2e tests. * (x/protocolpool) [#17657](https://github.com/cosmos/cosmos-sdk/pull/17657) Create a new `x/protocolpool` module that is responsible for handling community pool funds. This module is split out into a new module from x/distribution. * (baseapp) [#16581](https://github.com/cosmos/cosmos-sdk/pull/16581) Implement Optimistic Execution as an experimental feature (not enabled by default). @@ -52,6 +54,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements +* (x/staking/keeper) [#]18049(https://github.com/cosmos/cosmos-sdk/pull/18049) return early if Slash encounters zero tokens to burn. * (x/staking/keeper) [#18035](https://github.com/cosmos/cosmos-sdk/pull/18035) Hoisted out of the redelegation loop, the non-changing validator and delegator addresses parsing. * (keyring) [#17913](https://github.com/cosmos/cosmos-sdk/pull/17913) Add `NewAutoCLIKeyring` for creating an AutoCLI keyring from a SDK keyring. * (codec) [#17913](https://github.com/cosmos/cosmos-sdk/pull/17913) `codectypes.NewAnyWithValue` supports proto v2 messages. @@ -165,6 +168,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/auth) [#17985](https://github.com/cosmos/cosmos-sdk/pull/17985) Remove `StdTxConfig` * Remove depreacted `MakeTestingEncodingParams` from `simapp/params` * (x/consensus) [#18041](https://github.com/cosmos/cosmos-sdk/pull/18041) `ToProtoConsensusParams()` returns an error +* (x/slashing) [#18115](https://github.com/cosmos/cosmos-sdk/pull/18115) `NewValidatorSigningInfo` takes strings instead of `sdk.AccAddress` ### CLI Breaking Changes diff --git a/api/cosmos/feegrant/v1beta1/tx.pulsar.go b/api/cosmos/feegrant/v1beta1/tx.pulsar.go index 07dbc09fafe6..70056e9cbde3 100644 --- a/api/cosmos/feegrant/v1beta1/tx.pulsar.go +++ b/api/cosmos/feegrant/v1beta1/tx.pulsar.go @@ -1775,6 +1775,782 @@ func (x *fastReflection_MsgRevokeAllowanceResponse) ProtoMethods() *protoiface.M } } +var ( + md_MsgPruneAllowances protoreflect.MessageDescriptor + fd_MsgPruneAllowances_pruner protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_feegrant_v1beta1_tx_proto_init() + md_MsgPruneAllowances = File_cosmos_feegrant_v1beta1_tx_proto.Messages().ByName("MsgPruneAllowances") + fd_MsgPruneAllowances_pruner = md_MsgPruneAllowances.Fields().ByName("pruner") +} + +var _ protoreflect.Message = (*fastReflection_MsgPruneAllowances)(nil) + +type fastReflection_MsgPruneAllowances MsgPruneAllowances + +func (x *MsgPruneAllowances) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgPruneAllowances)(x) +} + +func (x *MsgPruneAllowances) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_feegrant_v1beta1_tx_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgPruneAllowances_messageType fastReflection_MsgPruneAllowances_messageType +var _ protoreflect.MessageType = fastReflection_MsgPruneAllowances_messageType{} + +type fastReflection_MsgPruneAllowances_messageType struct{} + +func (x fastReflection_MsgPruneAllowances_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgPruneAllowances)(nil) +} +func (x fastReflection_MsgPruneAllowances_messageType) New() protoreflect.Message { + return new(fastReflection_MsgPruneAllowances) +} +func (x fastReflection_MsgPruneAllowances_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgPruneAllowances +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgPruneAllowances) Descriptor() protoreflect.MessageDescriptor { + return md_MsgPruneAllowances +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgPruneAllowances) Type() protoreflect.MessageType { + return _fastReflection_MsgPruneAllowances_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgPruneAllowances) New() protoreflect.Message { + return new(fastReflection_MsgPruneAllowances) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgPruneAllowances) Interface() protoreflect.ProtoMessage { + return (*MsgPruneAllowances)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgPruneAllowances) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Pruner != "" { + value := protoreflect.ValueOfString(x.Pruner) + if !f(fd_MsgPruneAllowances_pruner, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgPruneAllowances) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.feegrant.v1beta1.MsgPruneAllowances.pruner": + return x.Pruner != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowances")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowances does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowances) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.feegrant.v1beta1.MsgPruneAllowances.pruner": + x.Pruner = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowances")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowances does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgPruneAllowances) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.feegrant.v1beta1.MsgPruneAllowances.pruner": + value := x.Pruner + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowances")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowances does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowances) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.feegrant.v1beta1.MsgPruneAllowances.pruner": + x.Pruner = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowances")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowances does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowances) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.feegrant.v1beta1.MsgPruneAllowances.pruner": + panic(fmt.Errorf("field pruner of message cosmos.feegrant.v1beta1.MsgPruneAllowances is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowances")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowances does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgPruneAllowances) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.feegrant.v1beta1.MsgPruneAllowances.pruner": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowances")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowances does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgPruneAllowances) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.feegrant.v1beta1.MsgPruneAllowances", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgPruneAllowances) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowances) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgPruneAllowances) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgPruneAllowances) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgPruneAllowances) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Pruner) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgPruneAllowances) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Pruner) > 0 { + i -= len(x.Pruner) + copy(dAtA[i:], x.Pruner) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Pruner))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgPruneAllowances) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgPruneAllowances: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgPruneAllowances: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pruner", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Pruner = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgPruneAllowancesResponse protoreflect.MessageDescriptor +) + +func init() { + file_cosmos_feegrant_v1beta1_tx_proto_init() + md_MsgPruneAllowancesResponse = File_cosmos_feegrant_v1beta1_tx_proto.Messages().ByName("MsgPruneAllowancesResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgPruneAllowancesResponse)(nil) + +type fastReflection_MsgPruneAllowancesResponse MsgPruneAllowancesResponse + +func (x *MsgPruneAllowancesResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgPruneAllowancesResponse)(x) +} + +func (x *MsgPruneAllowancesResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_feegrant_v1beta1_tx_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgPruneAllowancesResponse_messageType fastReflection_MsgPruneAllowancesResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgPruneAllowancesResponse_messageType{} + +type fastReflection_MsgPruneAllowancesResponse_messageType struct{} + +func (x fastReflection_MsgPruneAllowancesResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgPruneAllowancesResponse)(nil) +} +func (x fastReflection_MsgPruneAllowancesResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgPruneAllowancesResponse) +} +func (x fastReflection_MsgPruneAllowancesResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgPruneAllowancesResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgPruneAllowancesResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgPruneAllowancesResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgPruneAllowancesResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgPruneAllowancesResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgPruneAllowancesResponse) New() protoreflect.Message { + return new(fastReflection_MsgPruneAllowancesResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgPruneAllowancesResponse) Interface() protoreflect.ProtoMessage { + return (*MsgPruneAllowancesResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgPruneAllowancesResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgPruneAllowancesResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowancesResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgPruneAllowancesResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowancesResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowancesResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgPruneAllowancesResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse")) + } + panic(fmt.Errorf("message cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgPruneAllowancesResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgPruneAllowancesResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgPruneAllowancesResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgPruneAllowancesResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgPruneAllowancesResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgPruneAllowancesResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgPruneAllowancesResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgPruneAllowancesResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgPruneAllowancesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgPruneAllowancesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Since: cosmos-sdk 0.43 // Code generated by protoc-gen-go. DO NOT EDIT. @@ -1946,6 +2722,74 @@ func (*MsgRevokeAllowanceResponse) Descriptor() ([]byte, []int) { return file_cosmos_feegrant_v1beta1_tx_proto_rawDescGZIP(), []int{3} } +// MsgPruneAllowances prunes expired fee allowances. +// +// Since cosmos-sdk 0.50 +type MsgPruneAllowances struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // pruner is the address of the user pruning expired allowances. + Pruner string `protobuf:"bytes,1,opt,name=pruner,proto3" json:"pruner,omitempty"` +} + +func (x *MsgPruneAllowances) Reset() { + *x = MsgPruneAllowances{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_feegrant_v1beta1_tx_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgPruneAllowances) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgPruneAllowances) ProtoMessage() {} + +// Deprecated: Use MsgPruneAllowances.ProtoReflect.Descriptor instead. +func (*MsgPruneAllowances) Descriptor() ([]byte, []int) { + return file_cosmos_feegrant_v1beta1_tx_proto_rawDescGZIP(), []int{4} +} + +func (x *MsgPruneAllowances) GetPruner() string { + if x != nil { + return x.Pruner + } + return "" +} + +// MsgPruneAllowancesResponse defines the Msg/PruneAllowancesResponse response type. +// +// Since cosmos-sdk 0.50 +type MsgPruneAllowancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgPruneAllowancesResponse) Reset() { + *x = MsgPruneAllowancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_feegrant_v1beta1_tx_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgPruneAllowancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgPruneAllowancesResponse) ProtoMessage() {} + +// Deprecated: Use MsgPruneAllowancesResponse.ProtoReflect.Descriptor instead. +func (*MsgPruneAllowancesResponse) Descriptor() ([]byte, []int) { + return file_cosmos_feegrant_v1beta1_tx_proto_rawDescGZIP(), []int{5} +} + var File_cosmos_feegrant_v1beta1_tx_proto protoreflect.FileDescriptor var file_cosmos_feegrant_v1beta1_tx_proto_rawDesc = []byte{ @@ -1990,37 +2834,51 @@ var file_cosmos_feegrant_v1beta1_tx_proto_rawDesc = []byte{ 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x01, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x70, 0x0a, 0x0e, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2a, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, - 0x0f, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x72, 0x75, + 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x50, + 0x72, 0x75, 0x6e, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe8, 0x02, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x70, + 0x0a, 0x0e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x32, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x73, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x33, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xde, 0x01, 0x0a, 0x1b, 0x63, 0x6f, - 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, - 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, - 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, - 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x0f, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, + 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, + 0x01, 0x42, 0xde, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xe2, 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2035,22 +2893,26 @@ func file_cosmos_feegrant_v1beta1_tx_proto_rawDescGZIP() []byte { return file_cosmos_feegrant_v1beta1_tx_proto_rawDescData } -var file_cosmos_feegrant_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_cosmos_feegrant_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_cosmos_feegrant_v1beta1_tx_proto_goTypes = []interface{}{ (*MsgGrantAllowance)(nil), // 0: cosmos.feegrant.v1beta1.MsgGrantAllowance (*MsgGrantAllowanceResponse)(nil), // 1: cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse (*MsgRevokeAllowance)(nil), // 2: cosmos.feegrant.v1beta1.MsgRevokeAllowance (*MsgRevokeAllowanceResponse)(nil), // 3: cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse - (*anypb.Any)(nil), // 4: google.protobuf.Any + (*MsgPruneAllowances)(nil), // 4: cosmos.feegrant.v1beta1.MsgPruneAllowances + (*MsgPruneAllowancesResponse)(nil), // 5: cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse + (*anypb.Any)(nil), // 6: google.protobuf.Any } var file_cosmos_feegrant_v1beta1_tx_proto_depIdxs = []int32{ - 4, // 0: cosmos.feegrant.v1beta1.MsgGrantAllowance.allowance:type_name -> google.protobuf.Any + 6, // 0: cosmos.feegrant.v1beta1.MsgGrantAllowance.allowance:type_name -> google.protobuf.Any 0, // 1: cosmos.feegrant.v1beta1.Msg.GrantAllowance:input_type -> cosmos.feegrant.v1beta1.MsgGrantAllowance 2, // 2: cosmos.feegrant.v1beta1.Msg.RevokeAllowance:input_type -> cosmos.feegrant.v1beta1.MsgRevokeAllowance - 1, // 3: cosmos.feegrant.v1beta1.Msg.GrantAllowance:output_type -> cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse - 3, // 4: cosmos.feegrant.v1beta1.Msg.RevokeAllowance:output_type -> cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse - 3, // [3:5] is the sub-list for method output_type - 1, // [1:3] is the sub-list for method input_type + 4, // 3: cosmos.feegrant.v1beta1.Msg.PruneAllowances:input_type -> cosmos.feegrant.v1beta1.MsgPruneAllowances + 1, // 4: cosmos.feegrant.v1beta1.Msg.GrantAllowance:output_type -> cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse + 3, // 5: cosmos.feegrant.v1beta1.Msg.RevokeAllowance:output_type -> cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse + 5, // 6: cosmos.feegrant.v1beta1.Msg.PruneAllowances:output_type -> cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse + 4, // [4:7] is the sub-list for method output_type + 1, // [1:4] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name @@ -2110,6 +2972,30 @@ func file_cosmos_feegrant_v1beta1_tx_proto_init() { return nil } } + file_cosmos_feegrant_v1beta1_tx_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgPruneAllowances); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_feegrant_v1beta1_tx_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgPruneAllowancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2117,7 +3003,7 @@ func file_cosmos_feegrant_v1beta1_tx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_feegrant_v1beta1_tx_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cosmos/feegrant/v1beta1/tx_grpc.pb.go b/api/cosmos/feegrant/v1beta1/tx_grpc.pb.go index 47ddb7a8329b..76637c5e0777 100644 --- a/api/cosmos/feegrant/v1beta1/tx_grpc.pb.go +++ b/api/cosmos/feegrant/v1beta1/tx_grpc.pb.go @@ -23,6 +23,7 @@ const _ = grpc.SupportPackageIsVersion7 const ( Msg_GrantAllowance_FullMethodName = "/cosmos.feegrant.v1beta1.Msg/GrantAllowance" Msg_RevokeAllowance_FullMethodName = "/cosmos.feegrant.v1beta1.Msg/RevokeAllowance" + Msg_PruneAllowances_FullMethodName = "/cosmos.feegrant.v1beta1.Msg/PruneAllowances" ) // MsgClient is the client API for Msg service. @@ -35,6 +36,10 @@ type MsgClient interface { // RevokeAllowance revokes any fee allowance of granter's account that // has been granted to the grantee. RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, opts ...grpc.CallOption) (*MsgRevokeAllowanceResponse, error) + // PruneAllowances prunes expired fee allowances, currently up to 75 at a time. + // + // Since cosmos-sdk 0.50 + PruneAllowances(ctx context.Context, in *MsgPruneAllowances, opts ...grpc.CallOption) (*MsgPruneAllowancesResponse, error) } type msgClient struct { @@ -63,6 +68,15 @@ func (c *msgClient) RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, return out, nil } +func (c *msgClient) PruneAllowances(ctx context.Context, in *MsgPruneAllowances, opts ...grpc.CallOption) (*MsgPruneAllowancesResponse, error) { + out := new(MsgPruneAllowancesResponse) + err := c.cc.Invoke(ctx, Msg_PruneAllowances_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. // All implementations must embed UnimplementedMsgServer // for forward compatibility @@ -73,6 +87,10 @@ type MsgServer interface { // RevokeAllowance revokes any fee allowance of granter's account that // has been granted to the grantee. RevokeAllowance(context.Context, *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error) + // PruneAllowances prunes expired fee allowances, currently up to 75 at a time. + // + // Since cosmos-sdk 0.50 + PruneAllowances(context.Context, *MsgPruneAllowances) (*MsgPruneAllowancesResponse, error) mustEmbedUnimplementedMsgServer() } @@ -86,6 +104,9 @@ func (UnimplementedMsgServer) GrantAllowance(context.Context, *MsgGrantAllowance func (UnimplementedMsgServer) RevokeAllowance(context.Context, *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RevokeAllowance not implemented") } +func (UnimplementedMsgServer) PruneAllowances(context.Context, *MsgPruneAllowances) (*MsgPruneAllowancesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PruneAllowances not implemented") +} func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} // UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. @@ -135,6 +156,24 @@ func _Msg_RevokeAllowance_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Msg_PruneAllowances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgPruneAllowances) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).PruneAllowances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_PruneAllowances_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).PruneAllowances(ctx, req.(*MsgPruneAllowances)) + } + return interceptor(ctx, in, info, handler) +} + // Msg_ServiceDesc is the grpc.ServiceDesc for Msg service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -150,6 +189,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "RevokeAllowance", Handler: _Msg_RevokeAllowance_Handler, }, + { + MethodName: "PruneAllowances", + Handler: _Msg_PruneAllowances_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cosmos/feegrant/v1beta1/tx.proto", diff --git a/api/cosmos/staking/v1beta1/staking.pulsar.go b/api/cosmos/staking/v1beta1/staking.pulsar.go index 59869167b259..ddcc162aacbf 100644 --- a/api/cosmos/staking/v1beta1/staking.pulsar.go +++ b/api/cosmos/staking/v1beta1/staking.pulsar.go @@ -13246,6 +13246,1191 @@ func (x *fastReflection_ValidatorUpdates) ProtoMethods() *protoiface.Methods { } } +var ( + md_ConsPubKeyRotationHistory protoreflect.MessageDescriptor + fd_ConsPubKeyRotationHistory_operator_address protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_old_cons_pubkey protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_new_cons_pubkey protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_height protoreflect.FieldDescriptor + fd_ConsPubKeyRotationHistory_fee protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_ConsPubKeyRotationHistory = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("ConsPubKeyRotationHistory") + fd_ConsPubKeyRotationHistory_operator_address = md_ConsPubKeyRotationHistory.Fields().ByName("operator_address") + fd_ConsPubKeyRotationHistory_old_cons_pubkey = md_ConsPubKeyRotationHistory.Fields().ByName("old_cons_pubkey") + fd_ConsPubKeyRotationHistory_new_cons_pubkey = md_ConsPubKeyRotationHistory.Fields().ByName("new_cons_pubkey") + fd_ConsPubKeyRotationHistory_height = md_ConsPubKeyRotationHistory.Fields().ByName("height") + fd_ConsPubKeyRotationHistory_fee = md_ConsPubKeyRotationHistory.Fields().ByName("fee") +} + +var _ protoreflect.Message = (*fastReflection_ConsPubKeyRotationHistory)(nil) + +type fastReflection_ConsPubKeyRotationHistory ConsPubKeyRotationHistory + +func (x *ConsPubKeyRotationHistory) ProtoReflect() protoreflect.Message { + return (*fastReflection_ConsPubKeyRotationHistory)(x) +} + +func (x *ConsPubKeyRotationHistory) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ConsPubKeyRotationHistory_messageType fastReflection_ConsPubKeyRotationHistory_messageType +var _ protoreflect.MessageType = fastReflection_ConsPubKeyRotationHistory_messageType{} + +type fastReflection_ConsPubKeyRotationHistory_messageType struct{} + +func (x fastReflection_ConsPubKeyRotationHistory_messageType) Zero() protoreflect.Message { + return (*fastReflection_ConsPubKeyRotationHistory)(nil) +} +func (x fastReflection_ConsPubKeyRotationHistory_messageType) New() protoreflect.Message { + return new(fastReflection_ConsPubKeyRotationHistory) +} +func (x fastReflection_ConsPubKeyRotationHistory_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ConsPubKeyRotationHistory +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ConsPubKeyRotationHistory) Descriptor() protoreflect.MessageDescriptor { + return md_ConsPubKeyRotationHistory +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_ConsPubKeyRotationHistory) Type() protoreflect.MessageType { + return _fastReflection_ConsPubKeyRotationHistory_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ConsPubKeyRotationHistory) New() protoreflect.Message { + return new(fastReflection_ConsPubKeyRotationHistory) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ConsPubKeyRotationHistory) Interface() protoreflect.ProtoMessage { + return (*ConsPubKeyRotationHistory)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_ConsPubKeyRotationHistory) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.OperatorAddress != "" { + value := protoreflect.ValueOfString(x.OperatorAddress) + if !f(fd_ConsPubKeyRotationHistory_operator_address, value) { + return + } + } + if x.OldConsPubkey != nil { + value := protoreflect.ValueOfMessage(x.OldConsPubkey.ProtoReflect()) + if !f(fd_ConsPubKeyRotationHistory_old_cons_pubkey, value) { + return + } + } + if x.NewConsPubkey != nil { + value := protoreflect.ValueOfMessage(x.NewConsPubkey.ProtoReflect()) + if !f(fd_ConsPubKeyRotationHistory_new_cons_pubkey, value) { + return + } + } + if x.Height != uint64(0) { + value := protoreflect.ValueOfUint64(x.Height) + if !f(fd_ConsPubKeyRotationHistory_height, value) { + return + } + } + if x.Fee != nil { + value := protoreflect.ValueOfMessage(x.Fee.ProtoReflect()) + if !f(fd_ConsPubKeyRotationHistory_fee, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_ConsPubKeyRotationHistory) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + return x.OperatorAddress != "" + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + return x.OldConsPubkey != nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + return x.NewConsPubkey != nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + return x.Height != uint64(0) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + return x.Fee != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ConsPubKeyRotationHistory) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + x.OperatorAddress = "" + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + x.OldConsPubkey = nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + x.NewConsPubkey = nil + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + x.Height = uint64(0) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + x.Fee = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_ConsPubKeyRotationHistory) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + value := x.OperatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + value := x.OldConsPubkey + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + value := x.NewConsPubkey + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + value := x.Height + return protoreflect.ValueOfUint64(value) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + value := x.Fee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ConsPubKeyRotationHistory) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + x.OperatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + x.OldConsPubkey = value.Message().Interface().(*anypb.Any) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + x.NewConsPubkey = value.Message().Interface().(*anypb.Any) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + x.Height = value.Uint() + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + x.Fee = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ConsPubKeyRotationHistory) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + if x.OldConsPubkey == nil { + x.OldConsPubkey = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.OldConsPubkey.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + if x.NewConsPubkey == nil { + x.NewConsPubkey = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.NewConsPubkey.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + if x.Fee == nil { + x.Fee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Fee.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + panic(fmt.Errorf("field operator_address of message cosmos.staking.v1beta1.ConsPubKeyRotationHistory is not mutable")) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + panic(fmt.Errorf("field height of message cosmos.staking.v1beta1.ConsPubKeyRotationHistory is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_ConsPubKeyRotationHistory) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.operator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.height": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ConsPubKeyRotationHistory")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ConsPubKeyRotationHistory does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_ConsPubKeyRotationHistory) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.ConsPubKeyRotationHistory", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_ConsPubKeyRotationHistory) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ConsPubKeyRotationHistory) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_ConsPubKeyRotationHistory) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_ConsPubKeyRotationHistory) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ConsPubKeyRotationHistory) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.OperatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.OldConsPubkey != nil { + l = options.Size(x.OldConsPubkey) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NewConsPubkey != nil { + l = options.Size(x.NewConsPubkey) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Height != 0 { + n += 1 + runtime.Sov(uint64(x.Height)) + } + if x.Fee != nil { + l = options.Size(x.Fee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*ConsPubKeyRotationHistory) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Fee != nil { + encoded, err := options.Marshal(x.Fee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x2a + } + if x.Height != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Height)) + i-- + dAtA[i] = 0x20 + } + if x.NewConsPubkey != nil { + encoded, err := options.Marshal(x.NewConsPubkey) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if x.OldConsPubkey != nil { + encoded, err := options.Marshal(x.OldConsPubkey) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.OperatorAddress) > 0 { + i -= len(x.OperatorAddress) + copy(dAtA[i:], x.OperatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.OperatorAddress))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*ConsPubKeyRotationHistory) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ConsPubKeyRotationHistory: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ConsPubKeyRotationHistory: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OperatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.OperatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field OldConsPubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.OldConsPubkey == nil { + x.OldConsPubkey = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.OldConsPubkey); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewConsPubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.NewConsPubkey == nil { + x.NewConsPubkey = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NewConsPubkey); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + x.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Fee == nil { + x.Fee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Fee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_ValAddrsOfRotatedConsKeys_1_list)(nil) + +type _ValAddrsOfRotatedConsKeys_1_list struct { + list *[]string +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message ValAddrsOfRotatedConsKeys at list field Addresses as it is not of Message kind")) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_ValAddrsOfRotatedConsKeys_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_ValAddrsOfRotatedConsKeys protoreflect.MessageDescriptor + fd_ValAddrsOfRotatedConsKeys_addresses protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_ValAddrsOfRotatedConsKeys = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("ValAddrsOfRotatedConsKeys") + fd_ValAddrsOfRotatedConsKeys_addresses = md_ValAddrsOfRotatedConsKeys.Fields().ByName("addresses") +} + +var _ protoreflect.Message = (*fastReflection_ValAddrsOfRotatedConsKeys)(nil) + +type fastReflection_ValAddrsOfRotatedConsKeys ValAddrsOfRotatedConsKeys + +func (x *ValAddrsOfRotatedConsKeys) ProtoReflect() protoreflect.Message { + return (*fastReflection_ValAddrsOfRotatedConsKeys)(x) +} + +func (x *ValAddrsOfRotatedConsKeys) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ValAddrsOfRotatedConsKeys_messageType fastReflection_ValAddrsOfRotatedConsKeys_messageType +var _ protoreflect.MessageType = fastReflection_ValAddrsOfRotatedConsKeys_messageType{} + +type fastReflection_ValAddrsOfRotatedConsKeys_messageType struct{} + +func (x fastReflection_ValAddrsOfRotatedConsKeys_messageType) Zero() protoreflect.Message { + return (*fastReflection_ValAddrsOfRotatedConsKeys)(nil) +} +func (x fastReflection_ValAddrsOfRotatedConsKeys_messageType) New() protoreflect.Message { + return new(fastReflection_ValAddrsOfRotatedConsKeys) +} +func (x fastReflection_ValAddrsOfRotatedConsKeys_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ValAddrsOfRotatedConsKeys +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Descriptor() protoreflect.MessageDescriptor { + return md_ValAddrsOfRotatedConsKeys +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Type() protoreflect.MessageType { + return _fastReflection_ValAddrsOfRotatedConsKeys_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) New() protoreflect.Message { + return new(fastReflection_ValAddrsOfRotatedConsKeys) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Interface() protoreflect.ProtoMessage { + return (*ValAddrsOfRotatedConsKeys)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Addresses) != 0 { + value := protoreflect.ValueOfList(&_ValAddrsOfRotatedConsKeys_1_list{list: &x.Addresses}) + if !f(fd_ValAddrsOfRotatedConsKeys_addresses, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + return len(x.Addresses) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + x.Addresses = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + if len(x.Addresses) == 0 { + return protoreflect.ValueOfList(&_ValAddrsOfRotatedConsKeys_1_list{}) + } + listValue := &_ValAddrsOfRotatedConsKeys_1_list{list: &x.Addresses} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + lv := value.List() + clv := lv.(*_ValAddrsOfRotatedConsKeys_1_list) + x.Addresses = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + if x.Addresses == nil { + x.Addresses = []string{} + } + value := &_ValAddrsOfRotatedConsKeys_1_list{list: &x.Addresses} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys.addresses": + list := []string{} + return protoreflect.ValueOfList(&_ValAddrsOfRotatedConsKeys_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_ValAddrsOfRotatedConsKeys) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ValAddrsOfRotatedConsKeys) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Addresses) > 0 { + for _, s := range x.Addresses { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*ValAddrsOfRotatedConsKeys) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Addresses) > 0 { + for iNdEx := len(x.Addresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.Addresses[iNdEx]) + copy(dAtA[i:], x.Addresses[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Addresses[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*ValAddrsOfRotatedConsKeys) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ValAddrsOfRotatedConsKeys: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ValAddrsOfRotatedConsKeys: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Addresses = append(x.Addresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -14654,6 +15839,116 @@ func (x *ValidatorUpdates) GetUpdates() []*abci.ValidatorUpdate { return nil } +// ConsPubKeyRotationHistory contains a validator's consensus public key rotation history. +type ConsPubKeyRotationHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // operator_address defines the address of the validator's operator; bech encoded in JSON. + OperatorAddress string `protobuf:"bytes,1,opt,name=operator_address,json=operatorAddress,proto3" json:"operator_address,omitempty"` + // old_cons_pubkey is the old consensus public key of the validator, as a Protobuf Any. + OldConsPubkey *anypb.Any `protobuf:"bytes,2,opt,name=old_cons_pubkey,json=oldConsPubkey,proto3" json:"old_cons_pubkey,omitempty"` + // new_cons_pubkey is the new consensus public key of the validator, as a Protobuf Any. + NewConsPubkey *anypb.Any `protobuf:"bytes,3,opt,name=new_cons_pubkey,json=newConsPubkey,proto3" json:"new_cons_pubkey,omitempty"` + // height defines the block height at which the rotation event occured. + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + // fee holds the amount of fee deduced for the rotation. + Fee *v1beta1.Coin `protobuf:"bytes,5,opt,name=fee,proto3" json:"fee,omitempty"` +} + +func (x *ConsPubKeyRotationHistory) Reset() { + *x = ConsPubKeyRotationHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConsPubKeyRotationHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConsPubKeyRotationHistory) ProtoMessage() {} + +// Deprecated: Use ConsPubKeyRotationHistory.ProtoReflect.Descriptor instead. +func (*ConsPubKeyRotationHistory) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{22} +} + +func (x *ConsPubKeyRotationHistory) GetOperatorAddress() string { + if x != nil { + return x.OperatorAddress + } + return "" +} + +func (x *ConsPubKeyRotationHistory) GetOldConsPubkey() *anypb.Any { + if x != nil { + return x.OldConsPubkey + } + return nil +} + +func (x *ConsPubKeyRotationHistory) GetNewConsPubkey() *anypb.Any { + if x != nil { + return x.NewConsPubkey + } + return nil +} + +func (x *ConsPubKeyRotationHistory) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *ConsPubKeyRotationHistory) GetFee() *v1beta1.Coin { + if x != nil { + return x.Fee + } + return nil +} + +// ValAddrsOfRotatedConsKeys contains the array of validator addresses which rotated their keys +// This is to block the validator's next rotation till unbonding period. +type ValAddrsOfRotatedConsKeys struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ValAddrsOfRotatedConsKeys) Reset() { + *x = ValAddrsOfRotatedConsKeys{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValAddrsOfRotatedConsKeys) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValAddrsOfRotatedConsKeys) ProtoMessage() {} + +// Deprecated: Use ValAddrsOfRotatedConsKeys.ProtoReflect.Descriptor instead. +func (*ValAddrsOfRotatedConsKeys) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{23} +} + +func (x *ValAddrsOfRotatedConsKeys) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + var File_cosmos_staking_v1beta1_staking_proto protoreflect.FileDescriptor var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ @@ -15024,39 +16319,65 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, 0x6f, - 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, 0x44, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, - 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, - 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, - 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x55, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, 0x44, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, - 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, - 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, - 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, - 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, 0x52, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, - 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, - 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, - 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x19, 0x43, 0x6f, + 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0f, 0x6f, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, + 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6f, 0x6c, 0x64, + 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x65, + 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, + 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x66, 0x65, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x66, + 0x65, 0x65, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x53, 0x0a, 0x19, + 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4f, 0x66, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, + 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, + 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, + 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, + 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, + 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, + 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -15072,7 +16393,7 @@ func file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP() []byte { } var file_cosmos_staking_v1beta1_staking_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_cosmos_staking_v1beta1_staking_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_cosmos_staking_v1beta1_staking_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_cosmos_staking_v1beta1_staking_proto_goTypes = []interface{}{ (BondStatus)(0), // 0: cosmos.staking.v1beta1.BondStatus (Infraction)(0), // 1: cosmos.staking.v1beta1.Infraction @@ -15098,42 +16419,47 @@ var file_cosmos_staking_v1beta1_staking_proto_goTypes = []interface{}{ (*RedelegationResponse)(nil), // 21: cosmos.staking.v1beta1.RedelegationResponse (*Pool)(nil), // 22: cosmos.staking.v1beta1.Pool (*ValidatorUpdates)(nil), // 23: cosmos.staking.v1beta1.ValidatorUpdates - (*types.Header)(nil), // 24: tendermint.types.Header - (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp - (*anypb.Any)(nil), // 26: google.protobuf.Any - (*durationpb.Duration)(nil), // 27: google.protobuf.Duration - (*v1beta1.Coin)(nil), // 28: cosmos.base.v1beta1.Coin - (*abci.ValidatorUpdate)(nil), // 29: tendermint.abci.ValidatorUpdate + (*ConsPubKeyRotationHistory)(nil), // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory + (*ValAddrsOfRotatedConsKeys)(nil), // 25: cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys + (*types.Header)(nil), // 26: tendermint.types.Header + (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp + (*anypb.Any)(nil), // 28: google.protobuf.Any + (*durationpb.Duration)(nil), // 29: google.protobuf.Duration + (*v1beta1.Coin)(nil), // 30: cosmos.base.v1beta1.Coin + (*abci.ValidatorUpdate)(nil), // 31: tendermint.abci.ValidatorUpdate } var file_cosmos_staking_v1beta1_staking_proto_depIdxs = []int32{ - 24, // 0: cosmos.staking.v1beta1.HistoricalInfo.header:type_name -> tendermint.types.Header + 26, // 0: cosmos.staking.v1beta1.HistoricalInfo.header:type_name -> tendermint.types.Header 7, // 1: cosmos.staking.v1beta1.HistoricalInfo.valset:type_name -> cosmos.staking.v1beta1.Validator - 25, // 2: cosmos.staking.v1beta1.HistoricalRecord.time:type_name -> google.protobuf.Timestamp + 27, // 2: cosmos.staking.v1beta1.HistoricalRecord.time:type_name -> google.protobuf.Timestamp 4, // 3: cosmos.staking.v1beta1.Commission.commission_rates:type_name -> cosmos.staking.v1beta1.CommissionRates - 25, // 4: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp - 26, // 5: cosmos.staking.v1beta1.Validator.consensus_pubkey:type_name -> google.protobuf.Any + 27, // 4: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp + 28, // 5: cosmos.staking.v1beta1.Validator.consensus_pubkey:type_name -> google.protobuf.Any 0, // 6: cosmos.staking.v1beta1.Validator.status:type_name -> cosmos.staking.v1beta1.BondStatus 6, // 7: cosmos.staking.v1beta1.Validator.description:type_name -> cosmos.staking.v1beta1.Description - 25, // 8: cosmos.staking.v1beta1.Validator.unbonding_time:type_name -> google.protobuf.Timestamp + 27, // 8: cosmos.staking.v1beta1.Validator.unbonding_time:type_name -> google.protobuf.Timestamp 5, // 9: cosmos.staking.v1beta1.Validator.commission:type_name -> cosmos.staking.v1beta1.Commission 9, // 10: cosmos.staking.v1beta1.DVPairs.pairs:type_name -> cosmos.staking.v1beta1.DVPair 11, // 11: cosmos.staking.v1beta1.DVVTriplets.triplets:type_name -> cosmos.staking.v1beta1.DVVTriplet 15, // 12: cosmos.staking.v1beta1.UnbondingDelegation.entries:type_name -> cosmos.staking.v1beta1.UnbondingDelegationEntry - 25, // 13: cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time:type_name -> google.protobuf.Timestamp - 25, // 14: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp + 27, // 13: cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time:type_name -> google.protobuf.Timestamp + 27, // 14: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp 16, // 15: cosmos.staking.v1beta1.Redelegation.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntry - 27, // 16: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration + 29, // 16: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration 13, // 17: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation - 28, // 18: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin + 30, // 18: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin 16, // 19: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry 17, // 20: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation 20, // 21: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse - 29, // 22: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate - 23, // [23:23] is the sub-list for method output_type - 23, // [23:23] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 31, // 22: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate + 28, // 23: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey:type_name -> google.protobuf.Any + 28, // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey:type_name -> google.protobuf.Any + 30, // 25: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee:type_name -> cosmos.base.v1beta1.Coin + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_cosmos_staking_v1beta1_staking_proto_init() } @@ -15406,6 +16732,30 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { return nil } } + file_cosmos_staking_v1beta1_staking_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConsPubKeyRotationHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_staking_v1beta1_staking_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValAddrsOfRotatedConsKeys); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -15413,7 +16763,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_staking_v1beta1_staking_proto_rawDesc, NumEnums: 2, - NumMessages: 22, + NumMessages: 24, NumExtensions: 0, NumServices: 0, }, diff --git a/api/cosmos/staking/v1beta1/tx.pulsar.go b/api/cosmos/staking/v1beta1/tx.pulsar.go index 36214b35c38e..ca9a0c6282bd 100644 --- a/api/cosmos/staking/v1beta1/tx.pulsar.go +++ b/api/cosmos/staking/v1beta1/tx.pulsar.go @@ -7102,6 +7102,861 @@ func (x *fastReflection_MsgUpdateParamsResponse) ProtoMethods() *protoiface.Meth } } +var ( + md_MsgRotateConsPubKey protoreflect.MessageDescriptor + fd_MsgRotateConsPubKey_validator_address protoreflect.FieldDescriptor + fd_MsgRotateConsPubKey_new_pubkey protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_tx_proto_init() + md_MsgRotateConsPubKey = File_cosmos_staking_v1beta1_tx_proto.Messages().ByName("MsgRotateConsPubKey") + fd_MsgRotateConsPubKey_validator_address = md_MsgRotateConsPubKey.Fields().ByName("validator_address") + fd_MsgRotateConsPubKey_new_pubkey = md_MsgRotateConsPubKey.Fields().ByName("new_pubkey") +} + +var _ protoreflect.Message = (*fastReflection_MsgRotateConsPubKey)(nil) + +type fastReflection_MsgRotateConsPubKey MsgRotateConsPubKey + +func (x *MsgRotateConsPubKey) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgRotateConsPubKey)(x) +} + +func (x *MsgRotateConsPubKey) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_tx_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgRotateConsPubKey_messageType fastReflection_MsgRotateConsPubKey_messageType +var _ protoreflect.MessageType = fastReflection_MsgRotateConsPubKey_messageType{} + +type fastReflection_MsgRotateConsPubKey_messageType struct{} + +func (x fastReflection_MsgRotateConsPubKey_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgRotateConsPubKey)(nil) +} +func (x fastReflection_MsgRotateConsPubKey_messageType) New() protoreflect.Message { + return new(fastReflection_MsgRotateConsPubKey) +} +func (x fastReflection_MsgRotateConsPubKey_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRotateConsPubKey +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgRotateConsPubKey) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRotateConsPubKey +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgRotateConsPubKey) Type() protoreflect.MessageType { + return _fastReflection_MsgRotateConsPubKey_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgRotateConsPubKey) New() protoreflect.Message { + return new(fastReflection_MsgRotateConsPubKey) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgRotateConsPubKey) Interface() protoreflect.ProtoMessage { + return (*MsgRotateConsPubKey)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgRotateConsPubKey) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ValidatorAddress != "" { + value := protoreflect.ValueOfString(x.ValidatorAddress) + if !f(fd_MsgRotateConsPubKey_validator_address, value) { + return + } + } + if x.NewPubkey != nil { + value := protoreflect.ValueOfMessage(x.NewPubkey.ProtoReflect()) + if !f(fd_MsgRotateConsPubKey_new_pubkey, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgRotateConsPubKey) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.validator_address": + return x.ValidatorAddress != "" + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey": + return x.NewPubkey != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKey")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKey does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKey) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.validator_address": + x.ValidatorAddress = "" + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey": + x.NewPubkey = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKey")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKey does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgRotateConsPubKey) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.validator_address": + value := x.ValidatorAddress + return protoreflect.ValueOfString(value) + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey": + value := x.NewPubkey + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKey")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKey does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKey) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.validator_address": + x.ValidatorAddress = value.Interface().(string) + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey": + x.NewPubkey = value.Message().Interface().(*anypb.Any) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKey")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKey does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKey) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey": + if x.NewPubkey == nil { + x.NewPubkey = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.NewPubkey.ProtoReflect()) + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.validator_address": + panic(fmt.Errorf("field validator_address of message cosmos.staking.v1beta1.MsgRotateConsPubKey is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKey")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKey does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgRotateConsPubKey) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.validator_address": + return protoreflect.ValueOfString("") + case "cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKey")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKey does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgRotateConsPubKey) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.MsgRotateConsPubKey", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgRotateConsPubKey) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKey) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgRotateConsPubKey) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgRotateConsPubKey) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgRotateConsPubKey) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.ValidatorAddress) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NewPubkey != nil { + l = options.Size(x.NewPubkey) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgRotateConsPubKey) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.NewPubkey != nil { + encoded, err := options.Marshal(x.NewPubkey) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if len(x.ValidatorAddress) > 0 { + i -= len(x.ValidatorAddress) + copy(dAtA[i:], x.ValidatorAddress) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorAddress))) + i-- + dAtA[i] = 0x12 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgRotateConsPubKey) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRotateConsPubKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRotateConsPubKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewPubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.NewPubkey == nil { + x.NewPubkey = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NewPubkey); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgRotateConsPubKeyResponse protoreflect.MessageDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_tx_proto_init() + md_MsgRotateConsPubKeyResponse = File_cosmos_staking_v1beta1_tx_proto.Messages().ByName("MsgRotateConsPubKeyResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgRotateConsPubKeyResponse)(nil) + +type fastReflection_MsgRotateConsPubKeyResponse MsgRotateConsPubKeyResponse + +func (x *MsgRotateConsPubKeyResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgRotateConsPubKeyResponse)(x) +} + +func (x *MsgRotateConsPubKeyResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_tx_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgRotateConsPubKeyResponse_messageType fastReflection_MsgRotateConsPubKeyResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgRotateConsPubKeyResponse_messageType{} + +type fastReflection_MsgRotateConsPubKeyResponse_messageType struct{} + +func (x fastReflection_MsgRotateConsPubKeyResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgRotateConsPubKeyResponse)(nil) +} +func (x fastReflection_MsgRotateConsPubKeyResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgRotateConsPubKeyResponse) +} +func (x fastReflection_MsgRotateConsPubKeyResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRotateConsPubKeyResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRotateConsPubKeyResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgRotateConsPubKeyResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgRotateConsPubKeyResponse) New() protoreflect.Message { + return new(fastReflection_MsgRotateConsPubKeyResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Interface() protoreflect.ProtoMessage { + return (*MsgRotateConsPubKeyResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKeyResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgRotateConsPubKeyResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgRotateConsPubKeyResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgRotateConsPubKeyResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRotateConsPubKeyResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgRotateConsPubKeyResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgRotateConsPubKeyResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgRotateConsPubKeyResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgRotateConsPubKeyResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgRotateConsPubKeyResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRotateConsPubKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRotateConsPubKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -7773,6 +8628,82 @@ func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { return file_cosmos_staking_v1beta1_tx_proto_rawDescGZIP(), []int{13} } +// MsgRotateConsPubKey is the Msg/RotateConsPubKey request type. +// +// Since: cosmos-sdk 0.51 +type MsgRotateConsPubKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + NewPubkey *anypb.Any `protobuf:"bytes,3,opt,name=new_pubkey,json=newPubkey,proto3" json:"new_pubkey,omitempty"` +} + +func (x *MsgRotateConsPubKey) Reset() { + *x = MsgRotateConsPubKey{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_tx_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRotateConsPubKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRotateConsPubKey) ProtoMessage() {} + +// Deprecated: Use MsgRotateConsPubKey.ProtoReflect.Descriptor instead. +func (*MsgRotateConsPubKey) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_tx_proto_rawDescGZIP(), []int{14} +} + +func (x *MsgRotateConsPubKey) GetValidatorAddress() string { + if x != nil { + return x.ValidatorAddress + } + return "" +} + +func (x *MsgRotateConsPubKey) GetNewPubkey() *anypb.Any { + if x != nil { + return x.NewPubkey + } + return nil +} + +// MsgRotateConsPubKeyResponse defines the response structure for executing a +// MsgRotateConsPubKey message. +// +// Since: cosmos-sdk 0.51 +type MsgRotateConsPubKeyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgRotateConsPubKeyResponse) Reset() { + *x = MsgRotateConsPubKeyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_tx_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRotateConsPubKeyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRotateConsPubKeyResponse) ProtoMessage() {} + +// Deprecated: Use MsgRotateConsPubKeyResponse.ProtoReflect.Descriptor instead. +func (*MsgRotateConsPubKeyResponse) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_tx_proto_rawDescGZIP(), []int{15} +} + var File_cosmos_staking_v1beta1_tx_proto protoreflect.FileDescriptor var file_cosmos_staking_v1beta1_tx_proto_rawDesc = []byte{ @@ -7983,71 +8914,96 @@ var file_cosmos_staking_v1beta1_tx_proto_rawDesc = []byte{ 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0x9d, 0x06, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x71, 0x0a, 0x0f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2a, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, - 0x0a, 0x0d, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x6e, 0x73, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x11, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x6e, + 0x65, 0x77, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, + 0x09, 0x6e, 0x65, 0x77, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x3a, 0x41, 0x88, 0xa0, 0x1f, 0x00, + 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0x1d, 0x0a, + 0x1b, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, + 0x62, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x93, 0x07, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x71, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x2b, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0f, 0x42, 0x65, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0d, 0x45, 0x64, 0x69, 0x74, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0a, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, + 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0f, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x65, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x6e, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x8f, 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x19, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3c, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, - 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x10, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, + 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, + 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -8062,7 +9018,7 @@ func file_cosmos_staking_v1beta1_tx_proto_rawDescGZIP() []byte { return file_cosmos_staking_v1beta1_tx_proto_rawDescData } -var file_cosmos_staking_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_cosmos_staking_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_cosmos_staking_v1beta1_tx_proto_goTypes = []interface{}{ (*MsgCreateValidator)(nil), // 0: cosmos.staking.v1beta1.MsgCreateValidator (*MsgCreateValidatorResponse)(nil), // 1: cosmos.staking.v1beta1.MsgCreateValidatorResponse @@ -8078,46 +9034,51 @@ var file_cosmos_staking_v1beta1_tx_proto_goTypes = []interface{}{ (*MsgCancelUnbondingDelegationResponse)(nil), // 11: cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse (*MsgUpdateParams)(nil), // 12: cosmos.staking.v1beta1.MsgUpdateParams (*MsgUpdateParamsResponse)(nil), // 13: cosmos.staking.v1beta1.MsgUpdateParamsResponse - (*Description)(nil), // 14: cosmos.staking.v1beta1.Description - (*CommissionRates)(nil), // 15: cosmos.staking.v1beta1.CommissionRates - (*anypb.Any)(nil), // 16: google.protobuf.Any - (*v1beta1.Coin)(nil), // 17: cosmos.base.v1beta1.Coin - (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp - (*Params)(nil), // 19: cosmos.staking.v1beta1.Params + (*MsgRotateConsPubKey)(nil), // 14: cosmos.staking.v1beta1.MsgRotateConsPubKey + (*MsgRotateConsPubKeyResponse)(nil), // 15: cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse + (*Description)(nil), // 16: cosmos.staking.v1beta1.Description + (*CommissionRates)(nil), // 17: cosmos.staking.v1beta1.CommissionRates + (*anypb.Any)(nil), // 18: google.protobuf.Any + (*v1beta1.Coin)(nil), // 19: cosmos.base.v1beta1.Coin + (*timestamppb.Timestamp)(nil), // 20: google.protobuf.Timestamp + (*Params)(nil), // 21: cosmos.staking.v1beta1.Params } var file_cosmos_staking_v1beta1_tx_proto_depIdxs = []int32{ - 14, // 0: cosmos.staking.v1beta1.MsgCreateValidator.description:type_name -> cosmos.staking.v1beta1.Description - 15, // 1: cosmos.staking.v1beta1.MsgCreateValidator.commission:type_name -> cosmos.staking.v1beta1.CommissionRates - 16, // 2: cosmos.staking.v1beta1.MsgCreateValidator.pubkey:type_name -> google.protobuf.Any - 17, // 3: cosmos.staking.v1beta1.MsgCreateValidator.value:type_name -> cosmos.base.v1beta1.Coin - 14, // 4: cosmos.staking.v1beta1.MsgEditValidator.description:type_name -> cosmos.staking.v1beta1.Description - 17, // 5: cosmos.staking.v1beta1.MsgDelegate.amount:type_name -> cosmos.base.v1beta1.Coin - 17, // 6: cosmos.staking.v1beta1.MsgBeginRedelegate.amount:type_name -> cosmos.base.v1beta1.Coin - 18, // 7: cosmos.staking.v1beta1.MsgBeginRedelegateResponse.completion_time:type_name -> google.protobuf.Timestamp - 17, // 8: cosmos.staking.v1beta1.MsgUndelegate.amount:type_name -> cosmos.base.v1beta1.Coin - 18, // 9: cosmos.staking.v1beta1.MsgUndelegateResponse.completion_time:type_name -> google.protobuf.Timestamp - 17, // 10: cosmos.staking.v1beta1.MsgUndelegateResponse.amount:type_name -> cosmos.base.v1beta1.Coin - 17, // 11: cosmos.staking.v1beta1.MsgCancelUnbondingDelegation.amount:type_name -> cosmos.base.v1beta1.Coin - 19, // 12: cosmos.staking.v1beta1.MsgUpdateParams.params:type_name -> cosmos.staking.v1beta1.Params - 0, // 13: cosmos.staking.v1beta1.Msg.CreateValidator:input_type -> cosmos.staking.v1beta1.MsgCreateValidator - 2, // 14: cosmos.staking.v1beta1.Msg.EditValidator:input_type -> cosmos.staking.v1beta1.MsgEditValidator - 4, // 15: cosmos.staking.v1beta1.Msg.Delegate:input_type -> cosmos.staking.v1beta1.MsgDelegate - 6, // 16: cosmos.staking.v1beta1.Msg.BeginRedelegate:input_type -> cosmos.staking.v1beta1.MsgBeginRedelegate - 8, // 17: cosmos.staking.v1beta1.Msg.Undelegate:input_type -> cosmos.staking.v1beta1.MsgUndelegate - 10, // 18: cosmos.staking.v1beta1.Msg.CancelUnbondingDelegation:input_type -> cosmos.staking.v1beta1.MsgCancelUnbondingDelegation - 12, // 19: cosmos.staking.v1beta1.Msg.UpdateParams:input_type -> cosmos.staking.v1beta1.MsgUpdateParams - 1, // 20: cosmos.staking.v1beta1.Msg.CreateValidator:output_type -> cosmos.staking.v1beta1.MsgCreateValidatorResponse - 3, // 21: cosmos.staking.v1beta1.Msg.EditValidator:output_type -> cosmos.staking.v1beta1.MsgEditValidatorResponse - 5, // 22: cosmos.staking.v1beta1.Msg.Delegate:output_type -> cosmos.staking.v1beta1.MsgDelegateResponse - 7, // 23: cosmos.staking.v1beta1.Msg.BeginRedelegate:output_type -> cosmos.staking.v1beta1.MsgBeginRedelegateResponse - 9, // 24: cosmos.staking.v1beta1.Msg.Undelegate:output_type -> cosmos.staking.v1beta1.MsgUndelegateResponse - 11, // 25: cosmos.staking.v1beta1.Msg.CancelUnbondingDelegation:output_type -> cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse - 13, // 26: cosmos.staking.v1beta1.Msg.UpdateParams:output_type -> cosmos.staking.v1beta1.MsgUpdateParamsResponse - 20, // [20:27] is the sub-list for method output_type - 13, // [13:20] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 16, // 0: cosmos.staking.v1beta1.MsgCreateValidator.description:type_name -> cosmos.staking.v1beta1.Description + 17, // 1: cosmos.staking.v1beta1.MsgCreateValidator.commission:type_name -> cosmos.staking.v1beta1.CommissionRates + 18, // 2: cosmos.staking.v1beta1.MsgCreateValidator.pubkey:type_name -> google.protobuf.Any + 19, // 3: cosmos.staking.v1beta1.MsgCreateValidator.value:type_name -> cosmos.base.v1beta1.Coin + 16, // 4: cosmos.staking.v1beta1.MsgEditValidator.description:type_name -> cosmos.staking.v1beta1.Description + 19, // 5: cosmos.staking.v1beta1.MsgDelegate.amount:type_name -> cosmos.base.v1beta1.Coin + 19, // 6: cosmos.staking.v1beta1.MsgBeginRedelegate.amount:type_name -> cosmos.base.v1beta1.Coin + 20, // 7: cosmos.staking.v1beta1.MsgBeginRedelegateResponse.completion_time:type_name -> google.protobuf.Timestamp + 19, // 8: cosmos.staking.v1beta1.MsgUndelegate.amount:type_name -> cosmos.base.v1beta1.Coin + 20, // 9: cosmos.staking.v1beta1.MsgUndelegateResponse.completion_time:type_name -> google.protobuf.Timestamp + 19, // 10: cosmos.staking.v1beta1.MsgUndelegateResponse.amount:type_name -> cosmos.base.v1beta1.Coin + 19, // 11: cosmos.staking.v1beta1.MsgCancelUnbondingDelegation.amount:type_name -> cosmos.base.v1beta1.Coin + 21, // 12: cosmos.staking.v1beta1.MsgUpdateParams.params:type_name -> cosmos.staking.v1beta1.Params + 18, // 13: cosmos.staking.v1beta1.MsgRotateConsPubKey.new_pubkey:type_name -> google.protobuf.Any + 0, // 14: cosmos.staking.v1beta1.Msg.CreateValidator:input_type -> cosmos.staking.v1beta1.MsgCreateValidator + 2, // 15: cosmos.staking.v1beta1.Msg.EditValidator:input_type -> cosmos.staking.v1beta1.MsgEditValidator + 4, // 16: cosmos.staking.v1beta1.Msg.Delegate:input_type -> cosmos.staking.v1beta1.MsgDelegate + 6, // 17: cosmos.staking.v1beta1.Msg.BeginRedelegate:input_type -> cosmos.staking.v1beta1.MsgBeginRedelegate + 8, // 18: cosmos.staking.v1beta1.Msg.Undelegate:input_type -> cosmos.staking.v1beta1.MsgUndelegate + 10, // 19: cosmos.staking.v1beta1.Msg.CancelUnbondingDelegation:input_type -> cosmos.staking.v1beta1.MsgCancelUnbondingDelegation + 12, // 20: cosmos.staking.v1beta1.Msg.UpdateParams:input_type -> cosmos.staking.v1beta1.MsgUpdateParams + 14, // 21: cosmos.staking.v1beta1.Msg.RotateConsPubKey:input_type -> cosmos.staking.v1beta1.MsgRotateConsPubKey + 1, // 22: cosmos.staking.v1beta1.Msg.CreateValidator:output_type -> cosmos.staking.v1beta1.MsgCreateValidatorResponse + 3, // 23: cosmos.staking.v1beta1.Msg.EditValidator:output_type -> cosmos.staking.v1beta1.MsgEditValidatorResponse + 5, // 24: cosmos.staking.v1beta1.Msg.Delegate:output_type -> cosmos.staking.v1beta1.MsgDelegateResponse + 7, // 25: cosmos.staking.v1beta1.Msg.BeginRedelegate:output_type -> cosmos.staking.v1beta1.MsgBeginRedelegateResponse + 9, // 26: cosmos.staking.v1beta1.Msg.Undelegate:output_type -> cosmos.staking.v1beta1.MsgUndelegateResponse + 11, // 27: cosmos.staking.v1beta1.Msg.CancelUnbondingDelegation:output_type -> cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse + 13, // 28: cosmos.staking.v1beta1.Msg.UpdateParams:output_type -> cosmos.staking.v1beta1.MsgUpdateParamsResponse + 15, // 29: cosmos.staking.v1beta1.Msg.RotateConsPubKey:output_type -> cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse + 22, // [22:30] is the sub-list for method output_type + 14, // [14:22] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_cosmos_staking_v1beta1_tx_proto_init() } @@ -8295,6 +9256,30 @@ func file_cosmos_staking_v1beta1_tx_proto_init() { return nil } } + file_cosmos_staking_v1beta1_tx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRotateConsPubKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_staking_v1beta1_tx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRotateConsPubKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -8302,7 +9287,7 @@ func file_cosmos_staking_v1beta1_tx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_staking_v1beta1_tx_proto_rawDesc, NumEnums: 0, - NumMessages: 14, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cosmos/staking/v1beta1/tx_grpc.pb.go b/api/cosmos/staking/v1beta1/tx_grpc.pb.go index 84a8c06e8998..b470a1ab3ed2 100644 --- a/api/cosmos/staking/v1beta1/tx_grpc.pb.go +++ b/api/cosmos/staking/v1beta1/tx_grpc.pb.go @@ -26,6 +26,7 @@ const ( Msg_Undelegate_FullMethodName = "/cosmos.staking.v1beta1.Msg/Undelegate" Msg_CancelUnbondingDelegation_FullMethodName = "/cosmos.staking.v1beta1.Msg/CancelUnbondingDelegation" Msg_UpdateParams_FullMethodName = "/cosmos.staking.v1beta1.Msg/UpdateParams" + Msg_RotateConsPubKey_FullMethodName = "/cosmos.staking.v1beta1.Msg/RotateConsPubKey" ) // MsgClient is the client API for Msg service. @@ -54,6 +55,10 @@ type MsgClient interface { // parameters. // Since: cosmos-sdk 0.47 UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + // RotateConsPubKey defines an operation for rotating the consensus keys + // of a validator. + // Since: cosmos-sdk 0.48 + RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error) } type msgClient struct { @@ -127,6 +132,15 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts return out, nil } +func (c *msgClient) RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error) { + out := new(MsgRotateConsPubKeyResponse) + err := c.cc.Invoke(ctx, Msg_RotateConsPubKey_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. // All implementations must embed UnimplementedMsgServer // for forward compatibility @@ -153,6 +167,10 @@ type MsgServer interface { // parameters. // Since: cosmos-sdk 0.47 UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + // RotateConsPubKey defines an operation for rotating the consensus keys + // of a validator. + // Since: cosmos-sdk 0.48 + RotateConsPubKey(context.Context, *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error) mustEmbedUnimplementedMsgServer() } @@ -181,6 +199,9 @@ func (UnimplementedMsgServer) CancelUnbondingDelegation(context.Context, *MsgCan func (UnimplementedMsgServer) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") } +func (UnimplementedMsgServer) RotateConsPubKey(context.Context, *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RotateConsPubKey not implemented") +} func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} // UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. @@ -320,6 +341,24 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Msg_RotateConsPubKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRotateConsPubKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RotateConsPubKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_RotateConsPubKey_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RotateConsPubKey(ctx, req.(*MsgRotateConsPubKey)) + } + return interceptor(ctx, in, info, handler) +} + // Msg_ServiceDesc is the grpc.ServiceDesc for Msg service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -355,6 +394,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateParams", Handler: _Msg_UpdateParams_Handler, }, + { + MethodName: "RotateConsPubKey", + Handler: _Msg_RotateConsPubKey_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cosmos/staking/v1beta1/tx.proto", diff --git a/api/go.mod b/api/go.mod index bc85c72b8c84..574eb7511949 100644 --- a/api/go.mod +++ b/api/go.mod @@ -5,8 +5,8 @@ go 1.20 require ( github.com/cosmos/cosmos-proto v1.0.0-beta.3 github.com/cosmos/gogoproto v1.4.11 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 ) @@ -17,6 +17,6 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect ) diff --git a/api/go.sum b/api/go.sum index 45dafbd89d50..b836d2155ebf 100644 --- a/api/go.sum +++ b/api/go.sum @@ -17,14 +17,14 @@ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff --git a/client/config/config.go b/client/config/config.go index 5b9f0340ec5f..4cb0faa1203f 100644 --- a/client/config/config.go +++ b/client/config/config.go @@ -12,11 +12,12 @@ import ( // DefaultConfig returns default config for the client.toml func DefaultConfig() *Config { return &Config{ - ChainID: "", - KeyringBackend: "os", - Output: "text", - Node: "tcp://localhost:26657", - BroadcastMode: "sync", + ChainID: "", + KeyringBackend: "os", + KeyringDefaultKeyName: "", + Output: "text", + Node: "tcp://localhost:26657", + BroadcastMode: "sync", } } @@ -25,11 +26,12 @@ func DefaultConfig() *Config { type ClientConfig Config type Config struct { - ChainID string `mapstructure:"chain-id" json:"chain-id"` - KeyringBackend string `mapstructure:"keyring-backend" json:"keyring-backend"` - Output string `mapstructure:"output" json:"output"` - Node string `mapstructure:"node" json:"node"` - BroadcastMode string `mapstructure:"broadcast-mode" json:"broadcast-mode"` + ChainID string `mapstructure:"chain-id" json:"chain-id"` + KeyringBackend string `mapstructure:"keyring-backend" json:"keyring-backend"` + KeyringDefaultKeyName string `mapstructure:"keyring-default-keyname" json:"keyring-default-keyname"` + Output string `mapstructure:"output" json:"output"` + Node string `mapstructure:"node" json:"node"` + BroadcastMode string `mapstructure:"broadcast-mode" json:"broadcast-mode"` } // ReadFromClientConfig reads values from client.toml file and updates them in client.Context @@ -95,7 +97,8 @@ func CreateClientConfig(ctx client.Context, customClientTemplate string, customC // we need to update KeyringDir field on client.Context first cause it is used in NewKeyringFromBackend ctx = ctx.WithOutputFormat(conf.Output). WithChainID(conf.ChainID). - WithKeyringDir(ctx.HomeDir) + WithKeyringDir(ctx.HomeDir). + WithKeyringDefaultKeyName(conf.KeyringDefaultKeyName) keyring, err := client.NewKeyringFromBackend(ctx, conf.KeyringBackend) if err != nil { diff --git a/client/config/toml.go b/client/config/toml.go index 1028f449e134..7c43eccc15b8 100644 --- a/client/config/toml.go +++ b/client/config/toml.go @@ -19,6 +19,8 @@ const DefaultClientConfigTemplate = `# This is a TOML config file. chain-id = "{{ .ChainID }}" # The keyring's backend, where the keys are stored (os|file|kwallet|pass|test|memory) keyring-backend = "{{ .KeyringBackend }}" +# Default key name, if set, defines the default key to use for signing transaction when the --from flag is not specified +keyring-default-keyname = "{{ .KeyringDefaultKeyName }}" # CLI output format (text|json) output = "{{ .Output }}" # : to CometBFT RPC interface for this chain diff --git a/client/context.go b/client/context.go index 595d5329fc88..d75ea6771b24 100644 --- a/client/context.go +++ b/client/context.go @@ -27,37 +27,38 @@ type PreprocessTxFn func(chainID string, key keyring.KeyType, tx TxBuilder) erro // Context implements a typical context created in SDK modules for transaction // handling and queries. type Context struct { - FromAddress sdk.AccAddress - Client CometRPC - GRPCClient *grpc.ClientConn - ChainID string - Codec codec.Codec - InterfaceRegistry codectypes.InterfaceRegistry - Input io.Reader - Keyring keyring.Keyring - KeyringOptions []keyring.Option - Output io.Writer - OutputFormat string - Height int64 - HomeDir string - KeyringDir string - From string - BroadcastMode string - FromName string - SignModeStr string - UseLedger bool - Simulate bool - GenerateOnly bool - Offline bool - SkipConfirm bool - TxConfig TxConfig - AccountRetriever AccountRetriever - NodeURI string - FeePayer sdk.AccAddress - FeeGranter sdk.AccAddress - Viper *viper.Viper - LedgerHasProtobuf bool - PreprocessTxHook PreprocessTxFn + FromAddress sdk.AccAddress + Client CometRPC + GRPCClient *grpc.ClientConn + ChainID string + Codec codec.Codec + InterfaceRegistry codectypes.InterfaceRegistry + Input io.Reader + Keyring keyring.Keyring + KeyringOptions []keyring.Option + KeyringDir string + KeyringDefaultKeyName string + Output io.Writer + OutputFormat string + Height int64 + HomeDir string + From string + BroadcastMode string + FromName string + SignModeStr string + UseLedger bool + Simulate bool + GenerateOnly bool + Offline bool + SkipConfirm bool + TxConfig TxConfig + AccountRetriever AccountRetriever + NodeURI string + FeePayer sdk.AccAddress + FeeGranter sdk.AccAddress + Viper *viper.Viper + LedgerHasProtobuf bool + PreprocessTxHook PreprocessTxFn // IsAux is true when the signer is an auxiliary signer (e.g. the tipper). IsAux bool @@ -185,6 +186,12 @@ func (ctx Context) WithKeyringDir(dir string) Context { return ctx } +// WithKeyringDefaultKeyName returns a copy of the Context with KeyringDefaultKeyName set. +func (ctx Context) WithKeyringDefaultKeyName(keyName string) Context { + ctx.KeyringDefaultKeyName = keyName + return ctx +} + // WithGenerateOnly returns a copy of the context with updated GenerateOnly value func (ctx Context) WithGenerateOnly(generateOnly bool) Context { ctx.GenerateOnly = generateOnly @@ -385,7 +392,13 @@ func (ctx Context) printOutput(out []byte) error { // GetFromFields returns a from account address, account name and keyring type, given either an address or key name. // If clientCtx.Simulate is true the keystore is not accessed and a valid address must be provided // If clientCtx.GenerateOnly is true the keystore is only accessed if a key name is provided +// If from is empty, the default key if specified in the context will be used func GetFromFields(clientCtx Context, kr keyring.Keyring, from string) (sdk.AccAddress, string, keyring.KeyType, error) { + if from == "" && clientCtx.KeyringDefaultKeyName != "" { + from = clientCtx.KeyringDefaultKeyName + _ = clientCtx.PrintString(fmt.Sprintf("No key name or address provided; using the default key: %s\n", clientCtx.KeyringDefaultKeyName)) + } + if from == "" { return nil, "", 0, nil } diff --git a/client/context_test.go b/client/context_test.go index ed1decef1686..7c0397540c50 100644 --- a/client/context_test.go +++ b/client/context_test.go @@ -107,6 +107,18 @@ func TestGetFromFields(t *testing.T) { from string expectedErr string }{ + { + clientCtx: client.Context{}.WithAddressCodec(addresscodec.NewBech32Codec("cosmos")).WithKeyringDefaultKeyName("alice"), + keyring: func() keyring.Keyring { + kb := keyring.NewInMemory(cfg.Codec) + + _, _, err := kb.NewMnemonic("alice", keyring.English, path, keyring.DefaultBIP39Passphrase, hd.Secp256k1) + require.NoError(t, err) + + return kb + }, + from: "", + }, { clientCtx: client.Context{}.WithAddressCodec(addresscodec.NewBech32Codec("cosmos")), keyring: func() keyring.Keyring { diff --git a/client/query.go b/client/query.go index 29b99bb918e8..02b79bbcde29 100644 --- a/client/query.go +++ b/client/query.go @@ -61,21 +61,6 @@ func (ctx Context) GetFromAddress() sdk.AccAddress { return ctx.FromAddress } -// GetFeePayerAddress returns the fee granter address from the context -func (ctx Context) GetFeePayerAddress() sdk.AccAddress { - return ctx.FeePayer -} - -// GetFeeGranterAddress returns the fee granter address from the context -func (ctx Context) GetFeeGranterAddress() sdk.AccAddress { - return ctx.FeeGranter -} - -// GetFromName returns the key name for the current context. -func (ctx Context) GetFromName() string { - return ctx.FromName -} - func (ctx Context) queryABCI(req abci.RequestQuery) (abci.ResponseQuery, error) { node, err := ctx.GetNode() if err != nil { diff --git a/client/tx/factory.go b/client/tx/factory.go index 81ce5784d5ac..b8e9bab4fd8a 100644 --- a/client/tx/factory.go +++ b/client/tx/factory.go @@ -467,7 +467,7 @@ func (f Factory) Prepare(clientCtx client.Context) (Factory, error) { } fc := f - from := clientCtx.GetFromAddress() + from := clientCtx.FromAddress if err := fc.accountRetriever.EnsureExists(clientCtx, from); err != nil { return fc, err diff --git a/client/tx/tx.go b/client/tx/tx.go index 8d905922cad8..b9335ee8cc0e 100644 --- a/client/tx/tx.go +++ b/client/tx/tx.go @@ -126,7 +126,7 @@ func BroadcastTx(clientCtx client.Context, txf Factory, msgs ...sdk.Msg) error { } } - err = Sign(clientCtx.CmdContext, txf, clientCtx.GetFromName(), tx, true) + err = Sign(clientCtx.CmdContext, txf, clientCtx.FromName, tx, true) if err != nil { return err } diff --git a/client/v2/autocli/common.go b/client/v2/autocli/common.go index f6aa375e0852..4f1346e03dd3 100644 --- a/client/v2/autocli/common.go +++ b/client/v2/autocli/common.go @@ -68,17 +68,15 @@ func (b *Builder) buildMethodCommandCommon(descriptor protoreflect.MethodDescrip // signer related logic, triggers only when there is a signer defined if binder.SignerInfo.FieldName != "" { - // mark the signer flag as required if defined - // TODO(@julienrbrt): UX improvement by only marking the flag as required when there is more than one key in the keyring; - // when there is only one key, use that key by default. if binder.SignerInfo.IsFlag { - if err := cmd.MarkFlagRequired(binder.SignerInfo.FieldName); err != nil { - return err - } - // the client context uses the from flag to determine the signer. // this sets the signer flags to the from flag value if a custom signer flag is set. + // marks the custom flag as required. if binder.SignerInfo.FieldName != flags.FlagFrom { + if err := cmd.MarkFlagRequired(binder.SignerInfo.FieldName); err != nil { + return err + } + signer, err := cmd.Flags().GetString(binder.SignerInfo.FieldName) if err != nil { return fmt.Errorf("failed to get signer flag: %w", err) diff --git a/client/v2/go.mod b/client/v2/go.mod index fb344da9eaef..72c9e0983c31 100644 --- a/client/v2/go.mod +++ b/client/v2/go.mod @@ -3,17 +3,17 @@ module cosmossdk.io/client/v2 go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 - cosmossdk.io/x/tx v0.10.0 + cosmossdk.io/x/tx v0.11.0 github.com/cockroachdb/errors v1.11.1 github.com/cosmos/cosmos-proto v1.0.0-beta.3 github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230915113003-c7e0bd7b54d0 github.com/cosmos/gogoproto v1.4.11 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 sigs.k8s.io/yaml v1.3.0 @@ -47,7 +47,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -68,7 +68,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -102,7 +102,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -134,8 +134,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -145,9 +145,9 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/client/v2/go.sum b/client/v2/go.sum index 0aa30f3fa53f..f1ce1effa540 100644 --- a/client/v2/go.sum +++ b/client/v2/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -53,8 +53,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -189,8 +189,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -321,8 +321,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -545,8 +545,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -792,10 +793,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1179,12 +1180,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1211,8 +1212,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/collections/go.mod b/collections/go.mod index c3954ef9b2c5..9ec6a608fa55 100644 --- a/collections/go.mod +++ b/collections/go.mod @@ -10,7 +10,7 @@ require ( ) require ( - cosmossdk.io/api v0.7.1 // indirect + cosmossdk.io/api v0.7.2 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect github.com/DataDog/zstd v1.5.5 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -46,8 +46,8 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect - google.golang.org/grpc v1.58.3 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/collections/go.sum b/collections/go.sum index 62b53c509a32..5dd6fb29fd77 100644 --- a/collections/go.sum +++ b/collections/go.sum @@ -1,5 +1,5 @@ -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= @@ -64,8 +64,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -187,10 +187,10 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/core/go.mod b/core/go.mod index 13fc45625006..1506941be45b 100644 --- a/core/go.mod +++ b/core/go.mod @@ -3,13 +3,13 @@ module cosmossdk.io/core go 1.20 require ( - cosmossdk.io/api v0.7.1 + cosmossdk.io/api v0.7.2 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/math v1.1.3-rc.1 github.com/cosmos/cosmos-db v1.0.0 github.com/cosmos/cosmos-proto v1.0.0-beta.3 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 sigs.k8s.io/yaml v1.3.0 @@ -49,9 +49,9 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/core/go.sum b/core/go.sum index 7174b6470e49..c5a229fe2344 100644 --- a/core/go.sum +++ b/core/go.sum @@ -1,5 +1,5 @@ -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= @@ -181,14 +181,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/crypto/keyring/keyring.go b/crypto/keyring/keyring.go index 2e92c484254e..05dac4822fcf 100644 --- a/crypto/keyring/keyring.go +++ b/crypto/keyring/keyring.go @@ -945,6 +945,10 @@ func (ks keystore) migrate(key string) (*Record, error) { // 1. get the key. item, err := ks.db.Get(key) if err != nil { + if key == fmt.Sprintf(".%s", infoSuffix) { + return nil, errors.New("no key name or address provided; have you forgotten the --from flag?") + } + return nil, wrapKeyNotFound(err, key) } diff --git a/docs/user/run-node/01-run-node.md b/docs/user/run-node/01-run-node.md index a9ef422b6889..f16eb42f52de 100644 --- a/docs/user/run-node/01-run-node.md +++ b/docs/user/run-node/01-run-node.md @@ -157,6 +157,13 @@ The previous command allow you to run a single node. This is enough for the next The naive way would be to run the same commands again in separate terminal windows. This is possible, however in the Cosmos SDK, we leverage the power of [Docker Compose](https://docs.docker.com/compose/) to run a localnet. If you need inspiration on how to set up your own localnet with Docker Compose, you can have a look at the Cosmos SDK's [`docker-compose.yml`](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/docker-compose.yml). +### Standalone App/CometBFT + +By default, the Cosmos SDK runs CometBFT in-process with the application +If you want to run the application and CometBFT in separate processes, +start the application with the `--with-comet=false` flag +and set `rpc.laddr` in `config.toml` to the CometBFT node's RPC address. + ## Logging Logging provides a way to see what is going on with a node. By default the info level is set. This is a global level and all info logs will be outputted to the terminal. If you would like to filter specific logs to the terminal instead of all, then setting `module:log_level` is how this can work. diff --git a/errors/go.mod b/errors/go.mod index acbc88e39dbb..22ff7b7ac493 100644 --- a/errors/go.mod +++ b/errors/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 ) require ( @@ -15,7 +15,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect golang.org/x/net v0.17.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/errors/go.sum b/errors/go.sum index d545f0547a76..227366bdb915 100644 --- a/errors/go.sum +++ b/errors/go.sum @@ -29,10 +29,10 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff --git a/go.mod b/go.mod index fbe86ca182d1..883dbc36a938 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ toolchain go1.21.0 module github.com/cosmos/cosmos-sdk require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 @@ -14,7 +14,7 @@ require ( cosmossdk.io/math v1.1.3-rc.1 cosmossdk.io/store v1.0.0-rc.0 cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 - cosmossdk.io/x/tx v0.10.0 + cosmossdk.io/x/tx v0.11.0 github.com/99designs/keyring v1.2.1 github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 github.com/bits-and-blooms/bitset v1.10.0 @@ -28,7 +28,7 @@ require ( github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogogateway v1.2.0 github.com/cosmos/gogoproto v1.4.11 - github.com/cosmos/ledger-cosmos-go v0.13.1 + github.com/cosmos/ledger-cosmos-go v0.13.2 github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 @@ -46,7 +46,7 @@ require ( github.com/jhump/protoreflect v1.15.3 github.com/magiconair/properties v1.8.7 github.com/manifoldco/promptui v0.9.0 - github.com/mattn/go-isatty v0.0.19 + github.com/mattn/go-isatty v0.0.20 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.17.0 github.com/prometheus/common v0.44.0 @@ -60,8 +60,8 @@ require ( golang.org/x/crypto v0.14.0 golang.org/x/exp v0.0.0-20231006140011-7918f672742d golang.org/x/sync v0.4.0 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 pgregory.net/rapid v1.1.0 @@ -104,7 +104,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/orderedcode v0.0.1 // indirect @@ -149,16 +149,16 @@ require ( github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index ccad68ed1441..fecf6a42dc36 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -51,8 +51,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -199,8 +199,8 @@ github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZD github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -327,8 +327,8 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -552,8 +552,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -799,10 +800,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1211,12 +1212,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1243,8 +1244,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/log/go.mod b/log/go.mod index 1de68b711477..8536712665c9 100644 --- a/log/go.mod +++ b/log/go.mod @@ -11,6 +11,6 @@ require ( require ( github.com/google/go-cmp v0.6.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - golang.org/x/sys v0.8.0 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + golang.org/x/sys v0.13.0 // indirect ) diff --git a/log/go.sum b/log/go.sum index 6bf6c248a1fd..3748610c7a3d 100644 --- a/log/go.sum +++ b/log/go.sum @@ -7,8 +7,8 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= @@ -18,7 +18,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/orm/go.mod b/orm/go.mod index 71ce85e0c77f..929b98d6a6b5 100644 --- a/orm/go.mod +++ b/orm/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/orm go 1.20 require ( - cosmossdk.io/api v0.7.1 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.11.0 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/errors v1.0.0 @@ -15,7 +15,7 @@ require ( github.com/regen-network/gocuke v0.6.3 github.com/stretchr/testify v1.8.4 golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 pgregory.net/rapid v1.1.0 @@ -61,9 +61,9 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/orm/go.sum b/orm/go.sum index 665ce9b8081f..dee104364b8d 100644 --- a/orm/go.sum +++ b/orm/go.sum @@ -1,5 +1,5 @@ -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= @@ -216,14 +216,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/proto/cosmos/feegrant/v1beta1/tx.proto b/proto/cosmos/feegrant/v1beta1/tx.proto index 37e505c4e9a2..a45eec3ba368 100644 --- a/proto/cosmos/feegrant/v1beta1/tx.proto +++ b/proto/cosmos/feegrant/v1beta1/tx.proto @@ -20,6 +20,11 @@ service Msg { // RevokeAllowance revokes any fee allowance of granter's account that // has been granted to the grantee. rpc RevokeAllowance(MsgRevokeAllowance) returns (MsgRevokeAllowanceResponse); + + // PruneAllowances prunes expired fee allowances, currently up to 75 at a time. + // + // Since cosmos-sdk 0.50 + rpc PruneAllowances(MsgPruneAllowances) returns (MsgPruneAllowancesResponse); } // MsgGrantAllowance adds permission for Grantee to spend up to Allowance @@ -55,3 +60,18 @@ message MsgRevokeAllowance { // MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. message MsgRevokeAllowanceResponse {} + +// MsgPruneAllowances prunes expired fee allowances. +// +// Since cosmos-sdk 0.50 +message MsgPruneAllowances { + option (cosmos.msg.v1.signer) = "pruner"; + + // pruner is the address of the user pruning expired allowances. + string pruner = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgPruneAllowancesResponse defines the Msg/PruneAllowancesResponse response type. +// +// Since cosmos-sdk 0.50 +message MsgPruneAllowancesResponse {} \ No newline at end of file diff --git a/proto/cosmos/staking/v1beta1/staking.proto b/proto/cosmos/staking/v1beta1/staking.proto index 8d7bcdaec03e..7881d4b5d5ce 100644 --- a/proto/cosmos/staking/v1beta1/staking.proto +++ b/proto/cosmos/staking/v1beta1/staking.proto @@ -404,3 +404,26 @@ enum Infraction { message ValidatorUpdates { repeated tendermint.abci.ValidatorUpdate updates = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } + +// ConsPubKeyRotationHistory contains a validator's consensus public key rotation history. +message ConsPubKeyRotationHistory { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // operator_address defines the address of the validator's operator; bech encoded in JSON. + string operator_address = 1; + // old_cons_pubkey is the old consensus public key of the validator, as a Protobuf Any. + google.protobuf.Any old_cons_pubkey = 2 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; + // new_cons_pubkey is the new consensus public key of the validator, as a Protobuf Any. + google.protobuf.Any new_cons_pubkey = 3 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; + // height defines the block height at which the rotation event occured. + uint64 height = 4; + // fee holds the amount of fee deduced for the rotation. + cosmos.base.v1beta1.Coin fee = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ValAddrsOfRotatedConsKeys contains the array of validator addresses which rotated their keys +// This is to block the validator's next rotation till unbonding period. +message ValAddrsOfRotatedConsKeys { + repeated string addresses = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} diff --git a/proto/cosmos/staking/v1beta1/tx.proto b/proto/cosmos/staking/v1beta1/tx.proto index 238645ba9232..558a62cfe423 100644 --- a/proto/cosmos/staking/v1beta1/tx.proto +++ b/proto/cosmos/staking/v1beta1/tx.proto @@ -45,6 +45,11 @@ service Msg { // parameters. // Since: cosmos-sdk 0.47 rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // RotateConsPubKey defines an operation for rotating the consensus keys + // of a validator. + // Since: cosmos-sdk 0.48 + rpc RotateConsPubKey(MsgRotateConsPubKey) returns (MsgRotateConsPubKeyResponse); } // MsgCreateValidator defines a SDK message for creating a new validator. @@ -204,3 +209,23 @@ message MsgUpdateParams { // // Since: cosmos-sdk 0.47 message MsgUpdateParamsResponse {}; + +// MsgRotateConsPubKey is the Msg/RotateConsPubKey request type. +// +// Since: cosmos-sdk 0.51 +message MsgRotateConsPubKey { + option (cosmos.msg.v1.signer) = "validator_address"; + option (amino.name) = "cosmos-sdk/MsgRotateConsPubKey"; + + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + google.protobuf.Any new_pubkey = 3 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; +} + +// MsgRotateConsPubKeyResponse defines the response structure for executing a +// MsgRotateConsPubKey message. +// +// Since: cosmos-sdk 0.51 +message MsgRotateConsPubKeyResponse {} diff --git a/scripts/init-simapp.sh b/scripts/init-simapp.sh index 9225e9b12456..a27fc9354bba 100755 --- a/scripts/init-simapp.sh +++ b/scripts/init-simapp.sh @@ -7,6 +7,7 @@ echo "using $SIMD_BIN" if [ -d "$($SIMD_BIN config home)" ]; then rm -r $($SIMD_BIN config home); fi $SIMD_BIN config set client chain-id demo $SIMD_BIN config set client keyring-backend test +$SIMD_BIN config set client keyring-default-keyname alice $SIMD_BIN config set app api.enable true $SIMD_BIN keys add alice $SIMD_BIN keys add bob diff --git a/server/start.go b/server/start.go index 5e4383b1422e..008fb2e1864e 100644 --- a/server/start.go +++ b/server/start.go @@ -16,6 +16,7 @@ import ( "github.com/cometbft/cometbft/p2p" pvm "github.com/cometbft/cometbft/privval" "github.com/cometbft/cometbft/proxy" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cometbft/cometbft/rpc/client/local" cmttypes "github.com/cometbft/cometbft/types" dbm "github.com/cosmos/cosmos-db" @@ -258,12 +259,12 @@ func start(svrCtx *Context, clientCtx client.Context, appCreator types.AppCreato emitServerInfoMetrics() if !withCmt { - return startStandAlone(svrCtx, app, opts) + return startStandAlone(svrCtx, svrCfg, clientCtx, app, metrics, opts) } return startInProcess(svrCtx, svrCfg, clientCtx, app, metrics, opts) } -func startStandAlone(svrCtx *Context, app types.Application, opts StartCmdOptions) error { +func startStandAlone(svrCtx *Context, svrCfg serverconfig.Config, clientCtx client.Context, app types.Application, metrics *telemetry.Metrics, opts StartCmdOptions) error { addr := svrCtx.Viper.GetString(flagAddress) transport := svrCtx.Viper.GetString(flagTransport) @@ -277,6 +278,39 @@ func startStandAlone(svrCtx *Context, app types.Application, opts StartCmdOption g, ctx := getCtx(svrCtx, false) + // Add the tx service to the gRPC router. We only need to register this + // service if API or gRPC is enabled, and avoid doing so in the general + // case, because it spawns a new local CometBFT RPC client. + if svrCfg.API.Enable || svrCfg.GRPC.Enable { + // create tendermint client + // assumes the rpc listen address is where tendermint has its rpc server + rpcclient, err := rpchttp.New(svrCtx.Config.RPC.ListenAddress, "/websocket") + if err != nil { + return err + } + // re-assign for making the client available below + // do not use := to avoid shadowing clientCtx + clientCtx = clientCtx.WithClient(rpcclient) + + // use the provided clientCtx to register the services + app.RegisterTxService(clientCtx) + app.RegisterTendermintService(clientCtx) + app.RegisterNodeService(clientCtx, svrCfg) + } + + grpcSrv, clientCtx, err := startGrpcServer(ctx, g, svrCfg.GRPC, clientCtx, svrCtx, app) + if err != nil { + return err + } + + cmtCfg := svrCtx.Config + home := cmtCfg.RootDir + + err = startAPIServer(ctx, g, cmtCfg, svrCfg, clientCtx, svrCtx, app, home, grpcSrv, metrics) + if err != nil { + return err + } + g.Go(func() error { if err := svr.Start(); err != nil { svrCtx.Logger.Error("failed to start out-of-process ABCI server", "err", err) diff --git a/simapp/go.mod b/simapp/go.mod index 2f1cc1377b6e..4532b7e167f4 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/simapp go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/client/v2 v2.0.0-20230630094428-02b760776860 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.12.0 @@ -17,7 +17,7 @@ require ( cosmossdk.io/x/feegrant v0.0.0-20230613133644-0a778132a60f cosmossdk.io/x/nft v0.0.0-20230613133644-0a778132a60f cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 - cosmossdk.io/x/tx v0.10.0 + cosmossdk.io/x/tx v0.11.0 cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f github.com/cometbft/cometbft v0.38.0 github.com/cosmos/cosmos-db v1.0.0 @@ -67,7 +67,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/creachadair/atomicfile v0.3.2 // indirect github.com/creachadair/tomledit v0.0.25 // indirect github.com/danieljoos/wincred v1.1.2 // indirect @@ -90,7 +90,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -134,7 +134,7 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -165,8 +165,8 @@ require ( github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -183,8 +183,8 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/grpc v1.58.3 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/grpc v1.59.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/simapp/go.sum b/simapp/go.sum index 511b0cf70672..5d7941a4ee60 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -187,8 +187,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -203,8 +203,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -358,8 +358,8 @@ github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZD github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -492,8 +492,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -767,8 +767,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -1019,10 +1020,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1607,8 +1608,8 @@ google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4Ob google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a h1:a2MQQVoTo96JC9PMGtGBymLp7+/RzpFc2yX/9WfFg1c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1650,8 +1651,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/simapp/gomod2nix.toml b/simapp/gomod2nix.toml index ae686db8f826..6d137d11b4eb 100644 --- a/simapp/gomod2nix.toml +++ b/simapp/gomod2nix.toml @@ -17,8 +17,8 @@ schema = 3 version = "v1.33.0" hash = "sha256-oW2OubL84ZHjw7/XD6Pjl6pdUPkAqtFS2bXQKVUec6A=" [mod."cosmossdk.io/api"] - version = "v0.7.2-0.20230927090904-9dd34510e273" - hash = "sha256-KRosrgOUbZeHDkLcSRLq4e4DHugXynj5vSHNrzGKEqs=" + version = "v0.7.2" + hash = "sha256-iJOdaqOqjXHZtfUOrUxJAYP5bUshIOMMaXcZ5ZFy2ZA=" [mod."cosmossdk.io/collections"] version = "v0.4.0" hash = "sha256-minFyzgO/D+Oda4E3B1qvOAN5qd65SjS6nmjca4cp/8=" @@ -41,8 +41,8 @@ schema = 3 version = "v1.0.0-rc.0" hash = "sha256-DgW4ZrDwmgsPtEXajPyAsrQuPjXekw5PfsYFvA5yuiE=" [mod."cosmossdk.io/x/tx"] - version = "v0.10.0" - hash = "sha256-am/+/mfQR+xqjQSTFh2X/AiC6EQZvZ7te6d8MIwd/EA=" + version = "v0.11.0" + hash = "sha256-8CYRI51ChKRonaK1lWWGGe/pvH1zEmrPzheTdE0C9hc=" [mod."filippo.io/edwards25519"] version = "v1.0.0" hash = "sha256-APnPAcmItvtJ5Zsy863lzR2TjEBF9Y66TY1e4M1ap98=" @@ -135,8 +135,8 @@ schema = 3 version = "v0.10.0" hash = "sha256-KYEv727BO/ht63JO02xiKFGFAddg41Ve9l2vSSZZBq0=" [mod."github.com/cosmos/ledger-cosmos-go"] - version = "v0.13.1" - hash = "sha256-UDRTBG1VPLQOA3tJjfen5tRmIBde7Cqc4UDUPXL3+c4=" + version = "v0.13.2" + hash = "sha256-TMVkC8rKVR7zzXVdcMnnK9FZhcHE1KIfIZ7KGMVqYpg=" [mod."github.com/creachadair/atomicfile"] version = "v0.3.2" hash = "sha256-oklAvdJrNFKNcCHvQdLVrLyLf0LG5ipusTXKSVycc64=" @@ -204,8 +204,8 @@ schema = 3 version = "v1.3.2" hash = "sha256-pogILFrrk+cAtb0ulqn9+gRZJ7sGnnLLdtqITvxvG6c=" [mod."github.com/golang/glog"] - version = "v1.1.0" - hash = "sha256-FgkBzn32nsq5Fpz0KKOrOqKap6pa2A1P3N2C0/Qp820=" + version = "v1.1.2" + hash = "sha256-sxvf1xMel10gNBqyGIFGFcyjupdM+nVMKUQ/lMLh3Ak=" [mod."github.com/golang/groupcache"] version = "v0.0.0-20210331224755-41bb18bfe9da" hash = "sha256-7Gs7CS9gEYZkbu5P4hqPGBpeGZWC64VDwraSKFF+VR0=" @@ -339,8 +339,8 @@ schema = 3 version = "v0.1.13" hash = "sha256-qb3Qbo0CELGRIzvw7NVM1g/aayaz4Tguppk9MD2/OI8=" [mod."github.com/mattn/go-isatty"] - version = "v0.0.19" - hash = "sha256-wYQqGxeqV3Elkmn26Md8mKZ/viw598R4Ych3vtt72YE=" + version = "v0.0.20" + hash = "sha256-qhw9hWtU5wnyFyuMbKx+7RB8ckQaFQ8D+8GKPkN3HHQ=" [mod."github.com/matttproud/golang_protobuf_extensions"] version = "v1.0.4" hash = "sha256-uovu7OycdeZ2oYQ7FhVxLey5ZX3T0FzShaRldndyGvc=" @@ -448,11 +448,11 @@ schema = 3 version = "v0.5.11" hash = "sha256-SUyrjc2wyN3cTGKe5JdBEXjtZC1rJySRxJHVUZ59row=" [mod."github.com/zondax/hid"] - version = "v0.9.1" - hash = "sha256-hSVmN/f/lQHFhF60o6ej78ELC0MMoqQgqIX2hHjdTXg=" + version = "v0.9.2" + hash = "sha256-9h1gEJ/loyaJvu9AsmslztiA8U9ixDTC6TBw9lCU2BE=" [mod."github.com/zondax/ledger-go"] - version = "v0.14.2" - hash = "sha256-3ZSRcr86OpB0ccTkvSLDxs46WaqfyHBScX7vMerSRHE=" + version = "v0.14.3" + hash = "sha256-tldEok5ebZ4R4B7H8dSlYS5oVuLvh89n9wUaVlDjYwg=" [mod."go.etcd.io/bbolt"] version = "v1.3.7" hash = "sha256-poZk8tPLDWwW95oCOkTJcQtEvOJTD9UXAZ2TqGJutwk=" @@ -502,11 +502,11 @@ schema = 3 version = "v0.0.0-20231012201019-e917dd12ba7a" hash = "sha256-2qUA/93JajYpDybsde+BciLncSYO2Qv5Eh+MG06HSfM=" [mod."google.golang.org/genproto/googleapis/rpc"] - version = "v0.0.0-20231012201019-e917dd12ba7a" - hash = "sha256-VAMLHlDPnzbg5bNlNKDQ++pGTMRraIG1Eb5uLPJy+KA=" + version = "v0.0.0-20231016165738-49dd2c1f3d0b" + hash = "sha256-ntiSoQBTSUfcdkolvYVXWD3BgF+0yur6ZqW+bxtxVlY=" [mod."google.golang.org/grpc"] - version = "v1.58.3" - hash = "sha256-YxXO1UAc/+4E0bsSsGSiFNrY3yyR6AIml/1sVY2QJjQ=" + version = "v1.59.0" + hash = "sha256-IcwmXyeroUg742wqU4Zikwxm7y0i7x4axOPdWOGPkzE=" [mod."google.golang.org/protobuf"] version = "v1.31.0" hash = "sha256-UdIk+xRaMfdhVICvKRk1THe3R1VU+lWD8hqoW/y8jT0=" diff --git a/store/go.mod b/store/go.mod index 06ab6c786930..e4fdbeac14a2 100644 --- a/store/go.mod +++ b/store/go.mod @@ -20,7 +20,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/tidwall/btree v1.7.0 golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 ) @@ -54,7 +54,7 @@ require ( github.com/kr/text v0.2.0 // indirect github.com/linxGnu/grocksdb v1.7.16 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/oasisprotocol/curve25519-voi v0.0.0-20220708102147-0a8a51822cae // indirect @@ -74,6 +74,6 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/store/go.sum b/store/go.sum index e545d9b86396..b84306dbde69 100644 --- a/store/go.sum +++ b/store/go.sum @@ -152,8 +152,9 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -327,10 +328,10 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/tests/go.mod b/tests/go.mod index bec6f0a55278..af2949be0cdc 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -3,7 +3,7 @@ module github.com/cosmos/cosmos-sdk/tests go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 @@ -17,7 +17,7 @@ require ( cosmossdk.io/x/nft v0.0.0-20230613133644-0a778132a60f // indirect cosmossdk.io/x/params v0.0.0-00010101000000-000000000000 cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 - cosmossdk.io/x/tx v0.10.0 + cosmossdk.io/x/tx v0.11.0 cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f github.com/cometbft/cometbft v0.38.0 github.com/cosmos/cosmos-db v1.0.0 @@ -28,7 +28,7 @@ require ( github.com/golang/mock v1.6.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 pgregory.net/rapid v1.1.0 @@ -68,7 +68,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -89,7 +89,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -133,7 +133,7 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -167,8 +167,8 @@ require ( github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -185,7 +185,7 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/tests/go.sum b/tests/go.sum index da2fe94c8aa4..58a12b8593e8 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -187,8 +187,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -203,8 +203,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -358,8 +358,8 @@ github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZD github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -490,8 +490,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -766,8 +766,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -1022,10 +1023,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1610,8 +1611,8 @@ google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4Ob google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a h1:a2MQQVoTo96JC9PMGtGBymLp7+/RzpFc2yX/9WfFg1c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1653,8 +1654,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/tests/integration/evidence/keeper/infraction_test.go b/tests/integration/evidence/keeper/infraction_test.go index 120a02b1fdc0..bfc57c6b38b9 100644 --- a/tests/integration/evidence/keeper/infraction_test.go +++ b/tests/integration/evidence/keeper/infraction_test.go @@ -194,7 +194,9 @@ func TestHandleDoubleSign(t *testing.T) { assert.NilError(t, f.slashingKeeper.AddrPubkeyRelation.Set(f.sdkCtx, valpubkey.Address(), valpubkey)) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(valpubkey.Address()), f.sdkCtx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) + consaddrStr, err := f.stakingKeeper.ConsensusAddressCodec().BytesToString(valpubkey.Address()) + assert.NilError(t, err) + info := slashingtypes.NewValidatorSigningInfo(consaddrStr, f.sdkCtx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) err = f.slashingKeeper.ValidatorSigningInfo.Set(f.sdkCtx, sdk.ConsAddress(valpubkey.Address()), info) assert.NilError(t, err) // handle a signature to set signing info diff --git a/tests/integration/slashing/keeper/keeper_test.go b/tests/integration/slashing/keeper/keeper_test.go index 35b0a0cc6113..bd84a99cf854 100644 --- a/tests/integration/slashing/keeper/keeper_test.go +++ b/tests/integration/slashing/keeper/keeper_test.go @@ -120,8 +120,13 @@ func initFixture(tb testing.TB) *fixture { addrDels := simtestutil.AddTestAddrsIncremental(bankKeeper, stakingKeeper, sdkCtx, 6, stakingKeeper.TokensFromConsensusPower(sdkCtx, 200)) valAddrs := simtestutil.ConvertAddrsToValAddrs(addrDels) - info1 := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(addrDels[0]), int64(4), int64(3), time.Unix(2, 0), false, int64(10)) - info2 := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(addrDels[1]), int64(5), int64(4), time.Unix(2, 0), false, int64(10)) + consaddr0, err := stakingKeeper.ConsensusAddressCodec().BytesToString(addrDels[0]) + assert.NilError(tb, err) + consaddr1, err := stakingKeeper.ConsensusAddressCodec().BytesToString(addrDels[1]) + assert.NilError(tb, err) + + info1 := slashingtypes.NewValidatorSigningInfo(consaddr0, int64(4), int64(3), time.Unix(2, 0), false, int64(10)) + info2 := slashingtypes.NewValidatorSigningInfo(consaddr1, int64(5), int64(4), time.Unix(2, 0), false, int64(10)) err = slashingKeeper.ValidatorSigningInfo.Set(sdkCtx, sdk.ConsAddress(addrDels[0]), info1) assert.NilError(tb, err) @@ -234,7 +239,10 @@ func TestHandleNewValidator(t *testing.T) { assert.NilError(t, f.slashingKeeper.AddrPubkeyRelation.Set(f.ctx, pks[0].Address(), pks[0])) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(valpubkey.Address()), f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) + consaddr, err := f.stakingKeeper.ConsensusAddressCodec().BytesToString(valpubkey.Address()) + assert.NilError(t, err) + + info := slashingtypes.NewValidatorSigningInfo(consaddr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) assert.NilError(t, f.slashingKeeper.ValidatorSigningInfo.Set(f.ctx, sdk.ConsAddress(valpubkey.Address()), info)) // Validator created @@ -289,7 +297,10 @@ func TestHandleAlreadyJailed(t *testing.T) { err := f.slashingKeeper.AddrPubkeyRelation.Set(f.ctx, pks[0].Address(), pks[0]) assert.NilError(t, err) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(val.Address()), f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) + consaddr, err := f.stakingKeeper.ConsensusAddressCodec().BytesToString(val.Address()) + assert.NilError(t, err) + + info := slashingtypes.NewValidatorSigningInfo(consaddr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) assert.NilError(t, f.slashingKeeper.ValidatorSigningInfo.Set(f.ctx, sdk.ConsAddress(val.Address()), info)) amt := tstaking.CreateValidatorWithValPower(addr, val, power, true) @@ -363,7 +374,10 @@ func TestValidatorDippingInAndOut(t *testing.T) { assert.NilError(t, f.slashingKeeper.AddrPubkeyRelation.Set(f.ctx, pks[0].Address(), pks[0])) - info := slashingtypes.NewValidatorSigningInfo(consAddr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) + consaddrStr, err := f.stakingKeeper.ConsensusAddressCodec().BytesToString(addr) + assert.NilError(t, err) + + info := slashingtypes.NewValidatorSigningInfo(consaddrStr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) assert.NilError(t, f.slashingKeeper.ValidatorSigningInfo.Set(f.ctx, consAddr, info)) tstaking.CreateValidatorWithValPower(valAddr, val, power, true) @@ -424,7 +438,7 @@ func TestValidatorDippingInAndOut(t *testing.T) { assert.NilError(t, err) tstaking.CheckValidator(valAddr, stakingtypes.Unbonding, true) - info = slashingtypes.NewValidatorSigningInfo(consAddr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) + info = slashingtypes.NewValidatorSigningInfo(consaddrStr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) err = f.slashingKeeper.ValidatorSigningInfo.Set(f.ctx, consAddr, info) assert.NilError(t, err) @@ -439,7 +453,7 @@ func TestValidatorDippingInAndOut(t *testing.T) { height = int64(5000) f.ctx = f.ctx.WithBlockHeight(height) - info = slashingtypes.NewValidatorSigningInfo(consAddr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) + info = slashingtypes.NewValidatorSigningInfo(consaddrStr, f.ctx.BlockHeight(), int64(0), time.Unix(0, 0), false, int64(0)) err = f.slashingKeeper.ValidatorSigningInfo.Set(f.ctx, consAddr, info) assert.NilError(t, err) diff --git a/tests/starship/tests/go.mod b/tests/starship/tests/go.mod index 271da1ed90b3..9e2c20eb9da4 100644 --- a/tests/starship/tests/go.mod +++ b/tests/starship/tests/go.mod @@ -29,7 +29,7 @@ require ( github.com/cosmos/cosmos-db v1.0.0 github.com/cosmos/cosmos-sdk v0.51.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -39,7 +39,7 @@ require ( cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.3 // indirect cloud.google.com/go/storage v1.33.0 // indirect - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 // indirect + cosmossdk.io/api v0.7.2 // indirect cosmossdk.io/client/v2 v2.0.0-20230630094428-02b760776860 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/core v0.12.0 // indirect @@ -51,7 +51,7 @@ require ( cosmossdk.io/x/feegrant v0.0.0-20230613133644-0a778132a60f // indirect cosmossdk.io/x/nft v0.0.0-20230613133644-0a778132a60f // indirect cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect cosmossdk.io/x/upgrade v0.0.0-20230613133644-0a778132a60f // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -82,7 +82,7 @@ require ( github.com/cosmos/gogoproto v1.4.11 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -103,7 +103,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect @@ -148,7 +148,7 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -186,8 +186,8 @@ require ( github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -204,7 +204,7 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/tests/starship/tests/go.sum b/tests/starship/tests/go.sum index df8aa5397941..b8a8e6266c83 100644 --- a/tests/starship/tests/go.sum +++ b/tests/starship/tests/go.sum @@ -187,8 +187,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -203,8 +203,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -356,8 +356,8 @@ github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZD github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -494,8 +494,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -769,8 +769,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -1032,10 +1033,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1605,8 +1606,8 @@ google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4Ob google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a h1:a2MQQVoTo96JC9PMGtGBymLp7+/RzpFc2yX/9WfFg1c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1648,8 +1649,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/tools/confix/go.mod b/tools/confix/go.mod index ce9abdc6a0f5..36b6c01d67e0 100644 --- a/tools/confix/go.mod +++ b/tools/confix/go.mod @@ -14,7 +14,7 @@ require ( ) require ( - cosmossdk.io/api v0.7.1 // indirect + cosmossdk.io/api v0.7.2 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/core v0.11.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect @@ -22,7 +22,7 @@ require ( cosmossdk.io/log v1.2.1 // indirect cosmossdk.io/math v1.1.3-rc.1 // indirect cosmossdk.io/store v1.0.0-rc.0 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -49,7 +49,7 @@ require ( github.com/cosmos/gogoproto v1.4.11 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -70,7 +70,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -104,7 +104,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -135,8 +135,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -145,10 +145,10 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect - google.golang.org/grpc v1.58.3 // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/tools/confix/go.sum b/tools/confix/go.sum index 41410dd0adfb..432e0ecf6c91 100644 --- a/tools/confix/go.sum +++ b/tools/confix/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= @@ -51,8 +51,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -193,8 +193,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -329,8 +329,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -553,8 +553,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -800,10 +801,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1187,12 +1188,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1219,8 +1220,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/tools/cosmovisor/go.mod b/tools/cosmovisor/go.mod index 36e68df0560f..8227404c42fe 100644 --- a/tools/cosmovisor/go.mod +++ b/tools/cosmovisor/go.mod @@ -16,14 +16,14 @@ require ( cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.3 // indirect cloud.google.com/go/storage v1.33.0 // indirect - cosmossdk.io/api v0.7.1 // indirect + cosmossdk.io/api v0.7.2 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/core v0.11.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect cosmossdk.io/errors v1.0.0 // indirect cosmossdk.io/math v1.1.3-rc.1 // indirect cosmossdk.io/store v1.0.0-rc.0 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -53,7 +53,7 @@ require ( github.com/cosmos/gogoproto v1.4.11 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -74,7 +74,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -115,7 +115,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -148,8 +148,8 @@ require ( github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -166,8 +166,8 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/grpc v1.58.3 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/tools/cosmovisor/go.sum b/tools/cosmovisor/go.sum index 1796195467e7..cd249601a9fd 100644 --- a/tools/cosmovisor/go.sum +++ b/tools/cosmovisor/go.sum @@ -187,8 +187,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= @@ -203,8 +203,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= cosmossdk.io/x/upgrade v0.0.0-20230614103911-b3da8bb4e801 h1:U0jO59nMqMh3/19ktMy0gCd050k7svcrGJG9Vdrri20= cosmossdk.io/x/upgrade v0.0.0-20230614103911-b3da8bb4e801/go.mod h1:Nqm1dOl9yTTtG+uibprZTQp50rW+pd+XjAYGVQ5+Ojc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -341,8 +341,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -471,8 +471,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -745,8 +745,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -993,10 +994,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1555,8 +1556,8 @@ google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4Ob google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a h1:a2MQQVoTo96JC9PMGtGBymLp7+/RzpFc2yX/9WfFg1c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1598,8 +1599,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/tools/hubl/go.mod b/tools/hubl/go.mod index 6bdf056f3b27..985c16927c47 100644 --- a/tools/hubl/go.mod +++ b/tools/hubl/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/tools/hubl go 1.21 require ( - cosmossdk.io/api v0.7.1 + cosmossdk.io/api v0.7.2 cosmossdk.io/client/v2 v2.0.0-20230915122801-a0bd4e9fb609 cosmossdk.io/core v0.12.0 cosmossdk.io/errors v1.0.0 @@ -12,7 +12,7 @@ require ( github.com/manifoldco/promptui v0.9.0 github.com/pelletier/go-toml/v2 v2.1.0 github.com/spf13/cobra v1.7.0 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 ) @@ -22,7 +22,7 @@ require ( cosmossdk.io/log v1.2.1 // indirect cosmossdk.io/math v1.1.3-rc.1 // indirect cosmossdk.io/store v1.0.0-rc.0 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect @@ -48,7 +48,7 @@ require ( github.com/cosmos/gogoproto v1.4.11 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.2.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -100,7 +100,7 @@ require ( github.com/linxGnu/grocksdb v1.8.4 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -131,8 +131,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -141,9 +141,9 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/tools/hubl/go.sum b/tools/hubl/go.sum index c2a69513c55b..b0455d71f086 100644 --- a/tools/hubl/go.sum +++ b/tools/hubl/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-20230915122801-a0bd4e9fb609 h1:AVzzK/+uqBtIRbk+h2xzrhy8f2RF2pnERadqlfLSN5s= cosmossdk.io/client/v2 v2.0.0-20230915122801-a0bd4e9fb609/go.mod h1:NwFhO4VEc2VMvxJm2UDlOUSp1ITS2bqn8lekswO9kmI= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= @@ -53,8 +53,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -182,8 +182,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -534,8 +534,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -770,10 +771,10 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1149,12 +1150,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1181,8 +1182,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/accounts/go.mod b/x/accounts/go.mod index 7055eb121c51..30795f2da97a 100644 --- a/x/accounts/go.mod +++ b/x/accounts/go.mod @@ -3,12 +3,12 @@ module cosmossdk.io/x/accounts go 1.21 require ( - cosmossdk.io/api v0.7.1 + cosmossdk.io/api v0.7.2 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.11.0 github.com/cosmos/gogoproto v1.4.11 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 ) @@ -48,9 +48,9 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/x/accounts/go.sum b/x/accounts/go.sum index 73bfb3bdc6f4..81b574c44672 100644 --- a/x/accounts/go.sum +++ b/x/accounts/go.sum @@ -188,14 +188,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/auth/client/cli/tx_sign.go b/x/auth/client/cli/tx_sign.go index 7ba332e35790..ae3d0607ebcf 100644 --- a/x/auth/client/cli/tx_sign.go +++ b/x/auth/client/cli/tx_sign.go @@ -58,11 +58,6 @@ account key. It implies --signature-only. flags.AddTxFlagsToCmd(cmd) - err := cmd.MarkFlagRequired(flags.FlagFrom) - if err != nil { - panic(err) - } - return cmd } @@ -233,7 +228,7 @@ func multisigSign(clientCtx client.Context, txBuilder client.TxBuilder, txFactor txFactory, clientCtx, multisigAddr, - clientCtx.GetFromName(), + clientCtx.FromName, txBuilder, clientCtx.Offline, true, @@ -290,11 +285,6 @@ be generated via the 'multisign' command. cmd.Flags().String(flags.FlagOutputDocument, "", "The document will be written to the given file instead of STDOUT") flags.AddTxFlagsToCmd(cmd) - err := cmd.MarkFlagRequired(flags.FlagFrom) - if err != nil { - panic(err) - } - return cmd } @@ -405,7 +395,7 @@ func signTx(cmd *cobra.Command, clientCtx client.Context, txF tx.Factory, newTx } printSignatureOnly = true } else { - err = authclient.SignTx(txF, clientCtx, clientCtx.GetFromName(), txBuilder, clientCtx.Offline, overwrite) + err = authclient.SignTx(txF, clientCtx, clientCtx.FromName, txBuilder, clientCtx.Offline, overwrite) } if err != nil { return err diff --git a/x/circuit/go.mod b/x/circuit/go.mod index 1f457e113ce8..19ece435ce0d 100644 --- a/x/circuit/go.mod +++ b/x/circuit/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/circuit go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 @@ -15,14 +15,14 @@ require ( github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/stretchr/testify v1.8.4 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 ) require ( cosmossdk.io/log v1.2.1 // indirect cosmossdk.io/math v1.1.3-rc.1 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -46,7 +46,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -67,7 +67,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect @@ -99,7 +99,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -132,8 +132,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -143,8 +143,8 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/x/circuit/go.sum b/x/circuit/go.sum index 0aa30f3fa53f..f1ce1effa540 100644 --- a/x/circuit/go.sum +++ b/x/circuit/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -53,8 +53,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -189,8 +189,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -321,8 +321,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -545,8 +545,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -792,10 +793,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1179,12 +1180,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1211,8 +1212,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/evidence/go.mod b/x/evidence/go.mod index 2e56a58fff78..3c38e9852ac2 100644 --- a/x/evidence/go.mod +++ b/x/evidence/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/evidence go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 @@ -20,13 +20,13 @@ require ( github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 ) require ( - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -50,7 +50,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -71,7 +71,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -102,7 +102,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -134,8 +134,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -145,8 +145,8 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/x/evidence/go.sum b/x/evidence/go.sum index 0aa30f3fa53f..f1ce1effa540 100644 --- a/x/evidence/go.sum +++ b/x/evidence/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -53,8 +53,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -189,8 +189,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -321,8 +321,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -545,8 +545,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -792,10 +793,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1179,12 +1180,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1211,8 +1212,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/feegrant/CHANGELOG.md b/x/feegrant/CHANGELOG.md index 3b671d3bf36d..07efab6565ec 100644 --- a/x/feegrant/CHANGELOG.md +++ b/x/feegrant/CHANGELOG.md @@ -27,6 +27,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features +* [#18047](https://github.com/cosmos/cosmos-sdk/pull/18047) Added a limit of 200 grants pruned per EndBlock and the method PruneAllowances that prunes 75 expired grants on every run. * [#14649](https://github.com/cosmos/cosmos-sdk/pull/14649) The `x/feegrant` module is extracted to have a separate go.mod file which allows it to be a standalone module. ### API Breaking Changes diff --git a/x/feegrant/README.md b/x/feegrant/README.md index 9fcd1e476d6f..07524449a862 100644 --- a/x/feegrant/README.md +++ b/x/feegrant/README.md @@ -206,6 +206,14 @@ The feegrant module emits the following events: | message | granter | {granterAddress} | | message | grantee | {granteeAddress} | +### Prune fee allowances + +| Type | Attribute Key | Attribute Value | +| ------- | ------------- | ---------------- | +| message | action | prune_feegrant | +| message | pruner | {prunerAddress} | + + ## Client ### CLI diff --git a/x/feegrant/events.go b/x/feegrant/events.go index d5f047612370..70cb6990f0cd 100644 --- a/x/feegrant/events.go +++ b/x/feegrant/events.go @@ -6,7 +6,9 @@ const ( EventTypeRevokeFeeGrant = "revoke_feegrant" EventTypeSetFeeGrant = "set_feegrant" EventTypeUpdateFeeGrant = "update_feegrant" + EventTypePruneFeeGrant = "prune_feegrant" AttributeKeyGranter = "granter" AttributeKeyGrantee = "grantee" + AttributeKeyPruner = "pruner" ) diff --git a/x/feegrant/go.mod b/x/feegrant/go.mod index 003760fbc06f..bced5d11c91c 100644 --- a/x/feegrant/go.mod +++ b/x/feegrant/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/feegrant go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/collections v0.4.0 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 @@ -20,14 +20,14 @@ require ( github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 gotest.tools/v3 v3.5.1 ) require ( - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -51,7 +51,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -72,7 +72,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -104,7 +104,7 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -136,8 +136,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -147,8 +147,8 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/x/feegrant/go.sum b/x/feegrant/go.sum index 4f53317f8b2f..f08b29146d35 100644 --- a/x/feegrant/go.sum +++ b/x/feegrant/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -53,8 +53,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -193,8 +193,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -325,8 +325,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -549,8 +549,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -796,10 +797,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1184,12 +1185,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1216,8 +1217,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/feegrant/keeper/keeper.go b/x/feegrant/keeper/keeper.go index fa2bbcc94a27..1bb0c9dd264f 100644 --- a/x/feegrant/keeper/keeper.go +++ b/x/feegrant/keeper/keeper.go @@ -128,7 +128,7 @@ func (k Keeper) GrantAllowance(ctx context.Context, granter, grantee sdk.AccAddr // UpdateAllowance updates the existing grant. func (k Keeper) UpdateAllowance(ctx context.Context, granter, grantee sdk.AccAddress, feeAllowance feegrant.FeeAllowanceI) error { - _, err := k.getGrant(ctx, granter, grantee) + _, err := k.GetAllowance(ctx, granter, grantee) if err != nil { return err } @@ -215,16 +215,6 @@ func (k Keeper) GetAllowance(ctx context.Context, granter, grantee sdk.AccAddres return grant.GetGrant() } -// getGrant returns entire grant between both accounts -func (k Keeper) getGrant(ctx context.Context, granter, grantee sdk.AccAddress) (*feegrant.Grant, error) { - feegrant, err := k.FeeAllowance.Get(ctx, collections.Join(grantee, granter)) - if err != nil { - return nil, err - } - - return &feegrant, nil -} - // IterateAllFeeAllowances iterates over all the grants in the store. // Callback to get all data, returns true to stop, false to keep reading // Calling this without pagination is very expensive and only designed for export genesis @@ -245,12 +235,7 @@ func (k Keeper) IterateAllFeeAllowances(ctx context.Context, cb func(grant feegr // UseGrantedFees will try to pay the given fee from the granter's account as requested by the grantee func (k Keeper) UseGrantedFees(ctx context.Context, granter, grantee sdk.AccAddress, fee sdk.Coins, msgs []sdk.Msg) error { - f, err := k.getGrant(ctx, granter, grantee) - if err != nil { - return err - } - - grant, err := f.GetGrant() + grant, err := k.GetAllowance(ctx, granter, grantee) if err != nil { return err } @@ -334,9 +319,10 @@ func (k Keeper) ExportGenesis(ctx context.Context) (*feegrant.GenesisState, erro } // RemoveExpiredAllowances iterates grantsByExpiryQueue and deletes the expired grants. -func (k Keeper) RemoveExpiredAllowances(ctx context.Context) error { +func (k Keeper) RemoveExpiredAllowances(ctx context.Context, limit int) error { exp := sdk.UnwrapSDKContext(ctx).HeaderInfo().Time rng := collections.NewPrefixUntilTripleRange[time.Time, sdk.AccAddress, sdk.AccAddress](exp) + count := 0 err := k.FeeAllowanceQueue.Walk(ctx, rng, func(key collections.Triple[time.Time, sdk.AccAddress, sdk.AccAddress], value bool) (stop bool, err error) { grantee, granter := key.K2(), key.K3() @@ -349,6 +335,12 @@ func (k Keeper) RemoveExpiredAllowances(ctx context.Context) error { return true, err } + // limit the amount of iterations to avoid taking too much time + count++ + if count == limit { + return true, nil + } + return false, nil }) if err != nil { diff --git a/x/feegrant/keeper/keeper_test.go b/x/feegrant/keeper/keeper_test.go index f043a4df8fb5..272618a7121a 100644 --- a/x/feegrant/keeper/keeper_test.go +++ b/x/feegrant/keeper/keeper_test.go @@ -40,7 +40,7 @@ func TestKeeperTestSuite(t *testing.T) { } func (suite *KeeperTestSuite) SetupTest() { - suite.addrs = simtestutil.CreateIncrementalAccounts(4) + suite.addrs = simtestutil.CreateIncrementalAccounts(20) key := storetypes.NewKVStoreKey(feegrant.StoreKey) testCtx := testutil.DefaultContextWithDB(suite.T(), key, storetypes.NewTransientStoreKey("transient_test")) encCfg := moduletestutil.MakeTestEncodingConfig(module.AppModuleBasic{}) @@ -48,10 +48,9 @@ func (suite *KeeperTestSuite) SetupTest() { // setup gomock and initialize some globally expected executions ctrl := gomock.NewController(suite.T()) suite.accountKeeper = feegranttestutil.NewMockAccountKeeper(ctrl) - suite.accountKeeper.EXPECT().GetAccount(gomock.Any(), suite.addrs[0]).Return(authtypes.NewBaseAccountWithAddress(suite.addrs[0])).AnyTimes() - suite.accountKeeper.EXPECT().GetAccount(gomock.Any(), suite.addrs[1]).Return(authtypes.NewBaseAccountWithAddress(suite.addrs[1])).AnyTimes() - suite.accountKeeper.EXPECT().GetAccount(gomock.Any(), suite.addrs[2]).Return(authtypes.NewBaseAccountWithAddress(suite.addrs[2])).AnyTimes() - suite.accountKeeper.EXPECT().GetAccount(gomock.Any(), suite.addrs[3]).Return(authtypes.NewBaseAccountWithAddress(suite.addrs[3])).AnyTimes() + for i := 0; i < len(suite.addrs); i++ { + suite.accountKeeper.EXPECT().GetAccount(gomock.Any(), suite.addrs[i]).Return(authtypes.NewBaseAccountWithAddress(suite.addrs[i])).AnyTimes() + } ac := codecaddress.NewBech32Codec("cosmos") suite.accountKeeper.EXPECT().AddressCodec().Return(ac).AnyTimes() @@ -416,7 +415,7 @@ func (suite *KeeperTestSuite) TestPruneGrants() { } err := suite.feegrantKeeper.GrantAllowance(suite.ctx, tc.granter, tc.grantee, tc.allowance) suite.NoError(err) - err = suite.feegrantKeeper.RemoveExpiredAllowances(tc.ctx) + err = suite.feegrantKeeper.RemoveExpiredAllowances(tc.ctx, 5) suite.NoError(err) grant, err := suite.feegrantKeeper.GetAllowance(tc.ctx, tc.granter, tc.grantee) diff --git a/x/feegrant/keeper/msg_server.go b/x/feegrant/keeper/msg_server.go index d700d6667cfe..f3c5319123ac 100644 --- a/x/feegrant/keeper/msg_server.go +++ b/x/feegrant/keeper/msg_server.go @@ -7,6 +7,7 @@ import ( errorsmod "cosmossdk.io/errors" "cosmossdk.io/x/feegrant" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -84,3 +85,22 @@ func (k msgServer) RevokeAllowance(ctx context.Context, msg *feegrant.MsgRevokeA return &feegrant.MsgRevokeAllowanceResponse{}, nil } + +// PruneAllowances removes expired allowances from the store. +func (k msgServer) PruneAllowances(ctx context.Context, req *feegrant.MsgPruneAllowances) (*feegrant.MsgPruneAllowancesResponse, error) { + // 75 is an arbitrary value, we can change it later if needed + err := k.RemoveExpiredAllowances(ctx, 75) + if err != nil { + return nil, err + } + + sdkCtx := sdk.UnwrapSDKContext(ctx) + sdkCtx.EventManager().EmitEvent( + sdk.NewEvent( + feegrant.EventTypePruneFeeGrant, + sdk.NewAttribute(feegrant.AttributeKeyPruner, req.Pruner), + ), + ) + + return &feegrant.MsgPruneAllowancesResponse{}, nil +} diff --git a/x/feegrant/keeper/msg_server_test.go b/x/feegrant/keeper/msg_server_test.go index 707b4264d80f..e368df88b66a 100644 --- a/x/feegrant/keeper/msg_server_test.go +++ b/x/feegrant/keeper/msg_server_test.go @@ -5,11 +5,13 @@ import ( "github.com/golang/mock/gomock" + "cosmossdk.io/collections" "cosmossdk.io/core/header" "cosmossdk.io/x/feegrant" codecaddress "github.com/cosmos/cosmos-sdk/codec/address" codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" ) @@ -286,3 +288,67 @@ func (suite *KeeperTestSuite) TestRevokeAllowance() { }) } } + +func (suite *KeeperTestSuite) TestPruneAllowances() { + ctx := suite.ctx.WithHeaderInfo(header.Info{Time: time.Now()}) + oneYear := ctx.HeaderInfo().Time.AddDate(1, 0, 0) + + // We create 76 allowances, all expiring in one year + count := 0 + for i := 0; i < len(suite.encodedAddrs); i++ { + for j := 0; j < len(suite.encodedAddrs); j++ { + if count == 76 { + break + } + if suite.encodedAddrs[i] == suite.encodedAddrs[j] { + continue + } + + any, err := codectypes.NewAnyWithValue(&feegrant.BasicAllowance{ + SpendLimit: suite.atom, + Expiration: &oneYear, + }) + suite.Require().NoError(err) + req := &feegrant.MsgGrantAllowance{ + Granter: suite.encodedAddrs[i], + Grantee: suite.encodedAddrs[j], + Allowance: any, + } + + _, err = suite.msgSrvr.GrantAllowance(ctx, req) + if err != nil { + // do not fail, just try with another pair + continue + } + + count++ + } + } + + // we have 76 allowances + count = 0 + err := suite.feegrantKeeper.FeeAllowance.Walk(ctx, nil, func(key collections.Pair[types.AccAddress, types.AccAddress], value feegrant.Grant) (stop bool, err error) { + count++ + return false, nil + }) + suite.Require().NoError(err) + suite.Require().Equal(76, count) + + // after a year and one day passes, they are all expired + oneYearAndADay := ctx.HeaderInfo().Time.AddDate(1, 0, 1) + ctx = suite.ctx.WithHeaderInfo(header.Info{Time: oneYearAndADay}) + + // we prune them, but currently only 75 will be pruned + _, err = suite.msgSrvr.PruneAllowances(ctx, &feegrant.MsgPruneAllowances{}) + suite.Require().NoError(err) + + // we have 1 allowance left + count = 0 + err = suite.feegrantKeeper.FeeAllowance.Walk(ctx, nil, func(key collections.Pair[types.AccAddress, types.AccAddress], value feegrant.Grant) (stop bool, err error) { + count++ + + return false, nil + }) + suite.Require().NoError(err) + suite.Require().Equal(1, count) +} diff --git a/x/feegrant/module/abci.go b/x/feegrant/module/abci.go index 4dbab056a9a3..6f14eee3137c 100644 --- a/x/feegrant/module/abci.go +++ b/x/feegrant/module/abci.go @@ -1,14 +1,12 @@ package module import ( - "cosmossdk.io/x/feegrant/keeper" + "context" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/x/feegrant/keeper" ) -func EndBlocker(ctx sdk.Context, k keeper.Keeper) { - err := k.RemoveExpiredAllowances(ctx) - if err != nil { - panic(err) - } +func EndBlocker(ctx context.Context, k keeper.Keeper) error { + // 200 is an arbitrary value, we can change it later if needed + return k.RemoveExpiredAllowances(ctx, 200) } diff --git a/x/feegrant/module/abci_test.go b/x/feegrant/module/abci_test.go index ff9c5b0fb4f3..34280ef68a88 100644 --- a/x/feegrant/module/abci_test.go +++ b/x/feegrant/module/abci_test.go @@ -83,7 +83,7 @@ func TestFeegrantPruning(t *testing.T) { feegrant.RegisterQueryServer(queryHelper, feegrantKeeper) queryClient := feegrant.NewQueryClient(queryHelper) - module.EndBlocker(testCtx.Ctx, feegrantKeeper) + require.NoError(t, module.EndBlocker(testCtx.Ctx, feegrantKeeper)) granteeStr, err := ac.BytesToString(grantee) require.NoError(t, err) @@ -95,7 +95,7 @@ func TestFeegrantPruning(t *testing.T) { require.Len(t, res.Allowances, 2) testCtx.Ctx = testCtx.Ctx.WithHeaderInfo(header.Info{Time: now.AddDate(0, 0, 2)}) - module.EndBlocker(testCtx.Ctx, feegrantKeeper) + require.NoError(t, module.EndBlocker(testCtx.Ctx, feegrantKeeper)) res, err = queryClient.Allowances(testCtx.Ctx.Context(), &feegrant.QueryAllowancesRequest{ Grantee: granteeStr, diff --git a/x/feegrant/module/autocli.go b/x/feegrant/module/autocli.go index 3ba095376ab1..818c3be9c3e6 100644 --- a/x/feegrant/module/autocli.go +++ b/x/feegrant/module/autocli.go @@ -63,6 +63,13 @@ You can find the fee-grant of a granter and grantee.`), {ProtoField: "grantee"}, }, }, + { + RpcMethod: "PruneAllowances", + Use: "prune", + Short: "Prune expired allowances", + Long: "Prune up to 75 expired allowances in order to reduce the size of the store when the number of expired allowances is large.", + Example: fmt.Sprintf(`$ %s tx feegrant prune --from [mykey]`, version.AppName), + }, }, EnhanceCustomCommand: true, }, diff --git a/x/feegrant/module/module.go b/x/feegrant/module/module.go index cc3d08cd06b0..97f30b7ef029 100644 --- a/x/feegrant/module/module.go +++ b/x/feegrant/module/module.go @@ -21,7 +21,6 @@ import ( sdkclient "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" ) @@ -160,9 +159,7 @@ func (AppModule) ConsensusVersion() uint64 { return 2 } // EndBlock returns the end blocker for the feegrant module. It returns no validator // updates. func (am AppModule) EndBlock(ctx context.Context) error { - c := sdk.UnwrapSDKContext(ctx) - EndBlocker(c, am.keeper) - return nil + return EndBlocker(ctx, am.keeper) } func init() { diff --git a/x/feegrant/tx.pb.go b/x/feegrant/tx.pb.go index f0dcf66635f2..7646b28741a1 100644 --- a/x/feegrant/tx.pb.go +++ b/x/feegrant/tx.pb.go @@ -225,17 +225,106 @@ func (m *MsgRevokeAllowanceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRevokeAllowanceResponse proto.InternalMessageInfo +// MsgPruneAllowances prunes expired fee allowances. +// +// Since cosmos-sdk 0.50 +type MsgPruneAllowances struct { + // pruner is the address of the user pruning expired allowances. + Pruner string `protobuf:"bytes,1,opt,name=pruner,proto3" json:"pruner,omitempty"` +} + +func (m *MsgPruneAllowances) Reset() { *m = MsgPruneAllowances{} } +func (m *MsgPruneAllowances) String() string { return proto.CompactTextString(m) } +func (*MsgPruneAllowances) ProtoMessage() {} +func (*MsgPruneAllowances) Descriptor() ([]byte, []int) { + return fileDescriptor_dd44ad7946dad783, []int{4} +} +func (m *MsgPruneAllowances) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgPruneAllowances) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgPruneAllowances.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 *MsgPruneAllowances) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgPruneAllowances.Merge(m, src) +} +func (m *MsgPruneAllowances) XXX_Size() int { + return m.Size() +} +func (m *MsgPruneAllowances) XXX_DiscardUnknown() { + xxx_messageInfo_MsgPruneAllowances.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgPruneAllowances proto.InternalMessageInfo + +func (m *MsgPruneAllowances) GetPruner() string { + if m != nil { + return m.Pruner + } + return "" +} + +// MsgPruneAllowancesResponse defines the Msg/PruneAllowancesResponse response type. +// +// Since cosmos-sdk 0.50 +type MsgPruneAllowancesResponse struct { +} + +func (m *MsgPruneAllowancesResponse) Reset() { *m = MsgPruneAllowancesResponse{} } +func (m *MsgPruneAllowancesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgPruneAllowancesResponse) ProtoMessage() {} +func (*MsgPruneAllowancesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_dd44ad7946dad783, []int{5} +} +func (m *MsgPruneAllowancesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgPruneAllowancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgPruneAllowancesResponse.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 *MsgPruneAllowancesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgPruneAllowancesResponse.Merge(m, src) +} +func (m *MsgPruneAllowancesResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgPruneAllowancesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgPruneAllowancesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgPruneAllowancesResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgGrantAllowance)(nil), "cosmos.feegrant.v1beta1.MsgGrantAllowance") proto.RegisterType((*MsgGrantAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse") proto.RegisterType((*MsgRevokeAllowance)(nil), "cosmos.feegrant.v1beta1.MsgRevokeAllowance") proto.RegisterType((*MsgRevokeAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse") + proto.RegisterType((*MsgPruneAllowances)(nil), "cosmos.feegrant.v1beta1.MsgPruneAllowances") + proto.RegisterType((*MsgPruneAllowancesResponse)(nil), "cosmos.feegrant.v1beta1.MsgPruneAllowancesResponse") } func init() { proto.RegisterFile("cosmos/feegrant/v1beta1/tx.proto", fileDescriptor_dd44ad7946dad783) } var fileDescriptor_dd44ad7946dad783 = []byte{ - // 409 bytes of a gzipped FileDescriptorProto + // 455 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x4b, 0x4d, 0x4d, 0x2f, 0x4a, 0xcc, 0x2b, 0xd1, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x2f, 0xa9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x87, 0xa8, @@ -254,14 +343,17 @@ var fileDescriptor_dd44ad7946dad783 = []byte{ 0xb2, 0xf5, 0x31, 0x7c, 0xad, 0x24, 0xcd, 0x25, 0x89, 0x21, 0x18, 0x94, 0x5a, 0x5c, 0x90, 0x9f, 0x57, 0x9c, 0xaa, 0xb4, 0x86, 0x91, 0x4b, 0xc8, 0xb7, 0x38, 0x3d, 0x28, 0xb5, 0x2c, 0x3f, 0x3b, 0x95, 0xee, 0x21, 0x65, 0xa5, 0x87, 0xee, 0x15, 0x59, 0x54, 0xaf, 0xa0, 0xb9, 0x4b, 0x49, 0x86, - 0x4b, 0x0a, 0x53, 0x14, 0xe6, 0x19, 0xa3, 0xcf, 0x8c, 0x5c, 0xcc, 0xbe, 0xc5, 0xe9, 0x42, 0x05, - 0x5c, 0x7c, 0x68, 0x31, 0xaf, 0xa5, 0x87, 0x2b, 0x94, 0x31, 0x82, 0x46, 0xca, 0x88, 0x78, 0xb5, - 0x30, 0x9b, 0x85, 0x8a, 0xb9, 0xf8, 0xd1, 0x83, 0x50, 0x1b, 0x9f, 0x31, 0x68, 0x8a, 0xa5, 0x8c, - 0x49, 0x50, 0x0c, 0xb3, 0x54, 0x8a, 0xb5, 0xe1, 0xf9, 0x06, 0x2d, 0x46, 0x27, 0xc3, 0x13, 0x8f, - 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, - 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x88, 0x82, 0xe6, 0x98, 0xe2, 0x94, 0x6c, 0xbd, 0xcc, - 0x7c, 0xfd, 0x0a, 0x78, 0x56, 0x4d, 0x62, 0x03, 0xa7, 0x42, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x3f, 0x13, 0x6c, 0x2e, 0xc4, 0x03, 0x00, 0x00, + 0x4b, 0x0a, 0x53, 0x14, 0xee, 0x99, 0x60, 0xb0, 0x5f, 0x02, 0x8a, 0x4a, 0xf3, 0x10, 0x92, 0xc5, + 0x42, 0x06, 0x5c, 0x6c, 0x05, 0x20, 0x21, 0xc2, 0x5e, 0x81, 0xaa, 0xb3, 0xe2, 0x06, 0xb9, 0x0a, + 0xca, 0x81, 0x5a, 0x89, 0x66, 0x28, 0xcc, 0x4a, 0xa3, 0x17, 0x4c, 0x5c, 0xcc, 0xbe, 0xc5, 0xe9, + 0x42, 0x05, 0x5c, 0x7c, 0x68, 0x89, 0x4d, 0x4b, 0x0f, 0x57, 0xc4, 0x62, 0xc4, 0x86, 0x94, 0x11, + 0xf1, 0x6a, 0x61, 0x36, 0x0b, 0x15, 0x73, 0xf1, 0xa3, 0xc7, 0x9a, 0x36, 0x3e, 0x63, 0xd0, 0x14, + 0x4b, 0x19, 0x93, 0xa0, 0x18, 0xd9, 0x52, 0xf4, 0xe0, 0xc5, 0x6b, 0x29, 0x9a, 0x62, 0xfc, 0x96, + 0xe2, 0x08, 0x63, 0x29, 0xd6, 0x86, 0xe7, 0x1b, 0xb4, 0x18, 0x9d, 0x0c, 0x4f, 0x3c, 0x92, 0x63, + 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, + 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x0a, 0x5a, 0x32, 0x14, 0xa7, 0x64, 0xeb, 0x65, 0xe6, 0xeb, + 0x57, 0xc0, 0x8b, 0xa4, 0x24, 0x36, 0x70, 0x6e, 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8d, + 0x04, 0xdd, 0xf4, 0xac, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -282,6 +374,10 @@ type MsgClient interface { // RevokeAllowance revokes any fee allowance of granter's account that // has been granted to the grantee. RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, opts ...grpc.CallOption) (*MsgRevokeAllowanceResponse, error) + // PruneAllowances prunes expired fee allowances, currently up to 75 at a time. + // + // Since cosmos-sdk 0.50 + PruneAllowances(ctx context.Context, in *MsgPruneAllowances, opts ...grpc.CallOption) (*MsgPruneAllowancesResponse, error) } type msgClient struct { @@ -310,6 +406,15 @@ func (c *msgClient) RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, return out, nil } +func (c *msgClient) PruneAllowances(ctx context.Context, in *MsgPruneAllowances, opts ...grpc.CallOption) (*MsgPruneAllowancesResponse, error) { + out := new(MsgPruneAllowancesResponse) + err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Msg/PruneAllowances", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // GrantAllowance grants fee allowance to the grantee on the granter's @@ -318,6 +423,10 @@ type MsgServer interface { // RevokeAllowance revokes any fee allowance of granter's account that // has been granted to the grantee. RevokeAllowance(context.Context, *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error) + // PruneAllowances prunes expired fee allowances, currently up to 75 at a time. + // + // Since cosmos-sdk 0.50 + PruneAllowances(context.Context, *MsgPruneAllowances) (*MsgPruneAllowancesResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -330,6 +439,9 @@ func (*UnimplementedMsgServer) GrantAllowance(ctx context.Context, req *MsgGrant func (*UnimplementedMsgServer) RevokeAllowance(ctx context.Context, req *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RevokeAllowance not implemented") } +func (*UnimplementedMsgServer) PruneAllowances(ctx context.Context, req *MsgPruneAllowances) (*MsgPruneAllowancesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PruneAllowances not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -371,6 +483,24 @@ func _Msg_RevokeAllowance_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Msg_PruneAllowances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgPruneAllowances) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).PruneAllowances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cosmos.feegrant.v1beta1.Msg/PruneAllowances", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).PruneAllowances(ctx, req.(*MsgPruneAllowances)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "cosmos.feegrant.v1beta1.Msg", HandlerType: (*MsgServer)(nil), @@ -383,6 +513,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "RevokeAllowance", Handler: _Msg_RevokeAllowance_Handler, }, + { + MethodName: "PruneAllowances", + Handler: _Msg_PruneAllowances_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cosmos/feegrant/v1beta1/tx.proto", @@ -520,6 +654,59 @@ func (m *MsgRevokeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } +func (m *MsgPruneAllowances) 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 *MsgPruneAllowances) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgPruneAllowances) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Pruner) > 0 { + i -= len(m.Pruner) + copy(dAtA[i:], m.Pruner) + i = encodeVarintTx(dAtA, i, uint64(len(m.Pruner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgPruneAllowancesResponse) 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 *MsgPruneAllowancesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgPruneAllowancesResponse) 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 @@ -587,6 +774,28 @@ func (m *MsgRevokeAllowanceResponse) Size() (n int) { return n } +func (m *MsgPruneAllowances) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Pruner) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgPruneAllowancesResponse) 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 } @@ -957,6 +1166,138 @@ func (m *MsgRevokeAllowanceResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgPruneAllowances) 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: MsgPruneAllowances: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgPruneAllowances: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pruner", 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.Pruner = 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 *MsgPruneAllowancesResponse) 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: MsgPruneAllowancesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgPruneAllowancesResponse: 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 diff --git a/x/nft/go.mod b/x/nft/go.mod index a35da5fe986e..00db0738457b 100644 --- a/x/nft/go.mod +++ b/x/nft/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/nft go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/errors v1.0.0 @@ -18,13 +18,13 @@ require ( github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/stretchr/testify v1.8.4 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 ) require ( cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -47,7 +47,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -68,7 +68,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -99,7 +99,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -132,8 +132,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -143,8 +143,8 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/x/nft/go.sum b/x/nft/go.sum index 0aa30f3fa53f..f1ce1effa540 100644 --- a/x/nft/go.sum +++ b/x/nft/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -53,8 +53,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -189,8 +189,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -321,8 +321,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -545,8 +545,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -792,10 +793,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1179,12 +1180,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1211,8 +1212,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/params/go.mod b/x/params/go.mod index aecd6a2fa0e4..669e304c50fd 100644 --- a/x/params/go.mod +++ b/x/params/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/params go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/errors v1.0.0 @@ -20,13 +20,13 @@ require ( github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 ) require ( cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -48,7 +48,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -69,7 +69,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -100,7 +100,7 @@ require ( github.com/linxGnu/grocksdb v1.8.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -132,8 +132,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -143,8 +143,8 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/x/params/go.sum b/x/params/go.sum index 0aa30f3fa53f..f1ce1effa540 100644 --- a/x/params/go.sum +++ b/x/params/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -53,8 +53,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -189,8 +189,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -321,8 +321,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -545,8 +545,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -792,10 +793,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1179,12 +1180,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1211,8 +1212,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/protocolpool/go.mod b/x/protocolpool/go.mod index 15c6850dffeb..b0a26c773d3b 100644 --- a/x/protocolpool/go.mod +++ b/x/protocolpool/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/protocolpool go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/errors v1.0.0 @@ -16,8 +16,8 @@ require ( github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/stretchr/testify v1.8.4 - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 - google.golang.org/grpc v1.58.3 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.59.0 gotest.tools/v3 v3.5.1 ) @@ -25,7 +25,7 @@ require ( cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/math v1.1.3-rc.1 // indirect cosmossdk.io/store v1.0.0-rc.0 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -49,7 +49,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -70,7 +70,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -102,7 +102,7 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect @@ -135,8 +135,8 @@ require ( github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.14.0 // indirect @@ -146,8 +146,8 @@ require ( golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/x/protocolpool/go.sum b/x/protocolpool/go.sum index f469d59e4bd0..44ef26a41f4b 100644 --- a/x/protocolpool/go.sum +++ b/x/protocolpool/go.sum @@ -35,8 +35,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -51,8 +51,8 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -191,8 +191,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -323,8 +323,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -547,8 +547,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -794,10 +795,10 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1182,12 +1183,12 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1214,8 +1215,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/x/slashing/app_test.go b/x/slashing/app_test.go index 9bb25eadf7c7..36c26fadc433 100644 --- a/x/slashing/app_test.go +++ b/x/slashing/app_test.go @@ -12,6 +12,7 @@ import ( "cosmossdk.io/log" "cosmossdk.io/math" + codecaddress "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" "github.com/cosmos/cosmos-sdk/testutil/configurator" @@ -27,8 +28,10 @@ import ( ) var ( - priv1 = secp256k1.GenPrivKey() - addr1 = sdk.AccAddress(priv1.PubKey().Address()) + priv1 = secp256k1.GenPrivKey() + addr1 = sdk.AccAddress(priv1.PubKey().Address()) + addrCodec = codecaddress.NewBech32Codec("cosmos") + valaddrCodec = codecaddress.NewBech32Codec("cosmosvaloper") valKey = ed25519.GenPrivKey() valAddr = sdk.AccAddress(valKey.PubKey().Address()) @@ -40,8 +43,10 @@ func TestSlashingMsgs(t *testing.T) { genCoin := sdk.NewCoin(sdk.DefaultBondDenom, genTokens) bondCoin := sdk.NewCoin(sdk.DefaultBondDenom, bondTokens) + addrStr, err := addrCodec.BytesToString(addr1) + require.NoError(t, err) acc1 := &authtypes.BaseAccount{ - Address: addr1.String(), + Address: addrStr, } accs := []sims.GenesisAccount{{GenesisAccount: acc1, Coins: sdk.Coins{genCoin}}} @@ -79,8 +84,10 @@ func TestSlashingMsgs(t *testing.T) { description := stakingtypes.NewDescription("foo_moniker", "", "", "", "") commission := stakingtypes.NewCommissionRates(math.LegacyZeroDec(), math.LegacyZeroDec(), math.LegacyZeroDec()) + addrStrVal, err := valaddrCodec.BytesToString(addr1) + require.NoError(t, err) createValidatorMsg, err := stakingtypes.NewMsgCreateValidator( - sdk.ValAddress(addr1).String(), valKey.PubKey(), bondCoin, description, commission, math.OneInt(), + addrStrVal, valKey.PubKey(), bondCoin, description, commission, math.OneInt(), ) require.NoError(t, err) @@ -96,10 +103,10 @@ func TestSlashingMsgs(t *testing.T) { validator, err := stakingKeeper.GetValidator(ctxCheck, sdk.ValAddress(addr1)) require.NoError(t, err) - require.Equal(t, sdk.ValAddress(addr1).String(), validator.OperatorAddress) + require.Equal(t, addrStrVal, validator.OperatorAddress) require.Equal(t, stakingtypes.Bonded, validator.Status) require.True(math.IntEq(t, bondTokens, validator.BondedTokens())) - unjailMsg := &types.MsgUnjail{ValidatorAddr: sdk.ValAddress(addr1).String()} + unjailMsg := &types.MsgUnjail{ValidatorAddr: addrStrVal} ctxCheck = app.BaseApp.NewContext(true) _, err = slashingKeeper.ValidatorSigningInfo.Get(ctxCheck, sdk.ConsAddress(valAddr)) diff --git a/x/slashing/keeper/genesis.go b/x/slashing/keeper/genesis.go index 47e518ffaffb..23f0c811b460 100644 --- a/x/slashing/keeper/genesis.go +++ b/x/slashing/keeper/genesis.go @@ -69,7 +69,10 @@ func (keeper Keeper) ExportGenesis(ctx context.Context) (data *types.GenesisStat signingInfos := make([]types.SigningInfo, 0) missedBlocks := make([]types.ValidatorMissedBlocks, 0) err = keeper.ValidatorSigningInfo.Walk(ctx, nil, func(address sdk.ConsAddress, info types.ValidatorSigningInfo) (stop bool, err error) { - bechAddr := address.String() + bechAddr, err := keeper.sk.ConsensusAddressCodec().BytesToString(address) + if err != nil { + panic(err) + } signingInfos = append(signingInfos, types.SigningInfo{ Address: bechAddr, ValidatorSigningInfo: info, diff --git a/x/slashing/keeper/genesis_test.go b/x/slashing/keeper/genesis_test.go index 43eba6a8df4a..a5fc911a4a3d 100644 --- a/x/slashing/keeper/genesis_test.go +++ b/x/slashing/keeper/genesis_test.go @@ -17,10 +17,14 @@ func (s *KeeperTestSuite) TestExportAndInitGenesis() { s.Require().NoError(err) consAddr1 := sdk.ConsAddress(([]byte("addr1_______________"))) consAddr2 := sdk.ConsAddress(([]byte("addr2_______________"))) + consStr1, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(consAddr1) + require.NoError(err) + consStr2, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(consAddr2) + require.NoError(err) - info1 := types.NewValidatorSigningInfo(consAddr1, int64(4), int64(3), + info1 := types.NewValidatorSigningInfo(consStr1, int64(4), int64(3), time.Now().UTC().Add(100000000000), false, int64(10)) - info2 := types.NewValidatorSigningInfo(consAddr2, int64(5), int64(4), + info2 := types.NewValidatorSigningInfo(consStr2, int64(5), int64(4), time.Now().UTC().Add(10000000000), false, int64(10)) s.Require().NoError(keeper.ValidatorSigningInfo.Set(ctx, consAddr1, info1)) diff --git a/x/slashing/keeper/grpc_query_test.go b/x/slashing/keeper/grpc_query_test.go index cb370d2ea976..930817fa3d1a 100644 --- a/x/slashing/keeper/grpc_query_test.go +++ b/x/slashing/keeper/grpc_query_test.go @@ -29,8 +29,11 @@ func (s *KeeperTestSuite) TestGRPCSigningInfo() { require.ErrorContains(err, "invalid request") require.Nil(infoResp) + consStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(consAddr) + require.NoError(err) + signingInfo := slashingtypes.NewValidatorSigningInfo( - consAddr, + consStr, 0, int64(0), time.Unix(2, 0), @@ -42,8 +45,10 @@ func (s *KeeperTestSuite) TestGRPCSigningInfo() { info, err := keeper.ValidatorSigningInfo.Get(ctx, consAddr) require.NoError(err) + consAddrStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(consAddr) + require.NoError(err) infoResp, err = queryClient.SigningInfo(gocontext.Background(), - &slashingtypes.QuerySigningInfoRequest{ConsAddress: consAddr.String()}) + &slashingtypes.QuerySigningInfoRequest{ConsAddress: consAddrStr}) require.NoError(err) require.Equal(info, infoResp.ValSigningInfo) } @@ -54,9 +59,11 @@ func (s *KeeperTestSuite) TestGRPCSigningInfos() { // set two validator signing information consAddr1 := sdk.ConsAddress(sdk.AccAddress([]byte("addr1_______________"))) + consStr1, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(consAddr1) + require.NoError(err) consAddr2 := sdk.ConsAddress(sdk.AccAddress([]byte("addr2_______________"))) signingInfo := slashingtypes.NewValidatorSigningInfo( - consAddr1, + consStr1, 0, int64(0), time.Unix(2, 0), @@ -69,7 +76,7 @@ func (s *KeeperTestSuite) TestGRPCSigningInfos() { require.NoError(keeper.ValidatorSigningInfo.Set(ctx, consAddr2, signingInfo)) var signingInfos []slashingtypes.ValidatorSigningInfo - err := keeper.ValidatorSigningInfo.Walk(ctx, nil, func(consAddr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool, err error) { + err = keeper.ValidatorSigningInfo.Walk(ctx, nil, func(consAddr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool, err error) { signingInfos = append(signingInfos, info) return false, nil }) diff --git a/x/slashing/keeper/hooks.go b/x/slashing/keeper/hooks.go index 595ffbf78d72..d03a64665288 100644 --- a/x/slashing/keeper/hooks.go +++ b/x/slashing/keeper/hooks.go @@ -31,8 +31,12 @@ func (h Hooks) AfterValidatorBonded(ctx context.Context, consAddr sdk.ConsAddres if err == nil { signingInfo.StartHeight = sdkCtx.BlockHeight() } else { + consStr, err := h.k.sk.ConsensusAddressCodec().BytesToString(consAddr) + if err != nil { + return err + } signingInfo = types.NewValidatorSigningInfo( - consAddr, + consStr, sdkCtx.BlockHeight(), 0, time.Unix(0, 0), diff --git a/x/slashing/keeper/hooks_test.go b/x/slashing/keeper/hooks_test.go index 1ccdddcb2c06..21531a73bb3f 100644 --- a/x/slashing/keeper/hooks_test.go +++ b/x/slashing/keeper/hooks_test.go @@ -24,7 +24,9 @@ func (s *KeeperTestSuite) TestAfterValidatorCreatedOrRemoved() { _, pubKey, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) - validator, err := stakingtypes.NewValidator(sdk.ValAddress(addr).String(), pubKey, stakingtypes.Description{}) + addStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + require.NoError(err) + validator, err := stakingtypes.NewValidator(addStr, pubKey, stakingtypes.Description{}) require.NoError(err) s.stakingKeeper.EXPECT().Validator(ctx, valAddr).Return(validator, nil) diff --git a/x/slashing/keeper/infractions.go b/x/slashing/keeper/infractions.go index fef8c0b70fdd..41d4cf72fbde 100644 --- a/x/slashing/keeper/infractions.go +++ b/x/slashing/keeper/infractions.go @@ -87,11 +87,16 @@ func (k Keeper) HandleValidatorSignature(ctx context.Context, addr cryptotypes.A return err } + consStr, err := k.sk.ConsensusAddressCodec().BytesToString(consAddr) + if err != nil { + return err + } + if missed { sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeLiveness, - sdk.NewAttribute(types.AttributeKeyAddress, consAddr.String()), + sdk.NewAttribute(types.AttributeKeyAddress, consStr), sdk.NewAttribute(types.AttributeKeyMissedBlocks, fmt.Sprintf("%d", signInfo.MissedBlocksCounter)), sdk.NewAttribute(types.AttributeKeyHeight, fmt.Sprintf("%d", height)), ), @@ -100,7 +105,7 @@ func (k Keeper) HandleValidatorSignature(ctx context.Context, addr cryptotypes.A logger.Debug( "absent validator", "height", height, - "validator", consAddr.String(), + "validator", consStr, "missed", signInfo.MissedBlocksCounter, "threshold", minSignedPerWindow, ) @@ -137,10 +142,10 @@ func (k Keeper) HandleValidatorSignature(ctx context.Context, addr cryptotypes.A sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeSlash, - sdk.NewAttribute(types.AttributeKeyAddress, consAddr.String()), + sdk.NewAttribute(types.AttributeKeyAddress, consStr), sdk.NewAttribute(types.AttributeKeyPower, fmt.Sprintf("%d", power)), sdk.NewAttribute(types.AttributeKeyReason, types.AttributeValueMissingSignature), - sdk.NewAttribute(types.AttributeKeyJailed, consAddr.String()), + sdk.NewAttribute(types.AttributeKeyJailed, consStr), sdk.NewAttribute(types.AttributeKeyBurnedCoins, coinsBurned.String()), ), ) @@ -166,7 +171,7 @@ func (k Keeper) HandleValidatorSignature(ctx context.Context, addr cryptotypes.A logger.Info( "slashing and jailing validator due to liveness fault", "height", height, - "validator", consAddr.String(), + "validator", consStr, "min_height", minHeight, "threshold", minSignedPerWindow, "slashed", slashFractionDowntime.String(), @@ -176,7 +181,7 @@ func (k Keeper) HandleValidatorSignature(ctx context.Context, addr cryptotypes.A // validator was (a) not found or (b) already jailed so we do not slash logger.Info( "validator would have been slashed for downtime, but was either not found in store or already jailed", - "validator", consAddr.String(), + "validator", consStr, ) } } diff --git a/x/slashing/keeper/keeper.go b/x/slashing/keeper/keeper.go index df4619486242..ca4d7f918bc4 100644 --- a/x/slashing/keeper/keeper.go +++ b/x/slashing/keeper/keeper.go @@ -115,11 +115,16 @@ func (k Keeper) SlashWithInfractionReason(ctx context.Context, consAddr sdk.Cons reasonAttr = sdk.NewAttribute(types.AttributeKeyReason, types.AttributeValueMissingSignature) } + consStr, err := k.sk.ConsensusAddressCodec().BytesToString(consAddr) + if err != nil { + return err + } + sdkCtx := sdk.UnwrapSDKContext(ctx) sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeSlash, - sdk.NewAttribute(types.AttributeKeyAddress, consAddr.String()), + sdk.NewAttribute(types.AttributeKeyAddress, consStr), sdk.NewAttribute(types.AttributeKeyPower, fmt.Sprintf("%d", power)), reasonAttr, sdk.NewAttribute(types.AttributeKeyBurnedCoins, coinsBurned.String()), @@ -136,10 +141,15 @@ func (k Keeper) Jail(ctx context.Context, consAddr sdk.ConsAddress) error { if err != nil { return err } + consStr, err := k.sk.ConsensusAddressCodec().BytesToString(consAddr) + if err != nil { + return err + } + sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeSlash, - sdk.NewAttribute(types.AttributeKeyJailed, consAddr.String()), + sdk.NewAttribute(types.AttributeKeyJailed, consStr), ), ) return nil diff --git a/x/slashing/keeper/keeper_test.go b/x/slashing/keeper/keeper_test.go index 04dc324c1f07..450defb87ba0 100644 --- a/x/slashing/keeper/keeper_test.go +++ b/x/slashing/keeper/keeper_test.go @@ -55,16 +55,19 @@ func (s *KeeperTestSuite) SetupTest() { s.stakingKeeper.EXPECT().ValidatorAddressCodec().Return(address.NewBech32Codec("cosmosvaloper")).AnyTimes() s.stakingKeeper.EXPECT().ConsensusAddressCodec().Return(address.NewBech32Codec("cosmosvalcons")).AnyTimes() + authStr, err := address.NewBech32Codec("cosmos").BytesToString(authtypes.NewModuleAddress(govtypes.ModuleName)) + s.Require().NoError(err) + s.ctx = ctx s.slashingKeeper = slashingkeeper.NewKeeper( encCfg.Codec, encCfg.Amino, storeService, s.stakingKeeper, - authtypes.NewModuleAddress(govtypes.ModuleName).String(), + authStr, ) // set test params - err := s.slashingKeeper.Params.Set(ctx, slashingtestutil.TestParams()) + err = s.slashingKeeper.Params.Set(ctx, slashingtestutil.TestParams()) s.Require().NoError(err) slashingtypes.RegisterInterfaces(encCfg.InterfaceRegistry) queryHelper := baseapp.NewQueryServerTestHelper(ctx, encCfg.InterfaceRegistry) diff --git a/x/slashing/keeper/msg_server_test.go b/x/slashing/keeper/msg_server_test.go index f647691da30f..113ca21a23ec 100644 --- a/x/slashing/keeper/msg_server_test.go +++ b/x/slashing/keeper/msg_server_test.go @@ -5,12 +5,15 @@ import ( sdkmath "cosmossdk.io/math" + addresscodec "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/testutil/testdata" sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" "github.com/cosmos/cosmos-sdk/x/staking/types" ) +var ac = addresscodec.NewBech32Codec("cosmos") + func (s *KeeperTestSuite) TestUpdateParams() { require := s.Require() @@ -167,14 +170,17 @@ func (s *KeeperTestSuite) TestUnjail() { malleate: func() *slashingtypes.MsgUnjail { _, pubKey, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) - val, err := types.NewValidator(valAddr.String(), pubKey, types.Description{Moniker: "test"}) + valStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + s.Require().NoError(err) + + val, err := types.NewValidator(valStr, pubKey, types.Description{Moniker: "test"}) s.Require().NoError(err) s.stakingKeeper.EXPECT().Validator(s.ctx, valAddr).Return(val, nil) s.stakingKeeper.EXPECT().Delegation(s.ctx, addr, valAddr).Return(nil, nil) return &slashingtypes.MsgUnjail{ - ValidatorAddr: sdk.ValAddress(addr).String(), + ValidatorAddr: valStr, } }, expErr: true, @@ -185,11 +191,12 @@ func (s *KeeperTestSuite) TestUnjail() { malleate: func() *slashingtypes.MsgUnjail { _, _, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) - + valStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + s.Require().NoError(err) s.stakingKeeper.EXPECT().Validator(s.ctx, valAddr).Return(nil, nil) return &slashingtypes.MsgUnjail{ - ValidatorAddr: valAddr.String(), + ValidatorAddr: valStr, } }, expErr: true, @@ -200,25 +207,31 @@ func (s *KeeperTestSuite) TestUnjail() { malleate: func() *slashingtypes.MsgUnjail { _, pubKey, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) + valStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + s.Require().NoError(err) + addrStr, err := ac.BytesToString(addr) + s.Require().NoError(err) + consStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(addr) + s.Require().NoError(err) - val, err := types.NewValidator(valAddr.String(), pubKey, types.Description{Moniker: "test"}) + val, err := types.NewValidator(valStr, pubKey, types.Description{Moniker: "test"}) val.Tokens = sdkmath.NewInt(1000) val.DelegatorShares = sdkmath.LegacyNewDec(1) val.Jailed = false s.Require().NoError(err) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(addr), int64(4), int64(3), + info := slashingtypes.NewValidatorSigningInfo(consStr, int64(4), int64(3), time.Unix(2, 0), false, int64(10)) s.Require().NoError(s.slashingKeeper.ValidatorSigningInfo.Set(s.ctx, sdk.ConsAddress(addr), info)) s.stakingKeeper.EXPECT().Validator(s.ctx, valAddr).Return(val, nil) - del := types.NewDelegation(addr.String(), valAddr.String(), sdkmath.LegacyNewDec(100)) + del := types.NewDelegation(addrStr, valStr, sdkmath.LegacyNewDec(100)) s.stakingKeeper.EXPECT().Delegation(s.ctx, addr, valAddr).Return(del, nil) return &slashingtypes.MsgUnjail{ - ValidatorAddr: sdk.ValAddress(addr).String(), + ValidatorAddr: valStr, } }, expErr: true, @@ -229,25 +242,31 @@ func (s *KeeperTestSuite) TestUnjail() { malleate: func() *slashingtypes.MsgUnjail { _, pubKey, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) + valStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + s.Require().NoError(err) + addrStr, err := ac.BytesToString(addr) + s.Require().NoError(err) + consStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(addr) + s.Require().NoError(err) - val, err := types.NewValidator(valAddr.String(), pubKey, types.Description{Moniker: "test"}) + val, err := types.NewValidator(valStr, pubKey, types.Description{Moniker: "test"}) val.Tokens = sdkmath.NewInt(1000) val.DelegatorShares = sdkmath.LegacyNewDec(1) val.Jailed = true s.Require().NoError(err) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(addr), int64(4), int64(3), + info := slashingtypes.NewValidatorSigningInfo(consStr, int64(4), int64(3), time.Unix(2, 0), true, int64(10)) s.Require().NoError(s.slashingKeeper.ValidatorSigningInfo.Set(s.ctx, sdk.ConsAddress(addr), info)) s.stakingKeeper.EXPECT().Validator(s.ctx, valAddr).Return(val, nil) - del := types.NewDelegation(addr.String(), valAddr.String(), sdkmath.LegacyNewDec(100)) + del := types.NewDelegation(addrStr, valStr, sdkmath.LegacyNewDec(100)) s.stakingKeeper.EXPECT().Delegation(s.ctx, addr, valAddr).Return(del, nil) return &slashingtypes.MsgUnjail{ - ValidatorAddr: sdk.ValAddress(addr).String(), + ValidatorAddr: valStr, } }, expErr: true, @@ -258,25 +277,31 @@ func (s *KeeperTestSuite) TestUnjail() { malleate: func() *slashingtypes.MsgUnjail { _, pubKey, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) + valStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + s.Require().NoError(err) + consStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(addr) + s.Require().NoError(err) + addrStr, err := ac.BytesToString(addr) + s.Require().NoError(err) - val, err := types.NewValidator(valAddr.String(), pubKey, types.Description{Moniker: "test"}) + val, err := types.NewValidator(valStr, pubKey, types.Description{Moniker: "test"}) val.Tokens = sdkmath.NewInt(1000) val.DelegatorShares = sdkmath.LegacyNewDec(1) val.Jailed = true s.Require().NoError(err) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(addr), int64(4), int64(3), + info := slashingtypes.NewValidatorSigningInfo(consStr, int64(4), int64(3), s.ctx.HeaderInfo().Time.AddDate(0, 0, 1), false, int64(10)) s.Require().NoError(s.slashingKeeper.ValidatorSigningInfo.Set(s.ctx, sdk.ConsAddress(addr), info)) s.stakingKeeper.EXPECT().Validator(s.ctx, valAddr).Return(val, nil) - del := types.NewDelegation(addr.String(), valAddr.String(), sdkmath.LegacyNewDec(10000)) + del := types.NewDelegation(addrStr, valStr, sdkmath.LegacyNewDec(10000)) s.stakingKeeper.EXPECT().Delegation(s.ctx, addr, valAddr).Return(del, nil) return &slashingtypes.MsgUnjail{ - ValidatorAddr: sdk.ValAddress(addr).String(), + ValidatorAddr: valStr, } }, expErr: true, @@ -287,26 +312,32 @@ func (s *KeeperTestSuite) TestUnjail() { malleate: func() *slashingtypes.MsgUnjail { _, pubKey, addr := testdata.KeyTestPubAddr() valAddr := sdk.ValAddress(addr) + valStr, err := s.stakingKeeper.ValidatorAddressCodec().BytesToString(addr) + s.Require().NoError(err) + addrStr, err := ac.BytesToString(addr) + s.Require().NoError(err) + consStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(addr) + s.Require().NoError(err) - val, err := types.NewValidator(valAddr.String(), pubKey, types.Description{Moniker: "test"}) + val, err := types.NewValidator(valStr, pubKey, types.Description{Moniker: "test"}) val.Tokens = sdkmath.NewInt(1000) val.DelegatorShares = sdkmath.LegacyNewDec(1) val.Jailed = true s.Require().NoError(err) - info := slashingtypes.NewValidatorSigningInfo(sdk.ConsAddress(addr), int64(4), int64(3), + info := slashingtypes.NewValidatorSigningInfo(consStr, int64(4), int64(3), time.Unix(2, 0), false, int64(10)) s.Require().NoError(s.slashingKeeper.ValidatorSigningInfo.Set(s.ctx, sdk.ConsAddress(addr), info)) s.stakingKeeper.EXPECT().Validator(s.ctx, valAddr).Return(val, nil) - del := types.NewDelegation(addr.String(), valAddr.String(), sdkmath.LegacyNewDec(100)) + del := types.NewDelegation(addrStr, valStr, sdkmath.LegacyNewDec(100)) s.stakingKeeper.EXPECT().Delegation(s.ctx, addr, valAddr).Return(del, nil) s.stakingKeeper.EXPECT().Unjail(s.ctx, sdk.ConsAddress(addr)).Return(nil).AnyTimes() return &slashingtypes.MsgUnjail{ - ValidatorAddr: sdk.ValAddress(addr).String(), + ValidatorAddr: valStr, } }, expErr: false, diff --git a/x/slashing/keeper/signing_info.go b/x/slashing/keeper/signing_info.go index af46ea446a71..47654a24b573 100644 --- a/x/slashing/keeper/signing_info.go +++ b/x/slashing/keeper/signing_info.go @@ -62,11 +62,7 @@ func (k Keeper) IsTombstoned(ctx context.Context, consAddr sdk.ConsAddress) bool // getMissedBlockBitmapChunk gets the bitmap chunk at the given chunk index for // a validator's missed block signing window. func (k Keeper) getMissedBlockBitmapChunk(ctx context.Context, addr sdk.ConsAddress, chunkIndex int64) ([]byte, error) { - consAddr, err := k.sk.ConsensusAddressCodec().StringToBytes(addr.String()) - if err != nil { - return nil, err - } - chunk, err := k.ValidatorMissedBlockBitmap.Get(ctx, collections.Join(consAddr, uint64(chunkIndex))) + chunk, err := k.ValidatorMissedBlockBitmap.Get(ctx, collections.Join(addr.Bytes(), uint64(chunkIndex))) if err != nil && !errors.Is(err, collections.ErrNotFound) { return nil, err } @@ -76,11 +72,7 @@ func (k Keeper) getMissedBlockBitmapChunk(ctx context.Context, addr sdk.ConsAddr // SetMissedBlockBitmapChunk sets the bitmap chunk at the given chunk index for // a validator's missed block signing window. func (k Keeper) SetMissedBlockBitmapChunk(ctx context.Context, addr sdk.ConsAddress, chunkIndex int64, chunk []byte) error { - consAddr, err := k.sk.ConsensusAddressCodec().StringToBytes(addr.String()) - if err != nil { - return err - } - return k.ValidatorMissedBlockBitmap.Set(ctx, collections.Join(consAddr, uint64(chunkIndex)), chunk) + return k.ValidatorMissedBlockBitmap.Set(ctx, collections.Join(addr.Bytes(), uint64(chunkIndex)), chunk) } // GetMissedBlockBitmapValue returns true if a validator missed signing a block @@ -152,12 +144,8 @@ func (k Keeper) SetMissedBlockBitmapValue(ctx context.Context, addr sdk.ConsAddr // DeleteMissedBlockBitmap removes a validator's missed block bitmap from state. func (k Keeper) DeleteMissedBlockBitmap(ctx context.Context, addr sdk.ConsAddress) error { - consAddr, err := k.sk.ConsensusAddressCodec().StringToBytes(addr.String()) - if err != nil { - return err - } - rng := collections.NewPrefixedPairRange[[]byte, uint64](consAddr) - err = k.ValidatorMissedBlockBitmap.Walk(ctx, rng, func(key collections.Pair[[]byte, uint64], value []byte) (bool, error) { + rng := collections.NewPrefixedPairRange[[]byte, uint64](addr.Bytes()) + err := k.ValidatorMissedBlockBitmap.Walk(ctx, rng, func(key collections.Pair[[]byte, uint64], value []byte) (bool, error) { err := k.ValidatorMissedBlockBitmap.Remove(ctx, key) if err != nil { return true, err @@ -178,13 +166,9 @@ func (k Keeper) DeleteMissedBlockBitmap(ctx context.Context, addr sdk.ConsAddres // Note: A callback will only be executed over all bitmap chunks that exist in // state. func (k Keeper) IterateMissedBlockBitmap(ctx context.Context, addr sdk.ConsAddress, cb func(index int64, missed bool) (stop bool)) error { - consAddr, err := k.sk.ConsensusAddressCodec().StringToBytes(addr.String()) - if err != nil { - return err - } var index int64 - rng := collections.NewPrefixedPairRange[[]byte, uint64](consAddr) - err = k.ValidatorMissedBlockBitmap.Walk(ctx, rng, func(key collections.Pair[[]byte, uint64], value []byte) (bool, error) { + rng := collections.NewPrefixedPairRange[[]byte, uint64](addr.Bytes()) + err := k.ValidatorMissedBlockBitmap.Walk(ctx, rng, func(key collections.Pair[[]byte, uint64], value []byte) (bool, error) { bs := bitset.New(uint(types.MissedBlockBitmapChunkSize)) if err := bs.UnmarshalBinary(value); err != nil { diff --git a/x/slashing/keeper/signing_info_test.go b/x/slashing/keeper/signing_info_test.go index fa696b9b33ad..d3c2efa85f66 100644 --- a/x/slashing/keeper/signing_info_test.go +++ b/x/slashing/keeper/signing_info_test.go @@ -12,8 +12,11 @@ func (s *KeeperTestSuite) TestValidatorSigningInfo() { ctx, keeper := s.ctx, s.slashingKeeper require := s.Require() + consStr, err := s.stakingKeeper.ConsensusAddressCodec().BytesToString(consAddr) + require.NoError(err) + signingInfo := slashingtypes.NewValidatorSigningInfo( - consAddr, + consStr, ctx.BlockHeight(), int64(3), time.Unix(2, 0), diff --git a/x/slashing/module.go b/x/slashing/module.go index e615cbe64c51..4bc2075c4b49 100644 --- a/x/slashing/module.go +++ b/x/slashing/module.go @@ -223,7 +223,12 @@ func ProvideModule(in ModuleInputs) ModuleOutputs { authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Authority) } - k := keeper.NewKeeper(in.Cdc, in.LegacyAmino, in.StoreService, in.StakingKeeper, authority.String()) + authStr, err := in.AccountKeeper.AddressCodec().BytesToString(authority) + if err != nil { + panic(fmt.Errorf("unable to decode authority in slashing: %w", err)) + } + + k := keeper.NewKeeper(in.Cdc, in.LegacyAmino, in.StoreService, in.StakingKeeper, authStr) m := NewAppModule(in.Cdc, k, in.AccountKeeper, in.BankKeeper, in.StakingKeeper, in.Registry) return ModuleOutputs{ Keeper: k, diff --git a/x/slashing/simulation/decoder_test.go b/x/slashing/simulation/decoder_test.go index d234377677b2..828df1379ba0 100644 --- a/x/slashing/simulation/decoder_test.go +++ b/x/slashing/simulation/decoder_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/require" + addresscodec "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/kv" @@ -26,7 +27,10 @@ func TestDecodeStore(t *testing.T) { cdc := encodingConfig.Codec dec := simulation.NewDecodeStore(cdc) - info := types.NewValidatorSigningInfo(consAddr1, 0, 1, time.Now().UTC(), false, 0) + consAddrStr1, err := addresscodec.NewBech32Codec("cosmosvalcons").BytesToString(consAddr1) + require.NoError(t, err) + + info := types.NewValidatorSigningInfo(consAddrStr1, 0, 1, time.Now().UTC(), false, 0) kvPairs := kv.Pairs{ Pairs: []kv.Pair{ diff --git a/x/slashing/simulation/operations_test.go b/x/slashing/simulation/operations_test.go index 3d3a3dbbdee0..8437dee66a09 100644 --- a/x/slashing/simulation/operations_test.go +++ b/x/slashing/simulation/operations_test.go @@ -166,7 +166,9 @@ func (suite *SimTestSuite) TestSimulateMsgUnjail() { val0ConsAddress, err := validator0.GetConsAddr() suite.Require().NoError(err) - info := types.NewValidatorSigningInfo(val0ConsAddress, int64(4), int64(3), + val0ConsAddressStr, err := suite.stakingKeeper.ConsensusAddressCodec().BytesToString(val0ConsAddress) + suite.Require().NoError(err) + info := types.NewValidatorSigningInfo(val0ConsAddressStr, int64(4), int64(3), time.Unix(2, 0), false, int64(10)) err = suite.slashingKeeper.ValidatorSigningInfo.Set(ctx, val0ConsAddress, info) suite.Require().NoError(err) diff --git a/x/slashing/types/expected_keepers.go b/x/slashing/types/expected_keepers.go index 2760c0639cf9..5f18c766a6d3 100644 --- a/x/slashing/types/expected_keepers.go +++ b/x/slashing/types/expected_keepers.go @@ -13,6 +13,7 @@ import ( // AccountKeeper expected account keeper type AccountKeeper interface { + AddressCodec() address.Codec GetAccount(ctx context.Context, addr sdk.AccAddress) sdk.AccountI IterateAccounts(ctx context.Context, process func(sdk.AccountI) (stop bool)) } diff --git a/x/slashing/types/msg_test.go b/x/slashing/types/msg_test.go index 6ccf68376943..d8cf845b1ae6 100644 --- a/x/slashing/types/msg_test.go +++ b/x/slashing/types/msg_test.go @@ -6,13 +6,16 @@ import ( "github.com/stretchr/testify/require" "github.com/cosmos/cosmos-sdk/codec" + addresscodec "github.com/cosmos/cosmos-sdk/codec/address" "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" ) func TestMsgUnjailGetSignBytes(t *testing.T) { addr := sdk.AccAddress("abcd") - msg := NewMsgUnjail(sdk.ValAddress(addr).String()) + valAddrStr, err := addresscodec.NewBech32Codec("cosmosvaloper").BytesToString(addr) + require.NoError(t, err) + msg := NewMsgUnjail(valAddrStr) pc := codec.NewProtoCodec(types.NewInterfaceRegistry()) bytes, err := pc.MarshalAminoJSON(msg) require.NoError(t, err) diff --git a/x/slashing/types/signing_info.go b/x/slashing/types/signing_info.go index 18443311aaa0..8fa00aa96bf1 100644 --- a/x/slashing/types/signing_info.go +++ b/x/slashing/types/signing_info.go @@ -2,17 +2,15 @@ package types import ( "time" - - sdk "github.com/cosmos/cosmos-sdk/types" ) // NewValidatorSigningInfo creates a new ValidatorSigningInfo instance func NewValidatorSigningInfo( - consAddr sdk.ConsAddress, startHeight, indexOffset int64, + consAddr string, startHeight, indexOffset int64, jailedUntil time.Time, tombstoned bool, missedBlocksCounter int64, ) ValidatorSigningInfo { return ValidatorSigningInfo{ - Address: consAddr.String(), + Address: consAddr, StartHeight: startHeight, IndexOffset: indexOffset, JailedUntil: jailedUntil, diff --git a/x/staking/client/cli/tx.go b/x/staking/client/cli/tx.go index edfee3b83468..090d88f37b65 100644 --- a/x/staking/client/cli/tx.go +++ b/x/staking/client/cli/tx.go @@ -109,8 +109,6 @@ where we can get the pubkey using "%s tendermint show-validator" cmd.Flags().String(FlagNodeID, "", "The node's ID") flags.AddTxFlagsToCmd(cmd) - _ = cmd.MarkFlagRequired(flags.FlagFrom) - return cmd } diff --git a/x/staking/keeper/msg_server.go b/x/staking/keeper/msg_server.go index 7ae6a679e239..f7cd23d792c7 100644 --- a/x/staking/keeper/msg_server.go +++ b/x/staking/keeper/msg_server.go @@ -604,3 +604,7 @@ func (k msgServer) UpdateParams(ctx context.Context, msg *types.MsgUpdateParams) return &types.MsgUpdateParamsResponse{}, nil } + +func (k msgServer) RotateConsPubKey(_ context.Context, _ *types.MsgRotateConsPubKey) (*types.MsgRotateConsPubKeyResponse, error) { + return nil, nil +} diff --git a/x/staking/keeper/slash.go b/x/staking/keeper/slash.go index 9cdd62ef8b11..576f2c0bdb63 100644 --- a/x/staking/keeper/slash.go +++ b/x/staking/keeper/slash.go @@ -147,12 +147,26 @@ func (k Keeper) Slash(ctx context.Context, consAddr sdk.ConsAddress, infractionH tokensToBurn := math.MinInt(remainingSlashAmount, validator.Tokens) tokensToBurn = math.MaxInt(tokensToBurn, math.ZeroInt()) // defensive. + if tokensToBurn.IsZero() { + // Nothing to burn, we can end this route immediately! We also don't + // need to call the k.Hooks().BeforeValidatorSlashed hook as we won't + // be slashing at all. + logger.Info( + "no validator slashing because slash amount is zero", + "validator", validator.GetOperator(), + "slash_factor", slashFactor.String(), + "burned", tokensToBurn, + "validatorTokens", validator.Tokens, + ) + return math.NewInt(0), nil + } + // we need to calculate the *effective* slash fraction for distribution if validator.Tokens.IsPositive() { effectiveFraction := math.LegacyNewDecFromInt(tokensToBurn).QuoRoundUp(math.LegacyNewDecFromInt(validator.Tokens)) // possible if power has changed - if effectiveFraction.GT(math.LegacyOneDec()) { - effectiveFraction = math.LegacyOneDec() + if oneDec := math.LegacyOneDec(); effectiveFraction.GT(oneDec) { + effectiveFraction = oneDec } // call the before-slashed hook if err := k.Hooks().BeforeValidatorSlashed(ctx, operatorAddress, effectiveFraction); err != nil { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 379026940c46..ddfd58bae395 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1311,6 +1311,99 @@ func (m *ValidatorUpdates) GetUpdates() []types3.ValidatorUpdate { return nil } +// ConsPubKeyRotationHistory contains a validator's consensus public key rotation history. +type ConsPubKeyRotationHistory struct { + // operator_address defines the address of the validator's operator; bech encoded in JSON. + OperatorAddress string `protobuf:"bytes,1,opt,name=operator_address,json=operatorAddress,proto3" json:"operator_address,omitempty"` + // old_cons_pubkey is the old consensus public key of the validator, as a Protobuf Any. + OldConsPubkey *types1.Any `protobuf:"bytes,2,opt,name=old_cons_pubkey,json=oldConsPubkey,proto3" json:"old_cons_pubkey,omitempty"` + // new_cons_pubkey is the new consensus public key of the validator, as a Protobuf Any. + NewConsPubkey *types1.Any `protobuf:"bytes,3,opt,name=new_cons_pubkey,json=newConsPubkey,proto3" json:"new_cons_pubkey,omitempty"` + // height defines the block height at which the rotation event occured. + Height uint64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"` + // fee holds the amount of fee deduced for the rotation. + Fee types2.Coin `protobuf:"bytes,5,opt,name=fee,proto3" json:"fee"` +} + +func (m *ConsPubKeyRotationHistory) Reset() { *m = ConsPubKeyRotationHistory{} } +func (m *ConsPubKeyRotationHistory) String() string { return proto.CompactTextString(m) } +func (*ConsPubKeyRotationHistory) ProtoMessage() {} +func (*ConsPubKeyRotationHistory) Descriptor() ([]byte, []int) { + return fileDescriptor_64c30c6cf92913c9, []int{22} +} +func (m *ConsPubKeyRotationHistory) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ConsPubKeyRotationHistory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ConsPubKeyRotationHistory.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 *ConsPubKeyRotationHistory) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConsPubKeyRotationHistory.Merge(m, src) +} +func (m *ConsPubKeyRotationHistory) XXX_Size() int { + return m.Size() +} +func (m *ConsPubKeyRotationHistory) XXX_DiscardUnknown() { + xxx_messageInfo_ConsPubKeyRotationHistory.DiscardUnknown(m) +} + +var xxx_messageInfo_ConsPubKeyRotationHistory proto.InternalMessageInfo + +// ValAddrsOfRotatedConsKeys contains the array of validator addresses which rotated their keys +// This is to block the validator's next rotation till unbonding period. +type ValAddrsOfRotatedConsKeys struct { + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (m *ValAddrsOfRotatedConsKeys) Reset() { *m = ValAddrsOfRotatedConsKeys{} } +func (m *ValAddrsOfRotatedConsKeys) String() string { return proto.CompactTextString(m) } +func (*ValAddrsOfRotatedConsKeys) ProtoMessage() {} +func (*ValAddrsOfRotatedConsKeys) Descriptor() ([]byte, []int) { + return fileDescriptor_64c30c6cf92913c9, []int{23} +} +func (m *ValAddrsOfRotatedConsKeys) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValAddrsOfRotatedConsKeys) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValAddrsOfRotatedConsKeys.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 *ValAddrsOfRotatedConsKeys) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValAddrsOfRotatedConsKeys.Merge(m, src) +} +func (m *ValAddrsOfRotatedConsKeys) XXX_Size() int { + return m.Size() +} +func (m *ValAddrsOfRotatedConsKeys) XXX_DiscardUnknown() { + xxx_messageInfo_ValAddrsOfRotatedConsKeys.DiscardUnknown(m) +} + +var xxx_messageInfo_ValAddrsOfRotatedConsKeys proto.InternalMessageInfo + +func (m *ValAddrsOfRotatedConsKeys) GetAddresses() []string { + if m != nil { + return m.Addresses + } + return nil +} + func init() { proto.RegisterEnum("cosmos.staking.v1beta1.BondStatus", BondStatus_name, BondStatus_value) proto.RegisterEnum("cosmos.staking.v1beta1.Infraction", Infraction_name, Infraction_value) @@ -1336,6 +1429,8 @@ func init() { proto.RegisterType((*RedelegationResponse)(nil), "cosmos.staking.v1beta1.RedelegationResponse") proto.RegisterType((*Pool)(nil), "cosmos.staking.v1beta1.Pool") proto.RegisterType((*ValidatorUpdates)(nil), "cosmos.staking.v1beta1.ValidatorUpdates") + proto.RegisterType((*ConsPubKeyRotationHistory)(nil), "cosmos.staking.v1beta1.ConsPubKeyRotationHistory") + proto.RegisterType((*ValAddrsOfRotatedConsKeys)(nil), "cosmos.staking.v1beta1.ValAddrsOfRotatedConsKeys") } func init() { @@ -1343,130 +1438,136 @@ func init() { } var fileDescriptor_64c30c6cf92913c9 = []byte{ - // 1960 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4f, 0x6c, 0x63, 0x47, - 0x19, 0xcf, 0xb3, 0x5d, 0x27, 0xf9, 0x9c, 0xc4, 0xce, 0x6c, 0xba, 0xeb, 0xf5, 0xd2, 0xd8, 0xeb, - 0x2e, 0x34, 0x5d, 0x1a, 0x9b, 0x5d, 0x50, 0x0f, 0x01, 0x81, 0xe2, 0xd8, 0xdb, 0xb8, 0xb4, 0x49, - 0x78, 0x4e, 0x02, 0xe5, 0xdf, 0xd3, 0xf8, 0xbd, 0x89, 0x3d, 0xc4, 0xef, 0x3d, 0xf3, 0x66, 0xbc, - 0xc4, 0x77, 0x0e, 0x55, 0x2a, 0xa4, 0x9e, 0x00, 0x09, 0x56, 0xac, 0xc4, 0xa5, 0xdc, 0x7a, 0x58, - 0x71, 0xe7, 0x56, 0x90, 0x90, 0x56, 0x7b, 0x42, 0x48, 0x04, 0xb4, 0x7b, 0x68, 0x05, 0x17, 0xc4, - 0x89, 0x23, 0x9a, 0x79, 0xf3, 0xfe, 0x38, 0x4e, 0x36, 0xc9, 0xb6, 0x42, 0x15, 0x5c, 0x2c, 0xcf, - 0xcc, 0xf7, 0xfd, 0xde, 0xf7, 0xfd, 0xbe, 0x3f, 0xf3, 0x07, 0x6e, 0x98, 0x2e, 0xb3, 0x5d, 0x56, - 0x65, 0x1c, 0xef, 0x53, 0xa7, 0x53, 0xbd, 0x7b, 0xab, 0x4d, 0x38, 0xbe, 0x15, 0x8c, 0x2b, 0x7d, - 0xcf, 0xe5, 0x2e, 0xba, 0xec, 0x4b, 0x55, 0x82, 0x59, 0x25, 0x55, 0x58, 0xe8, 0xb8, 0x1d, 0x57, - 0x8a, 0x54, 0xc5, 0x3f, 0x5f, 0xba, 0x70, 0xb5, 0xe3, 0xba, 0x9d, 0x1e, 0xa9, 0xca, 0x51, 0x7b, - 0xb0, 0x57, 0xc5, 0xce, 0x50, 0x2d, 0x2d, 0x1e, 0x5f, 0xb2, 0x06, 0x1e, 0xe6, 0xd4, 0x75, 0xd4, - 0x7a, 0xf1, 0xf8, 0x3a, 0xa7, 0x36, 0x61, 0x1c, 0xdb, 0xfd, 0x00, 0xdb, 0xb7, 0xc4, 0xf0, 0x3f, - 0xaa, 0xcc, 0x52, 0xd8, 0xca, 0x95, 0x36, 0x66, 0x24, 0xf4, 0xc3, 0x74, 0x69, 0x80, 0x3d, 0x8f, - 0x6d, 0xea, 0xb8, 0x55, 0xf9, 0xab, 0xa6, 0x3e, 0xc3, 0x89, 0x63, 0x11, 0xcf, 0xa6, 0x0e, 0xaf, - 0xf2, 0x61, 0x9f, 0x30, 0xff, 0x57, 0xad, 0x5e, 0x8b, 0xad, 0xe2, 0xb6, 0x49, 0xe3, 0x8b, 0xe5, - 0x9f, 0x69, 0x30, 0xb7, 0x4e, 0x19, 0x77, 0x3d, 0x6a, 0xe2, 0x5e, 0xd3, 0xd9, 0x73, 0xd1, 0x97, - 0x21, 0xdd, 0x25, 0xd8, 0x22, 0x5e, 0x5e, 0x2b, 0x69, 0x4b, 0x99, 0xdb, 0xf9, 0x4a, 0x04, 0x50, - 0xf1, 0x75, 0xd7, 0xe5, 0x7a, 0x6d, 0xfa, 0x83, 0xa3, 0xe2, 0xc4, 0x7b, 0x1f, 0xbe, 0x7f, 0x53, - 0xd3, 0x95, 0x0a, 0xaa, 0x43, 0xfa, 0x2e, 0xee, 0x31, 0xc2, 0xf3, 0x89, 0x52, 0x72, 0x29, 0x73, - 0xfb, 0x7a, 0xe5, 0x64, 0xce, 0x2b, 0xbb, 0xb8, 0x47, 0x2d, 0xcc, 0xdd, 0x51, 0x14, 0x5f, 0x77, - 0x25, 0x91, 0xd7, 0xca, 0xef, 0x68, 0x90, 0x8b, 0x2c, 0xd3, 0x89, 0xe9, 0x7a, 0x16, 0xca, 0xc3, - 0x24, 0xee, 0xf7, 0xbb, 0x98, 0x75, 0xa5, 0x71, 0x33, 0x7a, 0x30, 0x44, 0x5f, 0x82, 0x94, 0x20, - 0x39, 0x9f, 0x90, 0x36, 0x17, 0x2a, 0x7e, 0x04, 0x2a, 0x41, 0x04, 0x2a, 0xdb, 0x41, 0x04, 0x6a, - 0xa9, 0x77, 0xff, 0x5a, 0xd4, 0x74, 0x29, 0x8d, 0x5e, 0x82, 0xec, 0xdd, 0xc0, 0x10, 0x66, 0x48, - 0xdc, 0xa4, 0xc4, 0x9d, 0x8b, 0xa6, 0xd7, 0x31, 0xeb, 0x96, 0x7f, 0x9a, 0x80, 0xec, 0x9a, 0x6b, - 0xdb, 0x94, 0x31, 0xea, 0x3a, 0x3a, 0xe6, 0x84, 0xa1, 0xd7, 0x21, 0xe5, 0x61, 0x4e, 0xa4, 0x25, - 0xd3, 0xb5, 0x57, 0x85, 0x1b, 0x7f, 0x3e, 0x2a, 0x5e, 0xf3, 0x1d, 0x66, 0xd6, 0x7e, 0x85, 0xba, - 0x55, 0x1b, 0xf3, 0x6e, 0xe5, 0x0d, 0xd2, 0xc1, 0xe6, 0xb0, 0x4e, 0xcc, 0x47, 0x0f, 0x96, 0x41, - 0xf1, 0x51, 0x27, 0xa6, 0xef, 0xb3, 0xc4, 0x40, 0xdf, 0x80, 0x29, 0x1b, 0x1f, 0x18, 0x12, 0x2f, - 0xf1, 0xb1, 0xf0, 0x26, 0x6d, 0x7c, 0x20, 0xec, 0x43, 0xdf, 0x87, 0xac, 0x80, 0x34, 0xbb, 0xd8, - 0xe9, 0x10, 0x1f, 0x39, 0xf9, 0xb1, 0x90, 0x67, 0x6d, 0x7c, 0xb0, 0x26, 0xd1, 0x04, 0xfe, 0x4a, - 0xea, 0xa3, 0xfb, 0x45, 0xad, 0xfc, 0x3b, 0x0d, 0x20, 0x22, 0x06, 0x61, 0xc8, 0x99, 0xe1, 0x48, - 0x7e, 0x94, 0xa9, 0x34, 0x7a, 0xe9, 0xb4, 0x4c, 0x38, 0x46, 0x6b, 0x6d, 0x56, 0x98, 0xf7, 0xf0, - 0xa8, 0xa8, 0xf9, 0x5f, 0xcd, 0x9a, 0x63, 0xb4, 0x67, 0x06, 0x7d, 0x0b, 0x73, 0x62, 0x9c, 0x33, - 0xe0, 0x12, 0x50, 0x04, 0xdd, 0x07, 0x04, 0x5f, 0x5b, 0xac, 0x2b, 0x1f, 0xde, 0xd3, 0x20, 0x53, - 0x27, 0xcc, 0xf4, 0x68, 0x5f, 0x14, 0xb1, 0xc8, 0x32, 0xdb, 0x75, 0xe8, 0xbe, 0x2a, 0x81, 0x69, - 0x3d, 0x18, 0xa2, 0x02, 0x4c, 0x51, 0x8b, 0x38, 0x9c, 0xf2, 0xa1, 0x1f, 0x26, 0x3d, 0x1c, 0x0b, - 0xad, 0x1f, 0x91, 0x36, 0xa3, 0x01, 0xcf, 0x7a, 0x30, 0x44, 0x2f, 0x43, 0x8e, 0x11, 0x73, 0xe0, - 0x51, 0x3e, 0x34, 0x4c, 0xd7, 0xe1, 0xd8, 0xe4, 0xf9, 0x94, 0x14, 0xc9, 0x06, 0xf3, 0x6b, 0xfe, - 0xb4, 0x00, 0xb1, 0x08, 0xc7, 0xb4, 0xc7, 0xf2, 0xcf, 0xf9, 0x20, 0x6a, 0xa8, 0x4c, 0x3d, 0x9c, - 0x84, 0xe9, 0xb0, 0x74, 0xd0, 0x1a, 0xe4, 0xdc, 0x3e, 0xf1, 0xc4, 0x7f, 0x03, 0x5b, 0x96, 0x47, - 0x18, 0x53, 0xd9, 0x98, 0x7f, 0xf4, 0x60, 0x79, 0x41, 0x11, 0xbe, 0xea, 0xaf, 0xb4, 0xb8, 0x47, - 0x9d, 0x8e, 0x9e, 0x0d, 0x34, 0xd4, 0x34, 0x7a, 0x4b, 0x84, 0xcc, 0x61, 0xc4, 0x61, 0x03, 0x66, - 0xf4, 0x07, 0xed, 0x7d, 0x32, 0x54, 0xa4, 0x2e, 0x8c, 0x91, 0xba, 0xea, 0x0c, 0x6b, 0xf9, 0x3f, - 0x44, 0xd0, 0xa6, 0x37, 0xec, 0x73, 0xb7, 0xb2, 0x35, 0x68, 0x7f, 0x9d, 0x0c, 0x45, 0xa8, 0x14, - 0xce, 0x96, 0x84, 0x41, 0x97, 0x21, 0xfd, 0x03, 0x4c, 0x7b, 0xc4, 0x92, 0x8c, 0x4c, 0xe9, 0x6a, - 0x84, 0x56, 0x20, 0xcd, 0x38, 0xe6, 0x03, 0x26, 0x69, 0x98, 0xbb, 0x5d, 0x3e, 0x2d, 0x37, 0x6a, - 0xae, 0x63, 0xb5, 0xa4, 0xa4, 0xae, 0x34, 0xd0, 0x1a, 0xa4, 0xb9, 0xbb, 0x4f, 0x1c, 0x45, 0x50, - 0xed, 0xf3, 0x2a, 0x9b, 0x9f, 0x1f, 0xcf, 0xe6, 0xa6, 0xc3, 0x63, 0x79, 0xdc, 0x74, 0xb8, 0xae, - 0x54, 0xd1, 0x77, 0x21, 0x67, 0x91, 0x1e, 0xe9, 0x48, 0xe6, 0x58, 0x17, 0x7b, 0x84, 0xe5, 0xd3, - 0x12, 0xee, 0xd6, 0x85, 0x8b, 0x43, 0xcf, 0x86, 0x50, 0x2d, 0x89, 0x84, 0xb6, 0x20, 0x63, 0x45, - 0xe9, 0x94, 0x9f, 0x94, 0x64, 0xbe, 0x78, 0x9a, 0x8f, 0xb1, 0xcc, 0x8b, 0xf7, 0xc2, 0x38, 0x84, - 0xc8, 0xa0, 0x81, 0xd3, 0x76, 0x1d, 0x8b, 0x3a, 0x1d, 0xa3, 0x4b, 0x68, 0xa7, 0xcb, 0xf3, 0x53, - 0x25, 0x6d, 0x29, 0xa9, 0x67, 0xc3, 0xf9, 0x75, 0x39, 0x8d, 0xb6, 0x60, 0x2e, 0x12, 0x95, 0x15, - 0x32, 0x7d, 0xd1, 0x0a, 0x99, 0x0d, 0x01, 0x84, 0x08, 0x7a, 0x13, 0x20, 0xaa, 0xc1, 0x3c, 0x48, - 0xb4, 0xf2, 0xd9, 0xd5, 0x1c, 0x77, 0x26, 0x06, 0x80, 0xbe, 0x03, 0x97, 0x6c, 0xea, 0x18, 0x8c, - 0xf4, 0xf6, 0x0c, 0xc5, 0x9c, 0xc0, 0xcd, 0x5c, 0x3c, 0x9a, 0xf3, 0x36, 0x75, 0x5a, 0xa4, 0xb7, - 0x57, 0x0f, 0x51, 0xd0, 0x57, 0xe0, 0x5a, 0xe4, 0xbd, 0xeb, 0x18, 0x5d, 0xb7, 0x67, 0x19, 0x1e, - 0xd9, 0x33, 0x4c, 0x77, 0xe0, 0xf0, 0xfc, 0x8c, 0xe4, 0xec, 0x4a, 0x28, 0xb2, 0xe9, 0xac, 0xbb, - 0x3d, 0x4b, 0x27, 0x7b, 0x6b, 0x62, 0x19, 0xbd, 0x08, 0x91, 0xeb, 0x06, 0xb5, 0x58, 0x7e, 0xb6, - 0x94, 0x5c, 0x4a, 0xe9, 0x33, 0xe1, 0x64, 0xd3, 0x62, 0x2b, 0x53, 0x6f, 0xdf, 0x2f, 0x4e, 0x7c, - 0x74, 0xbf, 0x38, 0x51, 0xbe, 0x03, 0x33, 0xbb, 0xb8, 0xa7, 0xea, 0x88, 0x30, 0xf4, 0x2a, 0x4c, - 0xe3, 0x60, 0x90, 0xd7, 0x4a, 0xc9, 0xa7, 0xd6, 0x61, 0x24, 0x5a, 0xfe, 0x8d, 0x06, 0xe9, 0xfa, - 0xee, 0x16, 0xa6, 0x1e, 0x6a, 0xc0, 0x7c, 0x94, 0x98, 0xe7, 0x2d, 0xe9, 0x28, 0x97, 0x83, 0x9a, - 0xde, 0x80, 0xf9, 0x70, 0x03, 0x0b, 0x61, 0xfc, 0x7d, 0xe5, 0xfa, 0xa3, 0x07, 0xcb, 0x2f, 0x28, - 0x98, 0xb0, 0x93, 0x1c, 0xc3, 0xbb, 0x7b, 0x6c, 0x3e, 0xe6, 0xf3, 0xeb, 0x30, 0xe9, 0x9b, 0xca, - 0xd0, 0xd7, 0xe0, 0xb9, 0xbe, 0xf8, 0x23, 0x5d, 0xcd, 0xdc, 0x5e, 0x3c, 0x35, 0xc1, 0xa5, 0x7c, - 0x3c, 0x1d, 0x7c, 0xbd, 0xf2, 0x3b, 0x09, 0x80, 0xfa, 0xee, 0xee, 0xb6, 0x47, 0xfb, 0x3d, 0xc2, - 0x3f, 0x29, 0xdf, 0x77, 0xe0, 0xf9, 0xc8, 0x77, 0xe6, 0x99, 0x17, 0xf7, 0xff, 0x52, 0xa8, 0xdf, - 0xf2, 0xcc, 0x13, 0x61, 0x2d, 0xc6, 0x43, 0xd8, 0xe4, 0xc5, 0x61, 0xeb, 0x8c, 0x8f, 0x33, 0xfb, - 0x2d, 0xc8, 0x44, 0x64, 0x30, 0xd4, 0x84, 0x29, 0xae, 0xfe, 0x2b, 0x82, 0xcb, 0xa7, 0x13, 0x1c, - 0xa8, 0xc5, 0x49, 0x0e, 0xd5, 0xcb, 0xff, 0xd6, 0x00, 0x62, 0x35, 0xf2, 0xe9, 0xcc, 0x31, 0xd4, - 0x84, 0xb4, 0xea, 0xc4, 0xc9, 0x67, 0xed, 0xc4, 0x0a, 0x20, 0x46, 0xea, 0x4f, 0x12, 0x70, 0x69, - 0x27, 0xa8, 0xde, 0x4f, 0x3f, 0x07, 0x3b, 0x30, 0x49, 0x1c, 0xee, 0x51, 0x49, 0x82, 0x88, 0xf9, - 0x17, 0x4e, 0x8b, 0xf9, 0x09, 0x4e, 0x35, 0x1c, 0xee, 0x0d, 0xe3, 0x19, 0x10, 0x60, 0xc5, 0xf8, - 0xf8, 0x45, 0x12, 0xf2, 0xa7, 0xa9, 0x8a, 0xd3, 0xb0, 0xe9, 0x11, 0x39, 0x11, 0x6c, 0x32, 0x9a, - 0x6c, 0x98, 0x73, 0xc1, 0xb4, 0xda, 0x63, 0x74, 0x10, 0xa7, 0x32, 0x91, 0x5c, 0x42, 0xf4, 0xd9, - 0x8e, 0x61, 0x73, 0x11, 0x82, 0xdc, 0x65, 0xb6, 0x21, 0x4b, 0x1d, 0xca, 0x29, 0xee, 0x19, 0x6d, - 0xdc, 0xc3, 0x8e, 0x19, 0x1c, 0x57, 0x2f, 0xb4, 0x25, 0xcc, 0x29, 0x8c, 0x9a, 0x0f, 0x81, 0x1a, - 0x30, 0x19, 0xa0, 0xa5, 0x2e, 0x8e, 0x16, 0xe8, 0xa2, 0xeb, 0x30, 0x13, 0xdf, 0x18, 0xe4, 0xd1, - 0x23, 0xa5, 0x67, 0x62, 0xfb, 0xc2, 0x59, 0x3b, 0x4f, 0xfa, 0xa9, 0x3b, 0x8f, 0x3a, 0xdd, 0xfd, - 0x2a, 0x09, 0xf3, 0x3a, 0xb1, 0xfe, 0xf7, 0xc3, 0xb2, 0x05, 0xe0, 0x97, 0xaa, 0xe8, 0xa4, 0x2a, - 0x32, 0xcf, 0x50, 0xef, 0xd3, 0x3e, 0x48, 0x9d, 0xf1, 0xff, 0x56, 0x84, 0xfe, 0x92, 0x80, 0x99, - 0x78, 0x84, 0xfe, 0x2f, 0x37, 0x2d, 0xb4, 0x11, 0xb5, 0xa9, 0x94, 0x6c, 0x53, 0x2f, 0x9f, 0xd6, - 0xa6, 0xc6, 0xb2, 0xf9, 0x8c, 0xfe, 0xf4, 0xcb, 0x24, 0xa4, 0xb7, 0xb0, 0x87, 0x6d, 0x86, 0x36, - 0xc7, 0x0e, 0xb2, 0xfe, 0x45, 0xf2, 0xea, 0x58, 0x32, 0xd7, 0xd5, 0xeb, 0x8b, 0x9f, 0xcb, 0x3f, - 0x3f, 0xed, 0x1c, 0xfb, 0x59, 0x98, 0x13, 0x17, 0xe2, 0xe8, 0x66, 0x2f, 0xc9, 0x9d, 0x95, 0xf7, - 0xda, 0xd0, 0x7b, 0x86, 0x8a, 0x90, 0x11, 0x62, 0x51, 0x1f, 0x16, 0x32, 0x60, 0xe3, 0x83, 0x86, - 0x3f, 0x83, 0x96, 0x01, 0x75, 0xc3, 0x87, 0x09, 0x23, 0x22, 0x42, 0xc8, 0xcd, 0x47, 0x2b, 0x81, - 0xf8, 0x0b, 0x00, 0xc2, 0x0a, 0xc3, 0x22, 0x8e, 0x6b, 0xab, 0x5b, 0xdd, 0xb4, 0x98, 0xa9, 0x8b, - 0x09, 0xf4, 0x63, 0xcd, 0x3f, 0x0f, 0x1f, 0xbb, 0x36, 0xab, 0xeb, 0xc8, 0xf6, 0x39, 0x8a, 0xe2, - 0x5f, 0x47, 0xc5, 0xc2, 0x10, 0xdb, 0xbd, 0x95, 0xf2, 0x09, 0x38, 0xe5, 0x93, 0x6e, 0xf2, 0xe2, - 0xe0, 0x3c, 0x7a, 0xed, 0x5e, 0xb9, 0x21, 0xd2, 0xfb, 0xf0, 0xc3, 0xf7, 0x6f, 0xaa, 0x2f, 0x2d, - 0x33, 0x6b, 0xbf, 0x7a, 0x10, 0x3e, 0xa8, 0xf9, 0x31, 0x11, 0x27, 0x55, 0x14, 0xed, 0x1a, 0x3a, - 0x61, 0x7d, 0x71, 0xe3, 0x13, 0x37, 0x84, 0xd8, 0x49, 0x5e, 0x7b, 0xfa, 0x0d, 0x21, 0xd2, 0x1f, - 0xb9, 0x21, 0xc4, 0x6a, 0xea, 0xab, 0x51, 0xd3, 0x4e, 0xa8, 0x90, 0x2b, 0xac, 0x36, 0x66, 0x24, - 0x76, 0xd5, 0xa0, 0x23, 0x10, 0x81, 0x92, 0x2c, 0xd5, 0x89, 0xf2, 0x1f, 0x35, 0xb8, 0x3a, 0x96, - 0x7e, 0xa1, 0xc9, 0x26, 0x20, 0x2f, 0xb6, 0x28, 0xc3, 0x38, 0x54, 0xa6, 0x3f, 0x5b, 0x36, 0xcf, - 0x7b, 0x63, 0x9d, 0xfb, 0x93, 0xd9, 0x7d, 0x54, 0xeb, 0xf9, 0xbd, 0x06, 0x0b, 0x71, 0x03, 0x42, - 0x57, 0x5a, 0x30, 0x13, 0xff, 0xb4, 0x72, 0xe2, 0xc6, 0x79, 0x9c, 0x88, 0xdb, 0x3f, 0x02, 0x82, - 0x76, 0xa3, 0x12, 0xf7, 0x5f, 0xf2, 0x6e, 0x9d, 0x9b, 0x94, 0xc0, 0xb0, 0x13, 0x4b, 0xdd, 0x8f, - 0xcd, 0x3f, 0x34, 0x48, 0x6d, 0xb9, 0x6e, 0x0f, 0xfd, 0x10, 0xe6, 0x1d, 0x97, 0x1b, 0xa2, 0x1c, - 0x88, 0x65, 0xa8, 0x8b, 0xbd, 0xdf, 0x3e, 0x1b, 0x4f, 0xe5, 0xea, 0xef, 0x47, 0xc5, 0x71, 0xcd, - 0x51, 0x02, 0xd5, 0xfb, 0x91, 0xe3, 0xf2, 0x9a, 0x14, 0xda, 0xf6, 0xef, 0xfe, 0x7b, 0x30, 0x3b, - 0xfa, 0x39, 0xbf, 0xc5, 0xae, 0x9e, 0xf5, 0xb9, 0xd9, 0x33, 0x3f, 0x35, 0xd3, 0x8e, 0x7d, 0x67, - 0x65, 0x4a, 0x44, 0xed, 0x9f, 0x22, 0x72, 0x6f, 0x41, 0x2e, 0xec, 0x2f, 0x3b, 0xf2, 0xf1, 0x89, - 0x89, 0xd4, 0xf0, 0xdf, 0xa1, 0x82, 0xd3, 0x7d, 0x29, 0xfe, 0xcc, 0x8a, 0xdb, 0x26, 0xad, 0x1c, - 0xd3, 0x19, 0xa1, 0x53, 0xe9, 0xde, 0xfc, 0xad, 0x06, 0x10, 0x3d, 0x92, 0xa0, 0x57, 0xe0, 0x4a, - 0x6d, 0x73, 0xa3, 0x6e, 0xb4, 0xb6, 0x57, 0xb7, 0x77, 0x5a, 0xc6, 0xce, 0x46, 0x6b, 0xab, 0xb1, - 0xd6, 0xbc, 0xd3, 0x6c, 0xd4, 0x73, 0x13, 0x85, 0xec, 0xe1, 0xbd, 0x52, 0x66, 0xc7, 0x61, 0x7d, - 0x62, 0xd2, 0x3d, 0x4a, 0x2c, 0xf4, 0x39, 0x58, 0x18, 0x95, 0x16, 0xa3, 0x46, 0x3d, 0xa7, 0x15, - 0x66, 0x0e, 0xef, 0x95, 0xa6, 0xfc, 0x73, 0x22, 0xb1, 0xd0, 0x12, 0x3c, 0x3f, 0x2e, 0xd7, 0xdc, - 0x78, 0x2d, 0x97, 0x28, 0xcc, 0x1e, 0xde, 0x2b, 0x4d, 0x87, 0x07, 0x4a, 0x54, 0x06, 0x14, 0x97, - 0x54, 0x78, 0xc9, 0x02, 0x1c, 0xde, 0x2b, 0xa5, 0xfd, 0x28, 0x14, 0x52, 0x6f, 0xff, 0x7a, 0x71, - 0xe2, 0xe6, 0xf7, 0x00, 0x9a, 0xce, 0x9e, 0x87, 0x4d, 0x99, 0x6d, 0x05, 0xb8, 0xdc, 0xdc, 0xb8, - 0xa3, 0xaf, 0xae, 0x6d, 0x37, 0x37, 0x37, 0x46, 0xcd, 0x3e, 0xb6, 0x56, 0xdf, 0xdc, 0xa9, 0xbd, - 0xd1, 0x30, 0x5a, 0xcd, 0xd7, 0x36, 0x72, 0x1a, 0xba, 0x02, 0x97, 0x46, 0xd6, 0xbe, 0xb9, 0xb1, - 0xdd, 0x7c, 0xb3, 0x91, 0x4b, 0xd4, 0xee, 0x7c, 0xf0, 0x78, 0x51, 0x7b, 0xf8, 0x78, 0x51, 0xfb, - 0xdb, 0xe3, 0x45, 0xed, 0xdd, 0x27, 0x8b, 0x13, 0x0f, 0x9f, 0x2c, 0x4e, 0xfc, 0xe9, 0xc9, 0xe2, - 0xc4, 0xb7, 0x5f, 0xe9, 0x50, 0xde, 0x1d, 0xb4, 0x2b, 0xa6, 0x6b, 0xab, 0x87, 0xf7, 0xea, 0x89, - 0x1d, 0x4f, 0xbe, 0x74, 0xb7, 0xd3, 0x72, 0x93, 0xf9, 0xe2, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x9a, 0x3d, 0x77, 0x96, 0x61, 0x18, 0x00, 0x00, + // 2059 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4d, 0x6c, 0x5b, 0x49, + 0x1d, 0xcf, 0xb3, 0xbd, 0x4e, 0xf2, 0x77, 0x12, 0x3b, 0xd3, 0x2f, 0xd7, 0x65, 0x63, 0xd7, 0x5b, + 0xd8, 0xb6, 0x6c, 0x6d, 0x5a, 0x50, 0x0f, 0x01, 0x81, 0xea, 0xd8, 0xdd, 0x78, 0x3f, 0x92, 0xf0, + 0x9c, 0x04, 0x96, 0xaf, 0xa7, 0xf1, 0x7b, 0x63, 0xfb, 0x11, 0x7b, 0x9e, 0x79, 0x33, 0x6e, 0xe3, + 0x3b, 0x87, 0x55, 0x56, 0x48, 0x7b, 0x02, 0x24, 0xa8, 0xa8, 0xc4, 0x65, 0xb9, 0xed, 0xa1, 0xe2, + 0xce, 0x6d, 0x41, 0x42, 0xaa, 0x7a, 0x42, 0x48, 0x04, 0xd4, 0x1e, 0x76, 0x05, 0x17, 0xc4, 0x89, + 0x23, 0x9a, 0x79, 0xf3, 0x3e, 0x1c, 0xc7, 0xcd, 0x47, 0x57, 0x68, 0x05, 0x97, 0xc8, 0x33, 0xf3, + 0xff, 0xff, 0xde, 0xff, 0x7b, 0xfe, 0xff, 0x09, 0x5c, 0x31, 0x1d, 0xd6, 0x73, 0x58, 0x99, 0x71, + 0xbc, 0x63, 0xd3, 0x76, 0xf9, 0xde, 0xcd, 0x26, 0xe1, 0xf8, 0xa6, 0xbf, 0x2e, 0xf5, 0x5d, 0x87, + 0x3b, 0xe8, 0xbc, 0x47, 0x55, 0xf2, 0x77, 0x15, 0x55, 0xee, 0x6c, 0xdb, 0x69, 0x3b, 0x92, 0xa4, + 0x2c, 0x7e, 0x79, 0xd4, 0xb9, 0x8b, 0x6d, 0xc7, 0x69, 0x77, 0x49, 0x59, 0xae, 0x9a, 0x83, 0x56, + 0x19, 0xd3, 0xa1, 0x3a, 0x5a, 0x3a, 0x78, 0x64, 0x0d, 0x5c, 0xcc, 0x6d, 0x87, 0xaa, 0xf3, 0xfc, + 0xc1, 0x73, 0x6e, 0xf7, 0x08, 0xe3, 0xb8, 0xd7, 0xf7, 0xb1, 0x3d, 0x49, 0x0c, 0xef, 0xa3, 0x4a, + 0x2c, 0x85, 0xad, 0x54, 0x69, 0x62, 0x46, 0x02, 0x3d, 0x4c, 0xc7, 0xf6, 0xb1, 0x17, 0x71, 0xcf, + 0xa6, 0x4e, 0x59, 0xfe, 0x55, 0x5b, 0x9f, 0xe3, 0x84, 0x5a, 0xc4, 0xed, 0xd9, 0x94, 0x97, 0xf9, + 0xb0, 0x4f, 0x98, 0xf7, 0x57, 0x9d, 0x5e, 0x8a, 0x9c, 0xe2, 0xa6, 0x69, 0x47, 0x0f, 0x8b, 0x3f, + 0xd3, 0x60, 0x61, 0xd5, 0x66, 0xdc, 0x71, 0x6d, 0x13, 0x77, 0xeb, 0xb4, 0xe5, 0xa0, 0xaf, 0x42, + 0xb2, 0x43, 0xb0, 0x45, 0xdc, 0xac, 0x56, 0xd0, 0xae, 0xa6, 0x6e, 0x65, 0x4b, 0x21, 0x40, 0xc9, + 0xe3, 0x5d, 0x95, 0xe7, 0x95, 0xd9, 0x8f, 0xf6, 0xf3, 0x53, 0x1f, 0x7c, 0xfc, 0xe1, 0x75, 0x4d, + 0x57, 0x2c, 0xa8, 0x0a, 0xc9, 0x7b, 0xb8, 0xcb, 0x08, 0xcf, 0xc6, 0x0a, 0xf1, 0xab, 0xa9, 0x5b, + 0x97, 0x4b, 0x87, 0xdb, 0xbc, 0xb4, 0x8d, 0xbb, 0xb6, 0x85, 0xb9, 0x33, 0x8a, 0xe2, 0xf1, 0x2e, + 0xc7, 0xb2, 0x5a, 0xf1, 0x3d, 0x0d, 0x32, 0xa1, 0x64, 0x3a, 0x31, 0x1d, 0xd7, 0x42, 0x59, 0x98, + 0xc6, 0xfd, 0x7e, 0x07, 0xb3, 0x8e, 0x14, 0x6e, 0x4e, 0xf7, 0x97, 0xe8, 0x2b, 0x90, 0x10, 0x46, + 0xce, 0xc6, 0xa4, 0xcc, 0xb9, 0x92, 0xe7, 0x81, 0x92, 0xef, 0x81, 0xd2, 0xa6, 0xef, 0x81, 0x4a, + 0xe2, 0xfd, 0xbf, 0xe6, 0x35, 0x5d, 0x52, 0xa3, 0x57, 0x21, 0x7d, 0xcf, 0x17, 0x84, 0x19, 0x12, + 0x37, 0x2e, 0x71, 0x17, 0xc2, 0xed, 0x55, 0xcc, 0x3a, 0xc5, 0x9f, 0xc6, 0x20, 0xbd, 0xe2, 0xf4, + 0x7a, 0x36, 0x63, 0xb6, 0x43, 0x75, 0xcc, 0x09, 0x43, 0x6f, 0x40, 0xc2, 0xc5, 0x9c, 0x48, 0x49, + 0x66, 0x2b, 0xb7, 0x85, 0x1a, 0x7f, 0xde, 0xcf, 0x5f, 0xf2, 0x14, 0x66, 0xd6, 0x4e, 0xc9, 0x76, + 0xca, 0x3d, 0xcc, 0x3b, 0xa5, 0xb7, 0x48, 0x1b, 0x9b, 0xc3, 0x2a, 0x31, 0x9f, 0x3c, 0xba, 0x01, + 0xca, 0x1e, 0x55, 0x62, 0x7a, 0x3a, 0x4b, 0x0c, 0xf4, 0x4d, 0x98, 0xe9, 0xe1, 0x5d, 0x43, 0xe2, + 0xc5, 0x5e, 0x08, 0x6f, 0xba, 0x87, 0x77, 0x85, 0x7c, 0xe8, 0x07, 0x90, 0x16, 0x90, 0x66, 0x07, + 0xd3, 0x36, 0xf1, 0x90, 0xe3, 0x2f, 0x84, 0x3c, 0xdf, 0xc3, 0xbb, 0x2b, 0x12, 0x4d, 0xe0, 0x2f, + 0x27, 0x3e, 0x79, 0x98, 0xd7, 0x8a, 0xbf, 0xd3, 0x00, 0x42, 0xc3, 0x20, 0x0c, 0x19, 0x33, 0x58, + 0xc9, 0x8f, 0x32, 0x15, 0x46, 0xaf, 0x4e, 0x8a, 0x84, 0x03, 0x66, 0xad, 0xcc, 0x0b, 0xf1, 0x1e, + 0xef, 0xe7, 0x35, 0xef, 0xab, 0x69, 0x73, 0xcc, 0xec, 0xa9, 0x41, 0xdf, 0xc2, 0x9c, 0x18, 0xc7, + 0x74, 0xb8, 0x04, 0x14, 0x4e, 0xf7, 0x00, 0xc1, 0xe3, 0x16, 0xe7, 0x4a, 0x87, 0x0f, 0x34, 0x48, + 0x55, 0x09, 0x33, 0x5d, 0xbb, 0x2f, 0x92, 0x58, 0x44, 0x59, 0xcf, 0xa1, 0xf6, 0x8e, 0x4a, 0x81, + 0x59, 0xdd, 0x5f, 0xa2, 0x1c, 0xcc, 0xd8, 0x16, 0xa1, 0xdc, 0xe6, 0x43, 0xcf, 0x4d, 0x7a, 0xb0, + 0x16, 0x5c, 0xf7, 0x49, 0x93, 0xd9, 0xbe, 0x9d, 0x75, 0x7f, 0x89, 0xae, 0x41, 0x86, 0x11, 0x73, + 0xe0, 0xda, 0x7c, 0x68, 0x98, 0x0e, 0xe5, 0xd8, 0xe4, 0xd9, 0x84, 0x24, 0x49, 0xfb, 0xfb, 0x2b, + 0xde, 0xb6, 0x00, 0xb1, 0x08, 0xc7, 0x76, 0x97, 0x65, 0x5f, 0xf2, 0x40, 0xd4, 0x52, 0x89, 0xba, + 0x37, 0x0d, 0xb3, 0x41, 0xea, 0xa0, 0x15, 0xc8, 0x38, 0x7d, 0xe2, 0x8a, 0xdf, 0x06, 0xb6, 0x2c, + 0x97, 0x30, 0xa6, 0xa2, 0x31, 0xfb, 0xe4, 0xd1, 0x8d, 0xb3, 0xca, 0xe0, 0x77, 0xbc, 0x93, 0x06, + 0x77, 0x6d, 0xda, 0xd6, 0xd3, 0x3e, 0x87, 0xda, 0x46, 0xef, 0x08, 0x97, 0x51, 0x46, 0x28, 0x1b, + 0x30, 0xa3, 0x3f, 0x68, 0xee, 0x90, 0xa1, 0x32, 0xea, 0xd9, 0x31, 0xa3, 0xde, 0xa1, 0xc3, 0x4a, + 0xf6, 0x0f, 0x21, 0xb4, 0xe9, 0x0e, 0xfb, 0xdc, 0x29, 0x6d, 0x0c, 0x9a, 0x6f, 0x92, 0xa1, 0x70, + 0x95, 0xc2, 0xd9, 0x90, 0x30, 0xe8, 0x3c, 0x24, 0x7f, 0x88, 0xed, 0x2e, 0xb1, 0xa4, 0x45, 0x66, + 0x74, 0xb5, 0x42, 0xcb, 0x90, 0x64, 0x1c, 0xf3, 0x01, 0x93, 0x66, 0x58, 0xb8, 0x55, 0x9c, 0x14, + 0x1b, 0x15, 0x87, 0x5a, 0x0d, 0x49, 0xa9, 0x2b, 0x0e, 0xb4, 0x02, 0x49, 0xee, 0xec, 0x10, 0xaa, + 0x0c, 0x54, 0xf9, 0xa2, 0x8a, 0xe6, 0x73, 0xe3, 0xd1, 0x5c, 0xa7, 0x3c, 0x12, 0xc7, 0x75, 0xca, + 0x75, 0xc5, 0x8a, 0xbe, 0x07, 0x19, 0x8b, 0x74, 0x49, 0x5b, 0x5a, 0x8e, 0x75, 0xb0, 0x4b, 0x58, + 0x36, 0x29, 0xe1, 0x6e, 0x9e, 0x38, 0x39, 0xf4, 0x74, 0x00, 0xd5, 0x90, 0x48, 0x68, 0x03, 0x52, + 0x56, 0x18, 0x4e, 0xd9, 0x69, 0x69, 0xcc, 0x57, 0x26, 0xe9, 0x18, 0x89, 0xbc, 0x68, 0x2d, 0x8c, + 0x42, 0x88, 0x08, 0x1a, 0xd0, 0xa6, 0x43, 0x2d, 0x9b, 0xb6, 0x8d, 0x0e, 0xb1, 0xdb, 0x1d, 0x9e, + 0x9d, 0x29, 0x68, 0x57, 0xe3, 0x7a, 0x3a, 0xd8, 0x5f, 0x95, 0xdb, 0x68, 0x03, 0x16, 0x42, 0x52, + 0x99, 0x21, 0xb3, 0x27, 0xcd, 0x90, 0xf9, 0x00, 0x40, 0x90, 0xa0, 0xb7, 0x01, 0xc2, 0x1c, 0xcc, + 0x82, 0x44, 0x2b, 0x1e, 0x9d, 0xcd, 0x51, 0x65, 0x22, 0x00, 0xe8, 0xbb, 0x70, 0xa6, 0x67, 0x53, + 0x83, 0x91, 0x6e, 0xcb, 0x50, 0x96, 0x13, 0xb8, 0xa9, 0x93, 0x7b, 0x73, 0xb1, 0x67, 0xd3, 0x06, + 0xe9, 0xb6, 0xaa, 0x01, 0x0a, 0xfa, 0x1a, 0x5c, 0x0a, 0xb5, 0x77, 0xa8, 0xd1, 0x71, 0xba, 0x96, + 0xe1, 0x92, 0x96, 0x61, 0x3a, 0x03, 0xca, 0xb3, 0x73, 0xd2, 0x66, 0x17, 0x02, 0x92, 0x75, 0xba, + 0xea, 0x74, 0x2d, 0x9d, 0xb4, 0x56, 0xc4, 0x31, 0x7a, 0x05, 0x42, 0xd5, 0x0d, 0xdb, 0x62, 0xd9, + 0xf9, 0x42, 0xfc, 0x6a, 0x42, 0x9f, 0x0b, 0x36, 0xeb, 0x16, 0x5b, 0x9e, 0x79, 0xf7, 0x61, 0x7e, + 0xea, 0x93, 0x87, 0xf9, 0xa9, 0xe2, 0x5d, 0x98, 0xdb, 0xc6, 0x5d, 0x95, 0x47, 0x84, 0xa1, 0xdb, + 0x30, 0x8b, 0xfd, 0x45, 0x56, 0x2b, 0xc4, 0x9f, 0x9b, 0x87, 0x21, 0x69, 0xf1, 0x37, 0x1a, 0x24, + 0xab, 0xdb, 0x1b, 0xd8, 0x76, 0x51, 0x0d, 0x16, 0xc3, 0xc0, 0x3c, 0x6e, 0x4a, 0x87, 0xb1, 0xec, + 0xe7, 0xf4, 0x1a, 0x2c, 0x06, 0x17, 0x58, 0x00, 0xe3, 0xdd, 0x2b, 0x97, 0x9f, 0x3c, 0xba, 0xf1, + 0xb2, 0x82, 0x09, 0x2a, 0xc9, 0x01, 0xbc, 0x7b, 0x07, 0xf6, 0x23, 0x3a, 0xbf, 0x01, 0xd3, 0x9e, + 0xa8, 0x0c, 0x7d, 0x03, 0x5e, 0xea, 0x8b, 0x1f, 0x52, 0xd5, 0xd4, 0xad, 0xa5, 0x89, 0x01, 0x2e, + 0xe9, 0xa3, 0xe1, 0xe0, 0xf1, 0x15, 0xdf, 0x8b, 0x01, 0x54, 0xb7, 0xb7, 0x37, 0x5d, 0xbb, 0xdf, + 0x25, 0xfc, 0xd3, 0xd2, 0x7d, 0x0b, 0xce, 0x85, 0xba, 0x33, 0xd7, 0x3c, 0xb9, 0xfe, 0x67, 0x02, + 0xfe, 0x86, 0x6b, 0x1e, 0x0a, 0x6b, 0x31, 0x1e, 0xc0, 0xc6, 0x4f, 0x0e, 0x5b, 0x65, 0x7c, 0xdc, + 0xb2, 0xdf, 0x86, 0x54, 0x68, 0x0c, 0x86, 0xea, 0x30, 0xc3, 0xd5, 0x6f, 0x65, 0xe0, 0xe2, 0x64, + 0x03, 0xfb, 0x6c, 0x51, 0x23, 0x07, 0xec, 0xc5, 0x7f, 0x6b, 0x00, 0x91, 0x1c, 0xf9, 0x6c, 0xc6, + 0x18, 0xaa, 0x43, 0x52, 0x55, 0xe2, 0xf8, 0x69, 0x2b, 0xb1, 0x02, 0x88, 0x18, 0xf5, 0x27, 0x31, + 0x38, 0xb3, 0xe5, 0x67, 0xef, 0x67, 0xdf, 0x06, 0x5b, 0x30, 0x4d, 0x28, 0x77, 0x6d, 0x69, 0x04, + 0xe1, 0xf3, 0x2f, 0x4d, 0xf2, 0xf9, 0x21, 0x4a, 0xd5, 0x28, 0x77, 0x87, 0xd1, 0x08, 0xf0, 0xb1, + 0x22, 0xf6, 0xf8, 0x45, 0x1c, 0xb2, 0x93, 0x58, 0x45, 0x37, 0x6c, 0xba, 0x44, 0x6e, 0xf8, 0x97, + 0x8c, 0x26, 0x0b, 0xe6, 0x82, 0xbf, 0xad, 0xee, 0x18, 0x1d, 0x44, 0x57, 0x26, 0x82, 0x4b, 0x90, + 0x9e, 0xae, 0x0d, 0x5b, 0x08, 0x11, 0xe4, 0x2d, 0xb3, 0x09, 0x69, 0x9b, 0xda, 0xdc, 0xc6, 0x5d, + 0xa3, 0x89, 0xbb, 0x98, 0x9a, 0x7e, 0xbb, 0x7a, 0xa2, 0x2b, 0x61, 0x41, 0x61, 0x54, 0x3c, 0x08, + 0x54, 0x83, 0x69, 0x1f, 0x2d, 0x71, 0x72, 0x34, 0x9f, 0x17, 0x5d, 0x86, 0xb9, 0xe8, 0xc5, 0x20, + 0x5b, 0x8f, 0x84, 0x9e, 0x8a, 0xdc, 0x0b, 0x47, 0xdd, 0x3c, 0xc9, 0xe7, 0xde, 0x3c, 0xaa, 0xbb, + 0xfb, 0x55, 0x1c, 0x16, 0x75, 0x62, 0xfd, 0xef, 0xbb, 0x65, 0x03, 0xc0, 0x4b, 0x55, 0x51, 0x49, + 0x95, 0x67, 0x4e, 0x91, 0xef, 0xb3, 0x1e, 0x48, 0x95, 0xf1, 0xff, 0x96, 0x87, 0xfe, 0x12, 0x83, + 0xb9, 0xa8, 0x87, 0xfe, 0x2f, 0x2f, 0x2d, 0xb4, 0x16, 0x96, 0xa9, 0x84, 0x2c, 0x53, 0xd7, 0x26, + 0x95, 0xa9, 0xb1, 0x68, 0x3e, 0xa2, 0x3e, 0xfd, 0x32, 0x0e, 0xc9, 0x0d, 0xec, 0xe2, 0x1e, 0x43, + 0xeb, 0x63, 0x8d, 0xac, 0x37, 0x48, 0x5e, 0x1c, 0x0b, 0xe6, 0xaa, 0x7a, 0x7d, 0xf1, 0x62, 0xf9, + 0xe7, 0x93, 0xfa, 0xd8, 0xcf, 0xc3, 0x82, 0x18, 0x88, 0xc3, 0xc9, 0x5e, 0x1a, 0x77, 0x5e, 0xce, + 0xb5, 0x81, 0xf6, 0x0c, 0xe5, 0x21, 0x25, 0xc8, 0xc2, 0x3a, 0x2c, 0x68, 0xa0, 0x87, 0x77, 0x6b, + 0xde, 0x0e, 0xba, 0x01, 0xa8, 0x13, 0x3c, 0x4c, 0x18, 0xa1, 0x21, 0x04, 0xdd, 0x62, 0x78, 0xe2, + 0x93, 0xbf, 0x0c, 0x20, 0xa4, 0x30, 0x2c, 0x42, 0x9d, 0x9e, 0x9a, 0xea, 0x66, 0xc5, 0x4e, 0x55, + 0x6c, 0xa0, 0x1f, 0x6b, 0x5e, 0x3f, 0x7c, 0x60, 0x6c, 0x56, 0xe3, 0xc8, 0xe6, 0x31, 0x92, 0xe2, + 0x5f, 0xfb, 0xf9, 0xdc, 0x10, 0xf7, 0xba, 0xcb, 0xc5, 0x43, 0x70, 0x8a, 0x87, 0x4d, 0xf2, 0xa2, + 0x71, 0x1e, 0x1d, 0xbb, 0x97, 0xaf, 0x88, 0xf0, 0xde, 0xfb, 0xf8, 0xc3, 0xeb, 0xea, 0x4b, 0x37, + 0x98, 0xb5, 0x53, 0xde, 0x0d, 0x1e, 0xd4, 0x3c, 0x9f, 0x88, 0x4e, 0x15, 0x85, 0xb7, 0x86, 0x4e, + 0x58, 0x5f, 0x4c, 0x7c, 0x62, 0x42, 0x88, 0x74, 0xf2, 0xda, 0xf3, 0x27, 0x84, 0x90, 0x7f, 0x64, + 0x42, 0x88, 0xe4, 0xd4, 0xd7, 0xc3, 0xa2, 0x1d, 0x53, 0x2e, 0x57, 0x58, 0x4d, 0xcc, 0x48, 0x64, + 0xd4, 0xb0, 0x47, 0x20, 0x7c, 0x26, 0x99, 0xaa, 0x53, 0xc5, 0x3f, 0x6a, 0x70, 0x71, 0x2c, 0xfc, + 0x02, 0x91, 0x4d, 0x40, 0x6e, 0xe4, 0x50, 0xba, 0x71, 0xa8, 0x44, 0x3f, 0x5d, 0x34, 0x2f, 0xba, + 0x63, 0x95, 0xfb, 0xd3, 0xb9, 0x7d, 0x54, 0xe9, 0xf9, 0xbd, 0x06, 0x67, 0xa3, 0x02, 0x04, 0xaa, + 0x34, 0x60, 0x2e, 0xfa, 0x69, 0xa5, 0xc4, 0x95, 0xe3, 0x28, 0x11, 0x95, 0x7f, 0x04, 0x04, 0x6d, + 0x87, 0x29, 0xee, 0xbd, 0xe4, 0xdd, 0x3c, 0xb6, 0x51, 0x7c, 0xc1, 0x0e, 0x4d, 0x75, 0xcf, 0x37, + 0xff, 0xd0, 0x20, 0xb1, 0xe1, 0x38, 0x5d, 0xf4, 0x23, 0x58, 0xa4, 0x0e, 0x37, 0x44, 0x3a, 0x10, + 0xcb, 0x50, 0x83, 0xbd, 0x57, 0x3e, 0x6b, 0xcf, 0xb5, 0xd5, 0xdf, 0xf7, 0xf3, 0xe3, 0x9c, 0xa3, + 0x06, 0x54, 0xef, 0x47, 0xd4, 0xe1, 0x15, 0x49, 0xb4, 0xe9, 0xcd, 0xfe, 0x2d, 0x98, 0x1f, 0xfd, + 0x9c, 0x57, 0x62, 0xef, 0x1c, 0xf5, 0xb9, 0xf9, 0x23, 0x3f, 0x35, 0xd7, 0x8c, 0x7c, 0x67, 0x79, + 0x46, 0x78, 0xed, 0x9f, 0xc2, 0x73, 0xef, 0x40, 0x26, 0xa8, 0x2f, 0x5b, 0xf2, 0xf1, 0x89, 0x89, + 0xd0, 0xf0, 0xde, 0xa1, 0xfc, 0xee, 0xbe, 0x10, 0x7d, 0x66, 0xc5, 0x4d, 0xd3, 0x2e, 0x1d, 0xe0, + 0x19, 0x31, 0xa7, 0xe2, 0x2d, 0x3e, 0x8e, 0xc1, 0xc5, 0x15, 0x87, 0x32, 0xf5, 0x02, 0xe3, 0x70, + 0xaf, 0x1f, 0x90, 0x45, 0x68, 0x88, 0xae, 0x4d, 0x7a, 0x1f, 0x1a, 0x7f, 0x05, 0xda, 0x86, 0xb4, + 0xb8, 0x0e, 0x4d, 0x87, 0xbe, 0xe0, 0x23, 0xd0, 0xbc, 0xd3, 0xb5, 0x94, 0x44, 0x3b, 0x64, 0x28, + 0x70, 0x29, 0xb9, 0x3f, 0x82, 0x1b, 0x3f, 0x1d, 0x2e, 0x25, 0xf7, 0x23, 0xb8, 0xe7, 0x21, 0xa9, + 0x7a, 0xa1, 0x84, 0xbc, 0xe9, 0xd5, 0x0a, 0xdd, 0x86, 0x78, 0x8b, 0x10, 0x59, 0x66, 0x8f, 0x5b, + 0x37, 0x04, 0x43, 0xe4, 0x0a, 0x6a, 0xc0, 0x45, 0x35, 0xd5, 0xb3, 0xf5, 0x96, 0xb4, 0x28, 0x91, + 0x0a, 0xbd, 0x49, 0x86, 0xa7, 0x1e, 0xf1, 0xaf, 0xff, 0x56, 0x03, 0x08, 0x1f, 0xb3, 0xd0, 0x6b, + 0x70, 0xa1, 0xb2, 0xbe, 0x56, 0x35, 0x1a, 0x9b, 0x77, 0x36, 0xb7, 0x1a, 0xc6, 0xd6, 0x5a, 0x63, + 0xa3, 0xb6, 0x52, 0xbf, 0x5b, 0xaf, 0x55, 0x33, 0x53, 0xb9, 0xf4, 0xde, 0x83, 0x42, 0x6a, 0x8b, + 0xb2, 0x3e, 0x31, 0xed, 0x96, 0x4d, 0x2c, 0xf4, 0x05, 0x38, 0x3b, 0x4a, 0x2d, 0x56, 0xb5, 0x6a, + 0x46, 0xcb, 0xcd, 0xed, 0x3d, 0x28, 0xcc, 0x78, 0xfd, 0x3c, 0xb1, 0xd0, 0x55, 0x38, 0x37, 0x4e, + 0x57, 0x5f, 0x7b, 0x3d, 0x13, 0xcb, 0xcd, 0xef, 0x3d, 0x28, 0xcc, 0x06, 0x8d, 0x3f, 0x2a, 0x02, + 0x8a, 0x52, 0x2a, 0xbc, 0x78, 0x0e, 0xf6, 0x1e, 0x14, 0x92, 0x5e, 0xb6, 0xe4, 0x12, 0xef, 0xfe, + 0x7a, 0x69, 0xea, 0xfa, 0xf7, 0x01, 0xea, 0xb4, 0xe5, 0x62, 0x53, 0x56, 0x85, 0x1c, 0x9c, 0xaf, + 0xaf, 0xdd, 0xd5, 0xef, 0xac, 0x6c, 0xd6, 0xd7, 0xd7, 0x46, 0xc5, 0x3e, 0x70, 0x56, 0x5d, 0xdf, + 0xaa, 0xbc, 0x55, 0x33, 0x1a, 0xf5, 0xd7, 0xd7, 0x32, 0x1a, 0xba, 0x00, 0x67, 0x46, 0xce, 0xbe, + 0xb5, 0xb6, 0x59, 0x7f, 0xbb, 0x96, 0x89, 0x55, 0xee, 0x7e, 0xf4, 0x74, 0x49, 0x7b, 0xfc, 0x74, + 0x49, 0xfb, 0xdb, 0xd3, 0x25, 0xed, 0xfd, 0x67, 0x4b, 0x53, 0x8f, 0x9f, 0x2d, 0x4d, 0xfd, 0xe9, + 0xd9, 0xd2, 0xd4, 0x77, 0x5e, 0x6b, 0xdb, 0xbc, 0x33, 0x68, 0x96, 0x4c, 0xa7, 0xa7, 0xfe, 0x41, + 0x52, 0x3e, 0xf4, 0x66, 0x92, 0xff, 0x91, 0x68, 0x26, 0x65, 0x14, 0x7d, 0xf9, 0x3f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xc5, 0xee, 0x07, 0x4e, 0x09, 0x1a, 0x00, 0x00, } func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { @@ -1475,718 +1576,724 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 11371 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x90, 0x1c, 0xc7, - 0x79, 0xdf, 0xcd, 0xee, 0xde, 0x3e, 0xbe, 0x7d, 0xcd, 0xf5, 0x1d, 0x80, 0xc5, 0x82, 0xc4, 0x1d, - 0x87, 0x22, 0x09, 0x82, 0xe4, 0x81, 0x04, 0x09, 0x90, 0x3c, 0x48, 0x62, 0x76, 0xf7, 0x16, 0xc0, - 0x82, 0xf7, 0xe2, 0xec, 0x1e, 0x44, 0xd2, 0xb6, 0xc6, 0x73, 0xb3, 0x7d, 0x77, 0x43, 0xec, 0xce, - 0x8c, 0x76, 0x66, 0xc1, 0x3b, 0xfe, 0x91, 0x92, 0x23, 0x3b, 0x91, 0xe1, 0x47, 0xe4, 0xd8, 0x65, - 0xcb, 0x96, 0x60, 0x4b, 0x76, 0x6c, 0xc9, 0x4e, 0x9c, 0xd8, 0x96, 0xe2, 0x47, 0x5c, 0x71, 0xec, - 0x54, 0x1e, 0xb6, 0x2b, 0x49, 0x29, 0xfe, 0x23, 0x71, 0x52, 0x65, 0xc6, 0x92, 0x5c, 0xb1, 0x22, - 0xcb, 0x89, 0x1f, 0x72, 0xe2, 0x94, 0x2a, 0xa9, 0x54, 0xbf, 0xe6, 0xb1, 0x8f, 0xdb, 0x3d, 0x88, - 0x94, 0x15, 0x3b, 0xff, 0x00, 0x3b, 0xdd, 0xdf, 0xf7, 0xeb, 0xee, 0xaf, 0xbf, 0xfe, 0xfa, 0xeb, - 0xaf, 0x1f, 0x07, 0x9f, 0xbd, 0x0a, 0x4b, 0x7b, 0xb6, 0xbd, 0xd7, 0xc1, 0x17, 0x9c, 0x9e, 0xed, - 0xd9, 0x3b, 0xfd, 0xdd, 0x0b, 0x6d, 0xec, 0x1a, 0x3d, 0xd3, 0xf1, 0xec, 0xde, 0x32, 0x4d, 0x43, - 0x45, 0x46, 0xb1, 0x2c, 0x28, 0x94, 0x75, 0x98, 0xbb, 0x6a, 0x76, 0xf0, 0xaa, 0x4f, 0xd8, 0xc4, - 0x1e, 0x7a, 0x0e, 0x12, 0xbb, 0x66, 0x07, 0x97, 0xa4, 0xa5, 0xf8, 0xb9, 0xec, 0xc5, 0x77, 0x2c, - 0x0f, 0x30, 0x2d, 0x47, 0x39, 0xb6, 0x48, 0xb2, 0x4a, 0x39, 0x94, 0xff, 0x93, 0x80, 0xf9, 0x11, - 0xb9, 0x08, 0x41, 0xc2, 0xd2, 0xbb, 0x04, 0x51, 0x3a, 0x97, 0x51, 0xe9, 0x6f, 0x54, 0x82, 0x94, - 0xa3, 0x1b, 0xb7, 0xf4, 0x3d, 0x5c, 0x8a, 0xd1, 0x64, 0xf1, 0x89, 0xce, 0x02, 0xb4, 0xb1, 0x83, - 0xad, 0x36, 0xb6, 0x8c, 0xc3, 0x52, 0x7c, 0x29, 0x7e, 0x2e, 0xa3, 0x86, 0x52, 0xd0, 0x63, 0x30, - 0xe7, 0xf4, 0x77, 0x3a, 0xa6, 0xa1, 0x85, 0xc8, 0x60, 0x29, 0x7e, 0x6e, 0x56, 0x95, 0x59, 0xc6, - 0x6a, 0x40, 0xfc, 0x08, 0x14, 0x5f, 0xc7, 0xfa, 0xad, 0x30, 0x69, 0x96, 0x92, 0x16, 0x48, 0x72, - 0x88, 0xb0, 0x06, 0xb9, 0x2e, 0x76, 0x5d, 0x7d, 0x0f, 0x6b, 0xde, 0xa1, 0x83, 0x4b, 0x09, 0xda, - 0xfa, 0xa5, 0xa1, 0xd6, 0x0f, 0xb6, 0x3c, 0xcb, 0xb9, 0x5a, 0x87, 0x0e, 0x46, 0x15, 0xc8, 0x60, - 0xab, 0xdf, 0x65, 0x08, 0xb3, 0x63, 0xe4, 0x57, 0xb7, 0xfa, 0xdd, 0x41, 0x94, 0x34, 0x61, 0xe3, - 0x10, 0x29, 0x17, 0xf7, 0x6e, 0x9b, 0x06, 0x2e, 0x25, 0x29, 0xc0, 0x23, 0x43, 0x00, 0x4d, 0x96, - 0x3f, 0x88, 0x21, 0xf8, 0x50, 0x0d, 0x32, 0xf8, 0xc0, 0xc3, 0x96, 0x6b, 0xda, 0x56, 0x29, 0x45, - 0x41, 0x1e, 0x1a, 0xd1, 0x8b, 0xb8, 0xd3, 0x1e, 0x84, 0x08, 0xf8, 0xd0, 0x65, 0x48, 0xd9, 0x8e, - 0x67, 0xda, 0x96, 0x5b, 0x4a, 0x2f, 0x49, 0xe7, 0xb2, 0x17, 0xef, 0x1b, 0xa9, 0x08, 0x9b, 0x8c, - 0x46, 0x15, 0xc4, 0xa8, 0x01, 0xb2, 0x6b, 0xf7, 0x7b, 0x06, 0xd6, 0x0c, 0xbb, 0x8d, 0x35, 0xd3, - 0xda, 0xb5, 0x4b, 0x19, 0x0a, 0xb0, 0x38, 0xdc, 0x10, 0x4a, 0x58, 0xb3, 0xdb, 0xb8, 0x61, 0xed, - 0xda, 0x6a, 0xc1, 0x8d, 0x7c, 0xa3, 0x93, 0x90, 0x74, 0x0f, 0x2d, 0x4f, 0x3f, 0x28, 0xe5, 0xa8, - 0x86, 0xf0, 0x2f, 0xa2, 0x3a, 0xb8, 0x6d, 0x92, 0xe2, 0x4a, 0x79, 0xa6, 0x3a, 0xfc, 0x53, 0xf9, - 0xa5, 0x24, 0x14, 0xa7, 0x51, 0xbe, 0x2b, 0x30, 0xbb, 0x4b, 0xda, 0x5f, 0x8a, 0x1d, 0x47, 0x3a, - 0x8c, 0x27, 0x2a, 0xde, 0xe4, 0x3d, 0x8a, 0xb7, 0x02, 0x59, 0x0b, 0xbb, 0x1e, 0x6e, 0x33, 0x5d, - 0x89, 0x4f, 0xa9, 0x6d, 0xc0, 0x98, 0x86, 0x95, 0x2d, 0x71, 0x4f, 0xca, 0xf6, 0x32, 0x14, 0xfd, - 0x2a, 0x69, 0x3d, 0xdd, 0xda, 0x13, 0x5a, 0x7b, 0x61, 0x52, 0x4d, 0x96, 0xeb, 0x82, 0x4f, 0x25, - 0x6c, 0x6a, 0x01, 0x47, 0xbe, 0xd1, 0x2a, 0x80, 0x6d, 0x61, 0x7b, 0x57, 0x6b, 0x63, 0xa3, 0x53, - 0x4a, 0x8f, 0x91, 0xd2, 0x26, 0x21, 0x19, 0x92, 0x92, 0xcd, 0x52, 0x8d, 0x0e, 0x7a, 0x3e, 0x50, - 0xc2, 0xd4, 0x18, 0x1d, 0x5a, 0x67, 0xc3, 0x6f, 0x48, 0x0f, 0xb7, 0xa1, 0xd0, 0xc3, 0x64, 0x44, - 0xe0, 0x36, 0x6f, 0x59, 0x86, 0x56, 0x62, 0x79, 0x62, 0xcb, 0x54, 0xce, 0xc6, 0x1a, 0x96, 0xef, - 0x85, 0x3f, 0xd1, 0x83, 0xe0, 0x27, 0x68, 0x54, 0xad, 0x80, 0xda, 0xa7, 0x9c, 0x48, 0xdc, 0xd0, - 0xbb, 0xb8, 0xfc, 0x06, 0x14, 0xa2, 0xe2, 0x41, 0x0b, 0x30, 0xeb, 0x7a, 0x7a, 0xcf, 0xa3, 0x5a, - 0x38, 0xab, 0xb2, 0x0f, 0x24, 0x43, 0x1c, 0x5b, 0x6d, 0x6a, 0xff, 0x66, 0x55, 0xf2, 0x13, 0xfd, - 0xb5, 0xa0, 0xc1, 0x71, 0xda, 0xe0, 0x87, 0x87, 0x7b, 0x34, 0x82, 0x3c, 0xd8, 0xee, 0xf2, 0xb3, - 0x90, 0x8f, 0x34, 0x60, 0xda, 0xa2, 0x95, 0x9f, 0x4e, 0xc0, 0x89, 0x91, 0xd8, 0xe8, 0x65, 0x58, - 0xe8, 0x5b, 0xa6, 0xe5, 0xe1, 0x9e, 0xd3, 0xc3, 0x44, 0x65, 0x59, 0x59, 0xa5, 0xdf, 0x4f, 0x8d, - 0x51, 0xba, 0xed, 0x30, 0x35, 0x43, 0x51, 0xe7, 0xfb, 0xc3, 0x89, 0xe8, 0x15, 0xc8, 0x12, 0xfd, - 0xd0, 0x7b, 0x3a, 0x05, 0x64, 0xa3, 0xf1, 0xe2, 0x74, 0x4d, 0x5e, 0x5e, 0x0d, 0x38, 0xab, 0xf1, - 0x0f, 0x4a, 0x31, 0x35, 0x8c, 0x85, 0xf6, 0x21, 0x77, 0x1b, 0xf7, 0xcc, 0x5d, 0xd3, 0x60, 0xd8, - 0x44, 0x9c, 0x85, 0x8b, 0xcf, 0x4d, 0x89, 0x7d, 0x33, 0xc4, 0xda, 0xf4, 0x74, 0x0f, 0xaf, 0xc0, - 0xf6, 0xc6, 0xcd, 0xba, 0xda, 0xb8, 0xda, 0xa8, 0xaf, 0xaa, 0x11, 0xe4, 0xf2, 0xa7, 0x24, 0xc8, - 0x86, 0xea, 0x42, 0xcc, 0x96, 0xd5, 0xef, 0xee, 0xe0, 0x1e, 0x97, 0x38, 0xff, 0x42, 0x67, 0x20, - 0xb3, 0xdb, 0xef, 0x74, 0x98, 0xda, 0xb0, 0x39, 0x2f, 0x4d, 0x12, 0x88, 0xca, 0x10, 0x2b, 0xc5, - 0x0d, 0x01, 0xb5, 0x52, 0xe4, 0x37, 0x7a, 0x10, 0xb2, 0xa6, 0xab, 0xf5, 0xb0, 0x83, 0x75, 0x0f, - 0xb7, 0x4b, 0x89, 0x25, 0xe9, 0x5c, 0xba, 0x1a, 0x2b, 0x49, 0x2a, 0x98, 0xae, 0xca, 0x53, 0x51, - 0x19, 0xd2, 0x42, 0xf7, 0x4a, 0xb3, 0x84, 0x42, 0xf5, 0xbf, 0x59, 0x1e, 0xe7, 0x4e, 0x8a, 0x3c, - 0xf6, 0xad, 0x3c, 0x03, 0x73, 0x43, 0x8d, 0x44, 0x45, 0xc8, 0xae, 0xd6, 0x6b, 0x6b, 0x15, 0xb5, - 0xd2, 0x6a, 0x6c, 0x6e, 0xc8, 0x33, 0xa8, 0x00, 0xa1, 0x76, 0xcb, 0xd2, 0xf9, 0x4c, 0xfa, 0x0b, - 0x29, 0xf9, 0xfd, 0xef, 0x7f, 0xff, 0xfb, 0x63, 0xca, 0xaf, 0x25, 0x61, 0x61, 0x94, 0x95, 0x1b, - 0x69, 0x70, 0x03, 0x99, 0xc4, 0x23, 0x32, 0xa9, 0xc0, 0x6c, 0x47, 0xdf, 0xc1, 0x1d, 0xda, 0xb8, - 0xc2, 0xc5, 0xc7, 0xa6, 0xb2, 0xa3, 0xcb, 0x6b, 0x84, 0x45, 0x65, 0x9c, 0xe8, 0xdd, 0x5c, 0x72, - 0xb3, 0x14, 0xe1, 0xfc, 0x74, 0x08, 0xc4, 0xfa, 0x71, 0x29, 0x9f, 0x81, 0x0c, 0xf9, 0x9f, 0x75, - 0x4b, 0x92, 0x75, 0x0b, 0x49, 0xa0, 0xdd, 0x52, 0x86, 0x34, 0x35, 0x6c, 0x6d, 0xec, 0x77, 0x99, - 0xf8, 0x26, 0xa6, 0xa0, 0x8d, 0x77, 0xf5, 0x7e, 0xc7, 0xd3, 0x6e, 0xeb, 0x9d, 0x3e, 0xa6, 0x26, - 0x2a, 0xa3, 0xe6, 0x78, 0xe2, 0x4d, 0x92, 0x86, 0x16, 0x21, 0xcb, 0xec, 0xa0, 0x69, 0xb5, 0xf1, - 0x01, 0x9d, 0x09, 0x67, 0x55, 0x66, 0x1a, 0x1b, 0x24, 0x85, 0x14, 0xff, 0x9a, 0x6b, 0x5b, 0xc2, - 0x98, 0xd0, 0x22, 0x48, 0x02, 0x2d, 0xfe, 0xd9, 0xc1, 0x49, 0xf8, 0xfe, 0xd1, 0xcd, 0x1b, 0xb2, - 0x7e, 0x8f, 0x40, 0x91, 0x52, 0x3c, 0xcd, 0xc7, 0xaa, 0xde, 0x29, 0xcd, 0x51, 0x05, 0x28, 0xb0, - 0xe4, 0x4d, 0x9e, 0xaa, 0xfc, 0x7c, 0x0c, 0x12, 0x74, 0x2a, 0x28, 0x42, 0xb6, 0xf5, 0xca, 0x56, - 0x5d, 0x5b, 0xdd, 0xdc, 0xae, 0xae, 0xd5, 0x65, 0x89, 0x74, 0x3d, 0x4d, 0xb8, 0xba, 0xb6, 0x59, - 0x69, 0xc9, 0x31, 0xff, 0xbb, 0xb1, 0xd1, 0xba, 0xfc, 0x8c, 0x1c, 0xf7, 0x19, 0xb6, 0x59, 0x42, - 0x22, 0x4c, 0xf0, 0xf4, 0x45, 0x79, 0x16, 0xc9, 0x90, 0x63, 0x00, 0x8d, 0x97, 0xeb, 0xab, 0x97, - 0x9f, 0x91, 0x93, 0xd1, 0x94, 0xa7, 0x2f, 0xca, 0x29, 0x94, 0x87, 0x0c, 0x4d, 0xa9, 0x6e, 0x6e, - 0xae, 0xc9, 0x69, 0x1f, 0xb3, 0xd9, 0x52, 0x1b, 0x1b, 0xd7, 0xe4, 0x8c, 0x8f, 0x79, 0x4d, 0xdd, - 0xdc, 0xde, 0x92, 0xc1, 0x47, 0x58, 0xaf, 0x37, 0x9b, 0x95, 0x6b, 0x75, 0x39, 0xeb, 0x53, 0x54, - 0x5f, 0x69, 0xd5, 0x9b, 0x72, 0x2e, 0x52, 0xad, 0xa7, 0x2f, 0xca, 0x79, 0xbf, 0x88, 0xfa, 0xc6, - 0xf6, 0xba, 0x5c, 0x40, 0x73, 0x90, 0x67, 0x45, 0x88, 0x4a, 0x14, 0x07, 0x92, 0x2e, 0x3f, 0x23, - 0xcb, 0x41, 0x45, 0x18, 0xca, 0x5c, 0x24, 0xe1, 0xf2, 0x33, 0x32, 0x52, 0x6a, 0x30, 0x4b, 0xd5, - 0x10, 0x21, 0x28, 0xac, 0x55, 0xaa, 0xf5, 0x35, 0x6d, 0x73, 0x8b, 0x0c, 0x9a, 0xca, 0x9a, 0x2c, - 0x05, 0x69, 0x6a, 0xfd, 0xa5, 0xed, 0x86, 0x5a, 0x5f, 0x95, 0x63, 0xe1, 0xb4, 0xad, 0x7a, 0xa5, - 0x55, 0x5f, 0x95, 0xe3, 0x8a, 0x01, 0x0b, 0xa3, 0xa6, 0xc0, 0x91, 0x43, 0x28, 0xa4, 0x0b, 0xb1, - 0x31, 0xba, 0x40, 0xb1, 0x06, 0x75, 0x41, 0xf9, 0x7c, 0x0c, 0xe6, 0x47, 0xb8, 0x01, 0x23, 0x0b, - 0x79, 0x01, 0x66, 0x99, 0x2e, 0x33, 0x53, 0xfc, 0xe8, 0x48, 0x7f, 0x82, 0x6a, 0xf6, 0x90, 0x73, - 0x44, 0xf9, 0xc2, 0x6e, 0x63, 0x7c, 0x8c, 0xdb, 0x48, 0x20, 0x86, 0x14, 0xf6, 0x9b, 0x86, 0xa6, - 0x6b, 0xe6, 0xd1, 0x5c, 0x9e, 0xc6, 0xa3, 0xa1, 0x69, 0xc7, 0x9b, 0xb6, 0x67, 0x47, 0x4c, 0xdb, - 0x57, 0x60, 0x6e, 0x08, 0x68, 0xea, 0xe9, 0xf3, 0x03, 0x12, 0x94, 0xc6, 0x09, 0x67, 0x82, 0x49, - 0x8c, 0x45, 0x4c, 0xe2, 0x95, 0x41, 0x09, 0x3e, 0x30, 0xbe, 0x13, 0x86, 0xfa, 0xfa, 0x13, 0x12, - 0x9c, 0x1c, 0xbd, 0x3c, 0x18, 0x59, 0x87, 0x77, 0x43, 0xb2, 0x8b, 0xbd, 0x7d, 0x5b, 0x38, 0xc2, - 0x0f, 0x8f, 0x70, 0xaf, 0x48, 0xf6, 0x60, 0x67, 0x73, 0xae, 0xb0, 0x7f, 0x16, 0x1f, 0xe7, 0xe3, - 0xb3, 0xda, 0x0c, 0xd5, 0xf4, 0xdb, 0x63, 0x70, 0x62, 0x24, 0xf8, 0xc8, 0x8a, 0xde, 0x0f, 0x60, - 0x5a, 0x4e, 0xdf, 0x63, 0xce, 0x2e, 0xb3, 0xc4, 0x19, 0x9a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x7d, - 0xcf, 0xcf, 0x67, 0x93, 0x28, 0xb0, 0x24, 0x4a, 0xf0, 0x5c, 0x50, 0xd1, 0x04, 0xad, 0xe8, 0xd9, - 0x31, 0x2d, 0x1d, 0x52, 0xcc, 0x27, 0x41, 0x36, 0x3a, 0x26, 0xb6, 0x3c, 0xcd, 0xf5, 0x7a, 0x58, - 0xef, 0x9a, 0xd6, 0x1e, 0x9b, 0x67, 0x57, 0x66, 0x77, 0xf5, 0x8e, 0x8b, 0xd5, 0x22, 0xcb, 0x6e, - 0x8a, 0x5c, 0xc2, 0x41, 0x15, 0xa8, 0x17, 0xe2, 0x48, 0x46, 0x38, 0x58, 0xb6, 0xcf, 0xa1, 0x7c, - 0x4f, 0x06, 0xb2, 0xa1, 0xc5, 0x14, 0x7a, 0x00, 0x72, 0xaf, 0xe9, 0xb7, 0x75, 0x4d, 0x2c, 0x90, - 0x99, 0x24, 0xb2, 0x24, 0x6d, 0x8b, 0x2f, 0x92, 0x9f, 0x84, 0x05, 0x4a, 0x62, 0xf7, 0x3d, 0xdc, - 0xd3, 0x8c, 0x8e, 0xee, 0xba, 0x54, 0x68, 0x69, 0x4a, 0x8a, 0x48, 0xde, 0x26, 0xc9, 0xaa, 0x89, - 0x1c, 0x74, 0x09, 0xe6, 0x29, 0x47, 0xb7, 0xdf, 0xf1, 0x4c, 0xa7, 0x83, 0x35, 0xb2, 0x64, 0x77, - 0xe9, 0x94, 0xe3, 0xd7, 0x6c, 0x8e, 0x50, 0xac, 0x73, 0x02, 0x52, 0x23, 0x17, 0xad, 0xc2, 0xfd, - 0x94, 0x6d, 0x0f, 0x5b, 0xb8, 0xa7, 0x7b, 0x58, 0xc3, 0xef, 0xeb, 0xeb, 0x1d, 0x57, 0xd3, 0xad, - 0xb6, 0xb6, 0xaf, 0xbb, 0xfb, 0xa5, 0x05, 0xdf, 0x2d, 0x39, 0x4d, 0x08, 0xaf, 0x71, 0xba, 0x3a, - 0x25, 0xab, 0x58, 0xed, 0xeb, 0xba, 0xbb, 0x8f, 0x56, 0xe0, 0x24, 0x45, 0x71, 0xbd, 0x9e, 0x69, - 0xed, 0x69, 0xc6, 0x3e, 0x36, 0x6e, 0x69, 0x7d, 0x6f, 0xf7, 0xb9, 0xd2, 0x99, 0x70, 0xf9, 0xb4, - 0x86, 0x4d, 0x4a, 0x53, 0x23, 0x24, 0xdb, 0xde, 0xee, 0x73, 0xa8, 0x09, 0x39, 0xd2, 0x19, 0x5d, - 0xf3, 0x0d, 0xac, 0xed, 0xda, 0x3d, 0x3a, 0x87, 0x16, 0x46, 0x98, 0xa6, 0x90, 0x04, 0x97, 0x37, - 0x39, 0xc3, 0xba, 0xdd, 0xc6, 0x2b, 0xb3, 0xcd, 0xad, 0x7a, 0x7d, 0x55, 0xcd, 0x0a, 0x94, 0xab, - 0x76, 0x8f, 0x28, 0xd4, 0x9e, 0xed, 0x0b, 0x38, 0xcb, 0x14, 0x6a, 0xcf, 0x16, 0xe2, 0xbd, 0x04, - 0xf3, 0x86, 0xc1, 0xda, 0x6c, 0x1a, 0x1a, 0x5f, 0x58, 0xbb, 0x25, 0x39, 0x22, 0x2c, 0xc3, 0xb8, - 0xc6, 0x08, 0xb8, 0x8e, 0xbb, 0xe8, 0x79, 0x38, 0x11, 0x08, 0x2b, 0xcc, 0x38, 0x37, 0xd4, 0xca, - 0x41, 0xd6, 0x4b, 0x30, 0xef, 0x1c, 0x0e, 0x33, 0xa2, 0x48, 0x89, 0xce, 0xe1, 0x20, 0xdb, 0xb3, - 0xb0, 0xe0, 0xec, 0x3b, 0xc3, 0x7c, 0xe7, 0xc3, 0x7c, 0xc8, 0xd9, 0x77, 0x06, 0x19, 0x1f, 0xa2, - 0x51, 0x96, 0x1e, 0x36, 0xa8, 0x77, 0x78, 0x2a, 0x4c, 0x1e, 0xca, 0x40, 0xcb, 0x20, 0x1b, 0x86, - 0x86, 0x2d, 0x7d, 0xa7, 0x83, 0x35, 0xbd, 0x87, 0x2d, 0xdd, 0x2d, 0x2d, 0x52, 0xe2, 0x84, 0xd7, - 0xeb, 0x63, 0xb5, 0x60, 0x18, 0x75, 0x9a, 0x59, 0xa1, 0x79, 0xe8, 0x3c, 0xcc, 0xd9, 0x3b, 0xaf, - 0x19, 0x4c, 0x23, 0x35, 0xa7, 0x87, 0x77, 0xcd, 0x83, 0xd2, 0x3b, 0xa8, 0x78, 0x8b, 0x24, 0x83, - 0xea, 0xe3, 0x16, 0x4d, 0x46, 0x8f, 0x82, 0x6c, 0xb8, 0xfb, 0x7a, 0xcf, 0xa1, 0x26, 0xd9, 0x75, - 0x74, 0x03, 0x97, 0x1e, 0x62, 0xa4, 0x2c, 0x7d, 0x43, 0x24, 0x93, 0x11, 0xe1, 0xbe, 0x6e, 0xee, - 0x7a, 0x02, 0xf1, 0x11, 0x36, 0x22, 0x68, 0x1a, 0x47, 0x3b, 0x07, 0x32, 0x91, 0x44, 0xa4, 0xe0, - 0x73, 0x94, 0xac, 0xe0, 0xec, 0x3b, 0xe1, 0x72, 0x1f, 0x84, 0x3c, 0xa1, 0x0c, 0x0a, 0x7d, 0x94, - 0x39, 0x6e, 0xce, 0x7e, 0xa8, 0xc4, 0x67, 0xe0, 0x24, 0x21, 0xea, 0x62, 0x4f, 0x6f, 0xeb, 0x9e, - 0x1e, 0xa2, 0x7e, 0x9c, 0x52, 0x13, 0xb1, 0xaf, 0xf3, 0xcc, 0x48, 0x3d, 0x7b, 0xfd, 0x9d, 0x43, - 0x5f, 0xb1, 0x9e, 0x60, 0xf5, 0x24, 0x69, 0x42, 0xb5, 0xde, 0xb6, 0xd5, 0x94, 0xb2, 0x02, 0xb9, - 0xb0, 0xde, 0xa3, 0x0c, 0x30, 0xcd, 0x97, 0x25, 0xe2, 0x04, 0xd5, 0x36, 0x57, 0x89, 0xfb, 0xf2, - 0x6a, 0x5d, 0x8e, 0x11, 0x37, 0x6a, 0xad, 0xd1, 0xaa, 0x6b, 0xea, 0xf6, 0x46, 0xab, 0xb1, 0x5e, - 0x97, 0xe3, 0x21, 0xc7, 0xfe, 0x46, 0x22, 0xfd, 0xb0, 0xfc, 0x88, 0xf2, 0xcb, 0x71, 0x28, 0x44, - 0xd7, 0xd6, 0xe8, 0x9d, 0x70, 0x4a, 0x84, 0xc8, 0x5c, 0xec, 0x69, 0xaf, 0x9b, 0x3d, 0x3a, 0x20, - 0xbb, 0x3a, 0x9b, 0x1c, 0x7d, 0xfd, 0x59, 0xe0, 0x54, 0x4d, 0xec, 0xbd, 0xc7, 0xec, 0x91, 0xe1, - 0xd6, 0xd5, 0x3d, 0xb4, 0x06, 0x8b, 0x96, 0xad, 0xb9, 0x9e, 0x6e, 0xb5, 0xf5, 0x5e, 0x5b, 0x0b, - 0x82, 0x93, 0x9a, 0x6e, 0x18, 0xd8, 0x75, 0x6d, 0x36, 0x11, 0xfa, 0x28, 0xf7, 0x59, 0x76, 0x93, - 0x13, 0x07, 0x33, 0x44, 0x85, 0x93, 0x0e, 0xa8, 0x6f, 0x7c, 0x9c, 0xfa, 0x9e, 0x81, 0x4c, 0x57, - 0x77, 0x34, 0x6c, 0x79, 0xbd, 0x43, 0xea, 0x9f, 0xa7, 0xd5, 0x74, 0x57, 0x77, 0xea, 0xe4, 0x1b, - 0xdd, 0x84, 0x87, 0x03, 0x52, 0xad, 0x83, 0xf7, 0x74, 0xe3, 0x50, 0xa3, 0xce, 0x38, 0x0d, 0xf4, - 0x68, 0x86, 0x6d, 0xed, 0x76, 0x4c, 0xc3, 0x73, 0xa9, 0x7d, 0x60, 0x36, 0x4e, 0x09, 0x38, 0xd6, - 0x28, 0xc3, 0x0d, 0xd7, 0xb6, 0xa8, 0x0f, 0x5e, 0x13, 0xd4, 0x6f, 0x5f, 0x0f, 0x47, 0x7b, 0x29, - 0x21, 0xcf, 0xde, 0x48, 0xa4, 0x67, 0xe5, 0xe4, 0x8d, 0x44, 0x3a, 0x29, 0xa7, 0x6e, 0x24, 0xd2, - 0x69, 0x39, 0x73, 0x23, 0x91, 0xce, 0xc8, 0xa0, 0x7c, 0x5b, 0x06, 0x72, 0xe1, 0x95, 0x01, 0x59, - 0x68, 0x19, 0x74, 0x6e, 0x94, 0xa8, 0xf5, 0x7c, 0xf0, 0xc8, 0x75, 0xc4, 0x72, 0x8d, 0x4c, 0x9a, - 0x2b, 0x49, 0xe6, 0x86, 0xab, 0x8c, 0x93, 0x38, 0x2c, 0x44, 0xad, 0x31, 0x73, 0x7b, 0xd2, 0x2a, - 0xff, 0x42, 0xd7, 0x20, 0xf9, 0x9a, 0x4b, 0xb1, 0x93, 0x14, 0xfb, 0x1d, 0x47, 0x63, 0xdf, 0x68, - 0x52, 0xf0, 0xcc, 0x8d, 0xa6, 0xb6, 0xb1, 0xa9, 0xae, 0x57, 0xd6, 0x54, 0xce, 0x8e, 0x4e, 0x43, - 0xa2, 0xa3, 0xbf, 0x71, 0x18, 0x9d, 0x5e, 0x69, 0x12, 0x5a, 0x86, 0x62, 0xdf, 0x62, 0xab, 0x6e, - 0xd2, 0x55, 0x84, 0xaa, 0x18, 0xa6, 0x2a, 0x04, 0xb9, 0x6b, 0x84, 0x7e, 0x4a, 0xf5, 0x38, 0x0d, - 0x89, 0xd7, 0xb1, 0x7e, 0x2b, 0x3a, 0x09, 0xd2, 0x24, 0x74, 0x0e, 0x72, 0x6d, 0xbc, 0xd3, 0xdf, - 0xd3, 0x7a, 0xb8, 0xad, 0x1b, 0x5e, 0xd4, 0xf4, 0x67, 0x69, 0x96, 0x4a, 0x73, 0xd0, 0x8b, 0x90, - 0x21, 0x7d, 0x64, 0xd1, 0x3e, 0x9e, 0xa3, 0x22, 0x78, 0xe2, 0x68, 0x11, 0xf0, 0x2e, 0x16, 0x4c, - 0x6a, 0xc0, 0x8f, 0x6e, 0x40, 0xd2, 0xd3, 0x7b, 0x7b, 0xd8, 0xa3, 0x96, 0xbf, 0x30, 0x22, 0x5c, - 0x35, 0x02, 0xa9, 0x45, 0x39, 0x88, 0x58, 0xa9, 0x8e, 0x72, 0x04, 0x74, 0x1d, 0x52, 0xec, 0x97, - 0x5b, 0x9a, 0x5f, 0x8a, 0x1f, 0x1f, 0x4c, 0x15, 0xec, 0x6f, 0xa3, 0xcd, 0xba, 0x00, 0xb3, 0x54, - 0xd9, 0x10, 0x00, 0x57, 0x37, 0x79, 0x06, 0xa5, 0x21, 0x51, 0xdb, 0x54, 0x89, 0xdd, 0x92, 0x21, - 0xc7, 0x52, 0xb5, 0xad, 0x46, 0xbd, 0x56, 0x97, 0x63, 0xca, 0x25, 0x48, 0x32, 0x0d, 0x22, 0x36, - 0xcd, 0xd7, 0x21, 0x79, 0x86, 0x7f, 0x72, 0x0c, 0x49, 0xe4, 0x6e, 0xaf, 0x57, 0xeb, 0xaa, 0x1c, - 0x53, 0xb6, 0xa1, 0x38, 0x20, 0x75, 0x74, 0x02, 0xe6, 0xd4, 0x7a, 0xab, 0xbe, 0x41, 0x56, 0x6d, - 0xda, 0xf6, 0xc6, 0x8b, 0x1b, 0x9b, 0xef, 0xd9, 0x90, 0x67, 0xa2, 0xc9, 0xc2, 0x40, 0x4a, 0x68, - 0x01, 0xe4, 0x20, 0xb9, 0xb9, 0xb9, 0xad, 0xd2, 0xda, 0x7c, 0x67, 0x0c, 0xe4, 0x41, 0xb1, 0xa1, - 0x53, 0x30, 0xdf, 0xaa, 0xa8, 0xd7, 0xea, 0x2d, 0x8d, 0xad, 0x44, 0x7d, 0xe8, 0x05, 0x90, 0xc3, - 0x19, 0x57, 0x1b, 0x74, 0xa1, 0xbd, 0x08, 0x67, 0xc2, 0xa9, 0xf5, 0x97, 0x5b, 0xf5, 0x8d, 0x26, - 0x2d, 0xbc, 0xb2, 0x71, 0x8d, 0x58, 0xeb, 0x01, 0x3c, 0xb1, 0xf6, 0x8d, 0x93, 0xaa, 0x46, 0xf1, - 0xea, 0x6b, 0xab, 0x72, 0x62, 0x30, 0x79, 0x73, 0xa3, 0xbe, 0x79, 0x55, 0x9e, 0x1d, 0x2c, 0x9d, - 0xae, 0x87, 0x93, 0xa8, 0x0c, 0x27, 0x07, 0x53, 0xb5, 0xfa, 0x46, 0x4b, 0x7d, 0x45, 0x4e, 0x0d, - 0x16, 0xdc, 0xac, 0xab, 0x37, 0x1b, 0xb5, 0xba, 0x9c, 0x46, 0x27, 0x01, 0x45, 0x6b, 0xd4, 0xba, - 0xbe, 0xb9, 0x2a, 0x67, 0x86, 0xec, 0x93, 0xe2, 0x42, 0x2e, 0xbc, 0x28, 0xfd, 0x9a, 0x98, 0x46, - 0xe5, 0xc3, 0x31, 0xc8, 0x86, 0x16, 0x99, 0x64, 0x75, 0xa0, 0x77, 0x3a, 0xf6, 0xeb, 0x9a, 0xde, - 0x31, 0x75, 0x97, 0x5b, 0x2f, 0xa0, 0x49, 0x15, 0x92, 0x32, 0xad, 0xb5, 0x98, 0x7e, 0xbe, 0x48, - 0x7e, 0x3d, 0xce, 0x17, 0xb3, 0x72, 0x52, 0xf9, 0x61, 0x09, 0xe4, 0xc1, 0xd5, 0xe3, 0x40, 0xf3, - 0xa5, 0x71, 0xcd, 0xff, 0x9a, 0xf4, 0xdd, 0x47, 0x25, 0x28, 0x44, 0x97, 0x8c, 0x03, 0xd5, 0x7b, - 0xe0, 0x2f, 0xb4, 0x7a, 0xbf, 0x1b, 0x83, 0x7c, 0x64, 0xa1, 0x38, 0x6d, 0xed, 0xde, 0x07, 0x73, - 0x66, 0x1b, 0x77, 0x1d, 0xdb, 0xc3, 0x96, 0x71, 0xa8, 0x75, 0xf0, 0x6d, 0xdc, 0x29, 0x29, 0xd4, - 0xc4, 0x5f, 0x38, 0x7a, 0x29, 0xba, 0xdc, 0x08, 0xf8, 0xd6, 0x08, 0xdb, 0xca, 0x7c, 0x63, 0xb5, - 0xbe, 0xbe, 0xb5, 0xd9, 0xaa, 0x6f, 0xd4, 0x5e, 0x11, 0xd6, 0x45, 0x95, 0xcd, 0x01, 0xb2, 0xb7, - 0xd1, 0x68, 0x6f, 0x81, 0x3c, 0x58, 0x29, 0x62, 0x2b, 0x46, 0x54, 0x4b, 0x9e, 0x41, 0xf3, 0x50, - 0xdc, 0xd8, 0xd4, 0x9a, 0x8d, 0xd5, 0xba, 0x56, 0xbf, 0x7a, 0xb5, 0x5e, 0x6b, 0x35, 0x59, 0x70, - 0xd1, 0xa7, 0x6e, 0xc9, 0xb1, 0xb0, 0x88, 0x7f, 0x28, 0x0e, 0xf3, 0x23, 0x6a, 0x82, 0x2a, 0x3c, - 0x2c, 0xc0, 0x22, 0x15, 0x4f, 0x4c, 0x53, 0xfb, 0x65, 0xe2, 0x98, 0x6f, 0xe9, 0x3d, 0x8f, 0x47, - 0x11, 0x1e, 0x05, 0x22, 0x25, 0xcb, 0x23, 0x7e, 0x42, 0x8f, 0x07, 0x6d, 0x59, 0xac, 0xa0, 0x18, - 0xa4, 0xb3, 0xb8, 0xed, 0xe3, 0x80, 0x1c, 0xdb, 0x35, 0x3d, 0xf3, 0x36, 0xd6, 0x4c, 0x4b, 0x44, - 0x78, 0x13, 0x4b, 0xd2, 0xb9, 0x84, 0x2a, 0x8b, 0x9c, 0x86, 0xe5, 0xf9, 0xd4, 0x16, 0xde, 0xd3, - 0x07, 0xa8, 0x89, 0x1f, 0x13, 0x57, 0x65, 0x91, 0xe3, 0x53, 0x3f, 0x00, 0xb9, 0xb6, 0xdd, 0x27, - 0x0b, 0x2a, 0x46, 0x47, 0xac, 0x85, 0xa4, 0x66, 0x59, 0x9a, 0x4f, 0xc2, 0x97, 0xca, 0x41, 0x68, - 0x39, 0xa7, 0x66, 0x59, 0x1a, 0x23, 0x79, 0x04, 0x8a, 0xfa, 0xde, 0x5e, 0x8f, 0x80, 0x0b, 0x20, - 0xb6, 0xf8, 0x2f, 0xf8, 0xc9, 0x94, 0xb0, 0x7c, 0x03, 0xd2, 0x42, 0x0e, 0xc4, 0x1f, 0x26, 0x92, - 0xd0, 0x1c, 0x16, 0xd1, 0x8a, 0x9d, 0xcb, 0xa8, 0x69, 0x4b, 0x64, 0x3e, 0x00, 0x39, 0xd3, 0xd5, - 0x82, 0xbd, 0xcd, 0xd8, 0x52, 0xec, 0x5c, 0x5a, 0xcd, 0x9a, 0xae, 0xbf, 0x47, 0xa2, 0x7c, 0x22, - 0x06, 0x85, 0xe8, 0xae, 0x2d, 0x5a, 0x85, 0x74, 0xc7, 0xe6, 0x9b, 0x2c, 0xec, 0xc8, 0xc0, 0xb9, - 0x09, 0x1b, 0xbd, 0xcb, 0x6b, 0x9c, 0x5e, 0xf5, 0x39, 0xcb, 0xff, 0x56, 0x82, 0xb4, 0x48, 0x46, - 0x27, 0x21, 0xe1, 0xe8, 0xde, 0x3e, 0x85, 0x9b, 0xad, 0xc6, 0x64, 0x49, 0xa5, 0xdf, 0x24, 0xdd, - 0x75, 0x74, 0xb6, 0x4f, 0xc4, 0xd3, 0xc9, 0x37, 0xe9, 0xd7, 0x0e, 0xd6, 0xdb, 0x34, 0xb2, 0x60, - 0x77, 0xbb, 0xd8, 0xf2, 0x5c, 0xd1, 0xaf, 0x3c, 0xbd, 0xc6, 0x93, 0xd1, 0x63, 0x30, 0xe7, 0xf5, - 0x74, 0xb3, 0x13, 0xa1, 0x4d, 0x50, 0x5a, 0x59, 0x64, 0xf8, 0xc4, 0x2b, 0x70, 0x5a, 0xe0, 0xb6, - 0xb1, 0xa7, 0x1b, 0xfb, 0xb8, 0x1d, 0x30, 0x25, 0x69, 0x04, 0xf1, 0x14, 0x27, 0x58, 0xe5, 0xf9, - 0x82, 0x57, 0xf9, 0x4c, 0x0c, 0xe6, 0x44, 0x2c, 0xa4, 0xed, 0x0b, 0x6b, 0x1d, 0x40, 0xb7, 0x2c, - 0xdb, 0x0b, 0x8b, 0x6b, 0x58, 0x95, 0x87, 0xf8, 0x96, 0x2b, 0x3e, 0x93, 0x1a, 0x02, 0x28, 0xff, - 0x81, 0x04, 0x10, 0x64, 0x8d, 0x95, 0xdb, 0x22, 0x64, 0xf9, 0x9e, 0x3c, 0x3d, 0xd8, 0xc1, 0xc2, - 0x67, 0xc0, 0x92, 0xae, 0x9a, 0x1d, 0x1a, 0xe4, 0xdc, 0xc1, 0x7b, 0xa6, 0xc5, 0x77, 0x67, 0xd8, - 0x87, 0x08, 0x72, 0x26, 0x82, 0xed, 0x49, 0x15, 0xd2, 0x2e, 0xee, 0xea, 0x96, 0x67, 0x1a, 0x7c, - 0xbf, 0xe5, 0xf2, 0xb1, 0x2a, 0xbf, 0xdc, 0xe4, 0xdc, 0xaa, 0x8f, 0xa3, 0x9c, 0x83, 0xb4, 0x48, - 0x25, 0x8e, 0xdf, 0xc6, 0xe6, 0x46, 0x5d, 0x9e, 0x41, 0x29, 0x88, 0x37, 0xeb, 0x2d, 0x59, 0x22, - 0x8b, 0xd8, 0xca, 0x5a, 0xa3, 0xd2, 0x94, 0x63, 0xd5, 0xbf, 0x0e, 0xf3, 0x86, 0xdd, 0x1d, 0x2c, - 0xb0, 0x2a, 0x0f, 0x04, 0x10, 0xdd, 0xeb, 0xd2, 0xab, 0x4f, 0x70, 0xa2, 0x3d, 0xbb, 0xa3, 0x5b, - 0x7b, 0xcb, 0x76, 0x6f, 0x2f, 0x38, 0x16, 0x43, 0xd6, 0x1a, 0x6e, 0xe8, 0x70, 0x8c, 0xb3, 0xf3, - 0xe7, 0x92, 0xf4, 0xa3, 0xb1, 0xf8, 0xb5, 0xad, 0xea, 0x4f, 0xc5, 0xca, 0xd7, 0x18, 0xe3, 0x96, - 0x68, 0x8e, 0x8a, 0x77, 0x3b, 0xd8, 0x20, 0x95, 0x87, 0x3f, 0x7c, 0x0c, 0x16, 0xf6, 0xec, 0x3d, - 0x9b, 0x22, 0x5d, 0x20, 0xbf, 0xf8, 0xb9, 0x9a, 0x8c, 0x9f, 0x5a, 0x9e, 0x78, 0x08, 0x67, 0x65, - 0x03, 0xe6, 0x39, 0xb1, 0x46, 0xb7, 0xef, 0x59, 0xa8, 0x02, 0x1d, 0x19, 0x27, 0x2f, 0xfd, 0xec, - 0xef, 0x51, 0xaf, 0x44, 0x9d, 0xe3, 0xac, 0x24, 0x8f, 0x45, 0x33, 0x56, 0x54, 0x38, 0x11, 0xc1, - 0x63, 0x36, 0x02, 0xf7, 0x26, 0x20, 0xfe, 0x0b, 0x8e, 0x38, 0x1f, 0x42, 0x6c, 0x72, 0xd6, 0x95, - 0x1a, 0xe4, 0x8f, 0x83, 0xf5, 0x2f, 0x39, 0x56, 0x0e, 0x87, 0x41, 0xae, 0x41, 0x91, 0x82, 0x18, - 0x7d, 0xd7, 0xb3, 0xbb, 0xd4, 0x00, 0x1f, 0x0d, 0xf3, 0xaf, 0x7e, 0x8f, 0x0d, 0xda, 0x02, 0x61, - 0xab, 0xf9, 0x5c, 0x2b, 0x2b, 0x40, 0x4f, 0x2c, 0xb4, 0xb1, 0xd1, 0x99, 0x80, 0xf0, 0xeb, 0xbc, - 0x22, 0x3e, 0xfd, 0xca, 0x4d, 0x58, 0x20, 0xbf, 0xa9, 0x7d, 0x0c, 0xd7, 0x64, 0x72, 0x50, 0xbd, - 0xf4, 0xef, 0x3e, 0xc0, 0xec, 0xc2, 0xbc, 0x0f, 0x10, 0xaa, 0x53, 0xa8, 0x17, 0xf7, 0xb0, 0xe7, - 0xe1, 0x9e, 0xab, 0xe9, 0x9d, 0x51, 0xd5, 0x0b, 0x45, 0x25, 0x4b, 0x3f, 0xf8, 0xa5, 0x68, 0x2f, - 0x5e, 0x63, 0x9c, 0x95, 0x4e, 0x67, 0x65, 0x1b, 0x4e, 0x8d, 0xd0, 0x8a, 0x29, 0x30, 0x7f, 0x88, - 0x63, 0x2e, 0x0c, 0x69, 0x06, 0x81, 0xdd, 0x02, 0x91, 0xee, 0xf7, 0xe5, 0x14, 0x98, 0x1f, 0xe1, - 0x98, 0x88, 0xf3, 0x8a, 0x2e, 0x25, 0x88, 0x37, 0x60, 0xee, 0x36, 0xee, 0xed, 0xd8, 0x2e, 0x8f, - 0x04, 0x4f, 0x01, 0xf7, 0x51, 0x0e, 0x57, 0xe4, 0x8c, 0x34, 0x34, 0x4c, 0xb0, 0x9e, 0x87, 0xf4, - 0xae, 0x6e, 0xe0, 0x29, 0x20, 0xee, 0x72, 0x88, 0x14, 0xa1, 0x27, 0xac, 0x15, 0xc8, 0xed, 0xd9, - 0x7c, 0x8a, 0x9c, 0xcc, 0xfe, 0xc3, 0x9c, 0x3d, 0x2b, 0x78, 0x38, 0x84, 0x63, 0x3b, 0xfd, 0x0e, - 0x99, 0x3f, 0x27, 0x43, 0xfc, 0x88, 0x80, 0x10, 0x3c, 0x1c, 0xe2, 0x18, 0x62, 0xfd, 0x98, 0x80, - 0x70, 0x43, 0xf2, 0x7c, 0x01, 0xb2, 0xb6, 0xd5, 0x39, 0xb4, 0xad, 0x69, 0x2a, 0xf1, 0x71, 0x8e, - 0x00, 0x9c, 0x85, 0x00, 0x5c, 0x81, 0xcc, 0xb4, 0x1d, 0xf1, 0xe3, 0x5f, 0x12, 0xc3, 0x43, 0xf4, - 0xc0, 0x35, 0x28, 0x0a, 0x03, 0x65, 0xda, 0xd6, 0x14, 0x10, 0x3f, 0xc1, 0x21, 0x0a, 0x21, 0x36, - 0xde, 0x0c, 0x0f, 0xbb, 0xde, 0x1e, 0x9e, 0x06, 0xe4, 0x13, 0xa2, 0x19, 0x9c, 0x85, 0x8b, 0x72, - 0x07, 0x5b, 0xc6, 0xfe, 0x74, 0x08, 0x9f, 0x14, 0xa2, 0x14, 0x3c, 0x04, 0xa2, 0x06, 0xf9, 0xae, - 0xde, 0x73, 0xf7, 0xf5, 0xce, 0x54, 0xdd, 0xf1, 0x93, 0x1c, 0x23, 0xe7, 0x33, 0x71, 0x89, 0xf4, - 0xad, 0xe3, 0xc0, 0xfc, 0x94, 0x90, 0x48, 0x88, 0x8d, 0x0f, 0x3d, 0xd7, 0xa3, 0x61, 0xf3, 0xe3, - 0xa0, 0xfd, 0x3d, 0x31, 0xf4, 0x18, 0xef, 0x7a, 0x18, 0xf1, 0x0a, 0x64, 0x5c, 0xf3, 0x8d, 0xa9, - 0x60, 0xfe, 0xbe, 0xe8, 0x69, 0xca, 0x40, 0x98, 0x5f, 0x81, 0xd3, 0x23, 0xa7, 0x89, 0x29, 0xc0, - 0x7e, 0x9a, 0x83, 0x9d, 0x1c, 0x31, 0x55, 0x70, 0x93, 0x70, 0x5c, 0xc8, 0x7f, 0x20, 0x4c, 0x02, - 0x1e, 0xc0, 0xda, 0x22, 0x8b, 0x16, 0x57, 0xdf, 0x3d, 0x9e, 0xd4, 0xfe, 0xa1, 0x90, 0x1a, 0xe3, - 0x8d, 0x48, 0xad, 0x05, 0x27, 0x39, 0xe2, 0xf1, 0xfa, 0xf5, 0x67, 0x84, 0x61, 0x65, 0xdc, 0xdb, - 0xd1, 0xde, 0xfd, 0x06, 0x28, 0xfb, 0xe2, 0x14, 0xde, 0xb1, 0xab, 0x75, 0x75, 0x67, 0x0a, 0xe4, - 0x9f, 0xe5, 0xc8, 0xc2, 0xe2, 0xfb, 0xee, 0xb5, 0xbb, 0xae, 0x3b, 0x04, 0xfc, 0x65, 0x28, 0x09, - 0xf0, 0xbe, 0xd5, 0xc3, 0x86, 0xbd, 0x67, 0x99, 0x6f, 0xe0, 0xf6, 0x14, 0xd0, 0x3f, 0x37, 0xd0, - 0x55, 0xdb, 0x21, 0x76, 0x82, 0xdc, 0x00, 0xd9, 0xf7, 0x55, 0x34, 0xb3, 0xeb, 0xd8, 0x3d, 0x6f, - 0x02, 0xe2, 0xa7, 0x44, 0x4f, 0xf9, 0x7c, 0x0d, 0xca, 0xb6, 0x52, 0x07, 0x76, 0x96, 0x64, 0x5a, - 0x95, 0xfc, 0x34, 0x07, 0xca, 0x07, 0x5c, 0xdc, 0x70, 0x18, 0x76, 0xd7, 0xd1, 0x7b, 0xd3, 0xd8, - 0xbf, 0x7f, 0x24, 0x0c, 0x07, 0x67, 0xe1, 0x86, 0x83, 0x78, 0x74, 0x64, 0xb6, 0x9f, 0x02, 0xe1, - 0xe7, 0x85, 0xe1, 0x10, 0x3c, 0x1c, 0x42, 0x38, 0x0c, 0x53, 0x40, 0xfc, 0x82, 0x80, 0x10, 0x3c, - 0x04, 0xe2, 0xa5, 0x60, 0xa2, 0xed, 0xe1, 0x3d, 0xd3, 0xf5, 0xf8, 0x61, 0xb0, 0xa3, 0xa1, 0x7e, - 0xf1, 0x4b, 0x51, 0x27, 0x4c, 0x0d, 0xb1, 0x12, 0x4b, 0xc4, 0x37, 0x52, 0xe8, 0x92, 0x6d, 0x72, - 0xc5, 0x7e, 0x49, 0x58, 0xa2, 0x10, 0x1b, 0xa9, 0x5b, 0xc8, 0x43, 0x24, 0x62, 0x37, 0xc8, 0x42, - 0x65, 0x0a, 0xb8, 0x7f, 0x3c, 0x50, 0xb9, 0xa6, 0xe0, 0x25, 0x98, 0x21, 0xff, 0xa7, 0x6f, 0xdd, - 0xc2, 0x87, 0x53, 0x69, 0xe7, 0x2f, 0x0f, 0xf8, 0x3f, 0xdb, 0x8c, 0x93, 0xd9, 0x90, 0xe2, 0x80, - 0x3f, 0x85, 0x26, 0x9d, 0xf5, 0x2c, 0x7d, 0xcb, 0x97, 0x79, 0x7b, 0xa3, 0xee, 0xd4, 0xca, 0x1a, - 0x51, 0xf2, 0xa8, 0xd3, 0x33, 0x19, 0xec, 0x03, 0x5f, 0xf6, 0xf5, 0x3c, 0xe2, 0xf3, 0xac, 0x5c, - 0x85, 0x7c, 0xc4, 0xe1, 0x99, 0x0c, 0xf5, 0xad, 0x1c, 0x2a, 0x17, 0xf6, 0x77, 0x56, 0x2e, 0x41, - 0x82, 0x38, 0x2f, 0x93, 0xd9, 0xbf, 0x8d, 0xb3, 0x53, 0xf2, 0x95, 0x77, 0x41, 0x5a, 0x38, 0x2d, - 0x93, 0x59, 0xff, 0x26, 0x67, 0xf5, 0x59, 0x08, 0xbb, 0x70, 0x58, 0x26, 0xb3, 0xff, 0x2d, 0xc1, - 0x2e, 0x58, 0x08, 0xfb, 0xf4, 0x22, 0xfc, 0xd5, 0xef, 0x48, 0xf0, 0x49, 0x47, 0xc8, 0xee, 0x0a, - 0xa4, 0xb8, 0xa7, 0x32, 0x99, 0xfb, 0xdb, 0x79, 0xe1, 0x82, 0x63, 0xe5, 0x59, 0x98, 0x9d, 0x52, - 0xe0, 0xdf, 0xc5, 0x59, 0x19, 0xfd, 0x4a, 0x0d, 0xb2, 0x21, 0xef, 0x64, 0x32, 0xfb, 0x77, 0x73, - 0xf6, 0x30, 0x17, 0xa9, 0x3a, 0xf7, 0x4e, 0x26, 0x03, 0xfc, 0x6d, 0x51, 0x75, 0xce, 0x41, 0xc4, - 0x26, 0x1c, 0x93, 0xc9, 0xdc, 0x1f, 0x12, 0x52, 0x17, 0x2c, 0x2b, 0x2f, 0x40, 0xc6, 0x9f, 0x6c, - 0x26, 0xf3, 0x7f, 0x0f, 0xe7, 0x0f, 0x78, 0x88, 0x04, 0x42, 0x93, 0xdd, 0x64, 0x88, 0xbf, 0x23, - 0x24, 0x10, 0xe2, 0x22, 0xc3, 0x68, 0xd0, 0x81, 0x99, 0x8c, 0xf4, 0xbd, 0x62, 0x18, 0x0d, 0xf8, - 0x2f, 0xa4, 0x37, 0xa9, 0xcd, 0x9f, 0x0c, 0xf1, 0x7d, 0xa2, 0x37, 0x29, 0x3d, 0xa9, 0xc6, 0xa0, - 0x47, 0x30, 0x19, 0xe3, 0x07, 0x44, 0x35, 0x06, 0x1c, 0x82, 0x95, 0x2d, 0x40, 0xc3, 0xde, 0xc0, - 0x64, 0xbc, 0x0f, 0x73, 0xbc, 0xb9, 0x21, 0x67, 0x60, 0xe5, 0x3d, 0x70, 0x72, 0xb4, 0x27, 0x30, - 0x19, 0xf5, 0x07, 0xbf, 0x3c, 0xb0, 0x76, 0x0b, 0x3b, 0x02, 0x2b, 0xad, 0x60, 0x4a, 0x09, 0x7b, - 0x01, 0x93, 0x61, 0x7f, 0xe8, 0xcb, 0x51, 0xc3, 0x1d, 0x76, 0x02, 0x56, 0x2a, 0x00, 0xc1, 0x04, - 0x3c, 0x19, 0xeb, 0xa3, 0x1c, 0x2b, 0xc4, 0x44, 0x86, 0x06, 0x9f, 0x7f, 0x27, 0xf3, 0xdf, 0x15, - 0x43, 0x83, 0x73, 0x90, 0xa1, 0x21, 0xa6, 0xde, 0xc9, 0xdc, 0x3f, 0x2c, 0x86, 0x86, 0x60, 0x21, - 0x9a, 0x1d, 0x9a, 0xdd, 0x26, 0x23, 0x7c, 0x5c, 0x68, 0x76, 0x88, 0x6b, 0x65, 0x03, 0xe6, 0x86, - 0x26, 0xc4, 0xc9, 0x50, 0x3f, 0xca, 0xa1, 0xe4, 0xc1, 0xf9, 0x30, 0x3c, 0x79, 0xf1, 0xc9, 0x70, - 0x32, 0xda, 0x8f, 0x0d, 0x4c, 0x5e, 0x7c, 0x2e, 0x5c, 0xb9, 0x02, 0x69, 0xab, 0xdf, 0xe9, 0x90, - 0xc1, 0x83, 0x8e, 0x3e, 0xed, 0x5b, 0xfa, 0xaf, 0x5f, 0xe1, 0xd2, 0x11, 0x0c, 0x2b, 0x97, 0x60, - 0x16, 0x77, 0x77, 0x70, 0x7b, 0x12, 0xe7, 0x17, 0xbf, 0x22, 0x0c, 0x26, 0xa1, 0x5e, 0x79, 0x01, - 0x80, 0x85, 0x46, 0xe8, 0x36, 0xfc, 0x04, 0xde, 0x3f, 0xf8, 0x0a, 0x3f, 0x5e, 0x17, 0xb0, 0x04, - 0x00, 0xec, 0xb0, 0xde, 0xd1, 0x00, 0x5f, 0x8a, 0x02, 0xd0, 0x1e, 0x79, 0x1e, 0x52, 0xaf, 0xb9, - 0xb6, 0xe5, 0xe9, 0x7b, 0x93, 0xb8, 0xff, 0x90, 0x73, 0x0b, 0x7a, 0x22, 0xb0, 0xae, 0xdd, 0xc3, - 0x9e, 0xbe, 0xe7, 0x4e, 0xe2, 0xfd, 0x6f, 0x9c, 0xd7, 0x67, 0x20, 0xcc, 0x86, 0xee, 0x7a, 0xd3, - 0xb4, 0xfb, 0xbf, 0x0b, 0x66, 0xc1, 0x40, 0x2a, 0x4d, 0x7e, 0xdf, 0xc2, 0x87, 0x93, 0x78, 0xff, - 0x48, 0x54, 0x9a, 0xd3, 0xaf, 0xbc, 0x0b, 0x32, 0xe4, 0x27, 0x3b, 0x33, 0x3b, 0x81, 0xf9, 0x8f, - 0x39, 0x73, 0xc0, 0x41, 0x4a, 0x76, 0xbd, 0xb6, 0x67, 0x4e, 0x16, 0xf6, 0x9f, 0xf0, 0x9e, 0x16, - 0xf4, 0x2b, 0x15, 0xc8, 0xba, 0x5e, 0xbb, 0xdd, 0xe7, 0xfe, 0xe9, 0x04, 0xf6, 0x3f, 0xfd, 0x8a, - 0x1f, 0xb2, 0xf0, 0x79, 0x48, 0x6f, 0xbf, 0x7e, 0xcb, 0x73, 0x6c, 0xba, 0xdf, 0x32, 0x09, 0xe1, - 0xcb, 0x1c, 0x21, 0xc4, 0xb2, 0x52, 0x83, 0x1c, 0x69, 0x8b, 0xb8, 0x8b, 0x30, 0x09, 0xe2, 0xcf, - 0xb8, 0x00, 0x22, 0x4c, 0xd5, 0x6f, 0xfe, 0xf5, 0xcf, 0x9d, 0x95, 0x3e, 0xf3, 0xb9, 0xb3, 0xd2, - 0xef, 0x7e, 0xee, 0xac, 0xf4, 0xa1, 0xcf, 0x9f, 0x9d, 0xf9, 0xcc, 0xe7, 0xcf, 0xce, 0xfc, 0xf6, - 0xe7, 0xcf, 0xce, 0x8c, 0x8e, 0x12, 0xc3, 0x35, 0xfb, 0x9a, 0xcd, 0xe2, 0xc3, 0xaf, 0x3e, 0xb4, - 0x67, 0x7a, 0xfb, 0xfd, 0x9d, 0x65, 0xc3, 0xee, 0x5e, 0x30, 0x6c, 0xb7, 0x6b, 0xbb, 0x17, 0xa2, - 0x71, 0x5d, 0xfa, 0x0b, 0xfe, 0xb7, 0x44, 0xd6, 0xcc, 0xd1, 0x70, 0xae, 0x6e, 0x1d, 0x8e, 0xbb, - 0x4c, 0x79, 0x19, 0xe2, 0x15, 0xeb, 0x10, 0x9d, 0x66, 0x06, 0x4e, 0xeb, 0xf7, 0x3a, 0xfc, 0xe0, - 0x66, 0x8a, 0x7c, 0x6f, 0xf7, 0x3a, 0x68, 0x21, 0x38, 0x5d, 0x2d, 0x9d, 0xcb, 0xf1, 0x23, 0xd3, - 0xd5, 0xef, 0x96, 0x8e, 0xd7, 0x92, 0x74, 0xc5, 0x3a, 0xa4, 0x0d, 0xd9, 0x92, 0x5e, 0x7d, 0x7c, - 0x62, 0x9c, 0xfb, 0x96, 0x65, 0xbf, 0x6e, 0x91, 0x6a, 0x3b, 0x3b, 0x22, 0xc6, 0x7d, 0x76, 0x30, - 0xc6, 0xfd, 0x1e, 0xdc, 0xe9, 0xbc, 0x48, 0xe8, 0x5a, 0x84, 0x65, 0x27, 0xc9, 0xee, 0x08, 0xc0, - 0xf7, 0xc6, 0xe0, 0xec, 0x50, 0x38, 0x9b, 0x2b, 0xc1, 0x38, 0x21, 0xac, 0x40, 0x7a, 0x55, 0xe8, - 0x56, 0x09, 0x52, 0x2e, 0x36, 0x6c, 0xab, 0xed, 0x52, 0x41, 0xc4, 0x55, 0xf1, 0x49, 0x04, 0x61, - 0xe9, 0x96, 0xed, 0xf2, 0xa3, 0xcf, 0xec, 0xa3, 0xfa, 0x91, 0x63, 0x0a, 0x22, 0x2f, 0x4a, 0x12, - 0xd2, 0x78, 0x6a, 0x4a, 0x69, 0x88, 0x46, 0x44, 0x22, 0xff, 0xd3, 0x4a, 0xe5, 0x07, 0x62, 0xb0, - 0x38, 0x28, 0x15, 0x32, 0xb2, 0x5c, 0x4f, 0xef, 0x3a, 0xe3, 0xc4, 0x72, 0x05, 0x32, 0x2d, 0x41, - 0x73, 0x6c, 0xb9, 0xdc, 0x3d, 0xa6, 0x5c, 0x0a, 0x7e, 0x51, 0x42, 0x30, 0x17, 0xa7, 0x14, 0x8c, - 0xdf, 0x8e, 0x7b, 0x92, 0xcc, 0xff, 0x4a, 0xc2, 0x69, 0x36, 0x9c, 0x34, 0x36, 0x94, 0xd8, 0x07, - 0x97, 0x49, 0x2e, 0x9c, 0x35, 0x79, 0x9f, 0x44, 0x79, 0x11, 0xe6, 0x1b, 0xc4, 0x5a, 0x90, 0x55, - 0x50, 0xb0, 0xc3, 0x33, 0xf2, 0x74, 0xf8, 0x52, 0xc4, 0xe1, 0xe7, 0xfb, 0x5b, 0xe1, 0x24, 0xe5, - 0x5b, 0x24, 0x90, 0x9b, 0x86, 0xde, 0xd1, 0x7b, 0x5f, 0x2d, 0x14, 0x7a, 0x16, 0x80, 0x1d, 0xf7, - 0xf0, 0x2f, 0x6e, 0x16, 0x2e, 0x96, 0x96, 0xc3, 0x8d, 0x5b, 0x66, 0x25, 0xd1, 0x23, 0x54, 0x19, - 0x4a, 0x4b, 0x7e, 0x9e, 0x7f, 0x19, 0x20, 0xc8, 0x40, 0x67, 0xe0, 0x54, 0xb3, 0x56, 0x59, 0xab, - 0xa8, 0xe2, 0x90, 0x50, 0x73, 0xab, 0x5e, 0x63, 0xd7, 0xac, 0x66, 0xd0, 0x49, 0x40, 0xe1, 0x4c, - 0xff, 0x50, 0xd3, 0x09, 0x98, 0x0b, 0xa7, 0xb3, 0x3b, 0x2f, 0x31, 0xe2, 0x29, 0x9a, 0x5d, 0xa7, - 0x83, 0xe9, 0xce, 0xa3, 0x66, 0x0a, 0xa9, 0x4d, 0x76, 0x42, 0x7e, 0xe3, 0xdf, 0xb3, 0x7b, 0x10, - 0xf3, 0x01, 0xbb, 0x2f, 0xf3, 0x95, 0x35, 0x98, 0xd3, 0x0d, 0x03, 0x3b, 0x11, 0xc8, 0x09, 0xa6, - 0x9a, 0x00, 0xd2, 0xbd, 0x54, 0xce, 0x19, 0xa0, 0x3d, 0x0b, 0x49, 0x97, 0xb6, 0x7e, 0x12, 0xc4, - 0x6f, 0x72, 0x08, 0x4e, 0xbe, 0x62, 0xc1, 0x1c, 0xbb, 0xd7, 0x87, 0x43, 0xd5, 0x38, 0x3a, 0xce, - 0xf0, 0x4f, 0x3e, 0xf5, 0x24, 0xdd, 0x59, 0x7d, 0x20, 0xda, 0x2d, 0x23, 0xd4, 0x49, 0x95, 0x39, - 0x76, 0x50, 0x51, 0x0c, 0x05, 0x51, 0x1e, 0xaf, 0xf0, 0xd1, 0x85, 0xfd, 0x0a, 0x2f, 0xec, 0xec, - 0x28, 0x1d, 0x08, 0x95, 0x94, 0xe7, 0xa8, 0x2c, 0xa3, 0x5a, 0x1f, 0x37, 0xa6, 0x5f, 0x7d, 0x6c, - 0x78, 0x76, 0x62, 0xff, 0x3d, 0x41, 0x91, 0xaf, 0x84, 0x8b, 0xf1, 0xc7, 0xde, 0x47, 0x12, 0x30, - 0xa7, 0x77, 0x4d, 0xcb, 0xbe, 0x40, 0xff, 0xe5, 0x63, 0x6e, 0x96, 0x7e, 0x4c, 0xb1, 0x29, 0x79, - 0x99, 0x0d, 0x85, 0xc9, 0x1a, 0xf3, 0xc7, 0xdf, 0xf9, 0x13, 0xb3, 0xc1, 0x70, 0x59, 0x59, 0x07, - 0x59, 0x1c, 0x09, 0xc6, 0x96, 0x61, 0xb7, 0xa7, 0x8a, 0x52, 0xfc, 0x89, 0xc0, 0x10, 0xf1, 0xad, - 0x3a, 0x67, 0x5d, 0x79, 0x27, 0xa4, 0x7d, 0x98, 0x49, 0x9e, 0x89, 0x00, 0xf1, 0x39, 0x88, 0x5f, - 0xc2, 0x46, 0xe6, 0x34, 0x5e, 0xe8, 0x97, 0x05, 0x3f, 0x1b, 0xa1, 0x1b, 0xa4, 0x35, 0xd7, 0xa0, - 0xd0, 0xb6, 0x2d, 0x4f, 0xb3, 0xbb, 0xa6, 0x87, 0xbb, 0x8e, 0x37, 0xd1, 0xaf, 0xfb, 0x33, 0x06, - 0x92, 0x56, 0xf3, 0x84, 0x6f, 0x53, 0xb0, 0x91, 0x9a, 0xb0, 0x5b, 0x7f, 0xd3, 0xd4, 0xe4, 0x7f, - 0xf8, 0x35, 0xa1, 0x3c, 0xa4, 0x26, 0xf7, 0xa4, 0x1d, 0x6e, 0xfb, 0x16, 0x37, 0xe6, 0xde, 0x01, - 0xd3, 0x02, 0x5f, 0x3b, 0x3e, 0x11, 0x87, 0xb3, 0x9c, 0x78, 0x47, 0x77, 0xf1, 0x85, 0xdb, 0x4f, - 0xed, 0x60, 0x4f, 0x7f, 0xea, 0x82, 0x61, 0x9b, 0x62, 0x26, 0x9f, 0xe7, 0xc6, 0x9a, 0xe4, 0x2f, - 0xf3, 0xfc, 0xf2, 0xc8, 0xed, 0xee, 0xf2, 0x78, 0x23, 0x5f, 0x1e, 0xd6, 0x41, 0xa5, 0x03, 0x89, - 0x9a, 0x6d, 0x5a, 0x64, 0x6e, 0x6b, 0x63, 0xcb, 0xee, 0x72, 0x73, 0xcb, 0x3e, 0xd0, 0x75, 0x48, - 0xea, 0x5d, 0xbb, 0x6f, 0x79, 0xcc, 0xd4, 0x56, 0x9f, 0xfc, 0xf5, 0x37, 0x17, 0x67, 0xfe, 0xd3, - 0x9b, 0x8b, 0x27, 0x18, 0xac, 0xdb, 0xbe, 0xb5, 0x6c, 0xda, 0x17, 0xba, 0xba, 0xb7, 0x4f, 0x86, - 0xef, 0x6f, 0x7d, 0xfa, 0x09, 0xe0, 0xe5, 0x35, 0x2c, 0xef, 0x93, 0xbf, 0xff, 0x33, 0xe7, 0x25, - 0x95, 0xf3, 0xaf, 0x24, 0xbe, 0xf0, 0xb1, 0x45, 0x49, 0x71, 0x20, 0xb5, 0x8a, 0x8d, 0x23, 0x0a, - 0x6c, 0x0c, 0x14, 0xf8, 0x14, 0x2f, 0xf0, 0xcc, 0x70, 0x81, 0xec, 0xc0, 0xde, 0x2a, 0x36, 0x42, - 0xc5, 0xae, 0x62, 0x23, 0x5a, 0x62, 0x75, 0xf5, 0xb7, 0x3f, 0x7b, 0x76, 0xe6, 0xfd, 0x9f, 0x3b, - 0x3b, 0x33, 0xb6, 0xcb, 0x94, 0xc9, 0x5d, 0xe6, 0xf7, 0xd4, 0x4f, 0x24, 0xe0, 0x7e, 0x7a, 0xbf, - 0xb4, 0xd7, 0x35, 0x2d, 0xef, 0x82, 0xd1, 0x3b, 0x74, 0x3c, 0x9b, 0x0c, 0x5c, 0x7b, 0x97, 0x77, - 0xd4, 0x5c, 0x90, 0xbd, 0xcc, 0xb2, 0x47, 0x77, 0x93, 0xb2, 0x0b, 0xb3, 0x5b, 0x84, 0x8f, 0x08, - 0xc2, 0xb3, 0x3d, 0xbd, 0xc3, 0xbd, 0x0d, 0xf6, 0x41, 0x52, 0xd9, 0x9d, 0xd4, 0x18, 0x4b, 0x35, - 0xc5, 0x75, 0xd4, 0x0e, 0xd6, 0x77, 0xd9, 0xd5, 0x9e, 0x38, 0x75, 0x53, 0xd3, 0x24, 0x81, 0xde, - 0xe2, 0x59, 0x80, 0x59, 0xbd, 0xcf, 0x0e, 0xcc, 0xc4, 0x89, 0xff, 0x4a, 0x3f, 0x94, 0x17, 0x21, - 0xc5, 0xf7, 0xcd, 0x91, 0x0c, 0xf1, 0x5b, 0xf8, 0x90, 0x96, 0x93, 0x53, 0xc9, 0x4f, 0xb4, 0x0c, - 0xb3, 0xb4, 0xf2, 0xfc, 0xce, 0x62, 0x69, 0x79, 0xa8, 0xf6, 0xcb, 0xb4, 0x92, 0x2a, 0x23, 0x53, - 0x6e, 0x40, 0x7a, 0xd5, 0x26, 0xda, 0x13, 0x45, 0xcb, 0x30, 0x34, 0x5a, 0x67, 0xa7, 0xcf, 0xfb, - 0x4e, 0x65, 0x1f, 0xe8, 0x24, 0x24, 0xd9, 0x55, 0x2f, 0x7e, 0xe8, 0x87, 0x7f, 0x29, 0x35, 0x48, - 0x51, 0xec, 0x4d, 0xc7, 0xbf, 0x5e, 0x2d, 0x85, 0xae, 0x57, 0x73, 0xf8, 0x58, 0x50, 0x59, 0x04, - 0x89, 0xb6, 0xee, 0xe9, 0xbc, 0xdd, 0xf4, 0xb7, 0xf2, 0x6e, 0x48, 0x73, 0x10, 0x17, 0x5d, 0x84, - 0xb8, 0xed, 0xb8, 0xfc, 0xd8, 0x4e, 0x79, 0x5c, 0x53, 0x36, 0x9d, 0x6a, 0x82, 0x28, 0x95, 0x4a, - 0x88, 0xab, 0x1b, 0x63, 0xd5, 0xe2, 0x99, 0x88, 0x5a, 0x74, 0xb1, 0xb7, 0xb3, 0xeb, 0x05, 0x3f, - 0x58, 0x77, 0x0e, 0xa9, 0x82, 0xaf, 0x28, 0x77, 0x63, 0x70, 0x36, 0x94, 0x7b, 0x1b, 0xf7, 0x5c, - 0xd3, 0xb6, 0x98, 0x36, 0x71, 0x4d, 0x41, 0xa1, 0x0a, 0xf2, 0xfc, 0x31, 0xaa, 0xf2, 0x2e, 0x88, - 0x57, 0x1c, 0x07, 0x95, 0x21, 0x4d, 0xbf, 0x0d, 0x9b, 0xe9, 0x4a, 0x42, 0xf5, 0xbf, 0x49, 0x9e, - 0x6b, 0xef, 0x7a, 0xaf, 0xeb, 0x3d, 0xff, 0x26, 0xb4, 0xf8, 0x56, 0x9e, 0x87, 0x4c, 0xcd, 0xb6, - 0x5c, 0x6c, 0xb9, 0x7d, 0xea, 0xc3, 0xee, 0x74, 0x6c, 0xe3, 0x16, 0x47, 0x60, 0x1f, 0x44, 0xd8, - 0xba, 0xe3, 0x50, 0xce, 0x84, 0x4a, 0x7e, 0xf2, 0xd1, 0xb3, 0x39, 0x56, 0x3c, 0x97, 0x8e, 0x27, - 0x1e, 0xde, 0xc0, 0xc0, 0x19, 0x95, 0xe0, 0xbe, 0xe1, 0x81, 0x74, 0x0b, 0x1f, 0xba, 0xc7, 0x1d, - 0x47, 0x2f, 0x43, 0x66, 0x8b, 0x3e, 0x2b, 0xf3, 0x22, 0x3e, 0x44, 0x65, 0x48, 0xe1, 0xf6, 0xc5, - 0x4b, 0x97, 0x9e, 0x7a, 0x9e, 0x69, 0xf9, 0xf5, 0x19, 0x55, 0x24, 0xa0, 0xb3, 0x90, 0x71, 0xb1, - 0xe1, 0x5c, 0xbc, 0x74, 0xf9, 0xd6, 0x53, 0x4c, 0xad, 0xae, 0xcf, 0xa8, 0x41, 0xd2, 0x4a, 0x9a, - 0xb4, 0xf8, 0x0b, 0x1f, 0x5f, 0x94, 0xaa, 0xb3, 0x10, 0x77, 0xfb, 0xdd, 0xb7, 0x4d, 0x37, 0xfe, - 0x28, 0x09, 0x4b, 0xa1, 0x5c, 0x36, 0x29, 0xdc, 0xd6, 0x3b, 0x66, 0x5b, 0x0f, 0x1e, 0x03, 0x92, - 0x43, 0xed, 0xa7, 0x14, 0x63, 0xac, 0xfd, 0x91, 0x52, 0x54, 0x7e, 0x4e, 0x82, 0xdc, 0x4d, 0x81, - 0xdc, 0xc4, 0x1e, 0xba, 0x02, 0xe0, 0x97, 0x24, 0x86, 0xca, 0x99, 0xe5, 0xc1, 0xb2, 0x96, 0x7d, - 0x1e, 0x35, 0x44, 0x8e, 0x9e, 0xa5, 0x0a, 0xe8, 0xd8, 0x2e, 0xbf, 0x15, 0x3b, 0x81, 0xd5, 0x27, - 0x46, 0x8f, 0x03, 0xa2, 0x56, 0x4d, 0xbb, 0x6d, 0x7b, 0xa6, 0xb5, 0xa7, 0x39, 0xf6, 0xeb, 0xfc, - 0xad, 0x81, 0xb8, 0x2a, 0xd3, 0x9c, 0x9b, 0x34, 0x63, 0x8b, 0xa4, 0x93, 0x4a, 0x67, 0x7c, 0x14, - 0xb2, 0x1c, 0xd3, 0xdb, 0xed, 0x1e, 0x76, 0x5d, 0x6e, 0xb8, 0xc4, 0x27, 0xba, 0x02, 0x29, 0xa7, - 0xbf, 0xa3, 0x09, 0x2b, 0x91, 0xbd, 0x78, 0xdf, 0xa8, 0x31, 0x2f, 0x74, 0x83, 0x8f, 0xfa, 0xa4, - 0xd3, 0xdf, 0x21, 0x9a, 0xf2, 0x00, 0xe4, 0x46, 0x54, 0x26, 0x7b, 0x3b, 0xa8, 0x07, 0x7d, 0xc9, - 0x88, 0xb7, 0x40, 0x73, 0x7a, 0xa6, 0xdd, 0x33, 0xbd, 0x43, 0x7a, 0xdc, 0x2e, 0xae, 0xca, 0x22, - 0x63, 0x8b, 0xa7, 0x2b, 0xb7, 0xa0, 0xd8, 0xa4, 0x6e, 0x7a, 0x50, 0xf3, 0x4b, 0x41, 0xfd, 0xa4, - 0xc9, 0xf5, 0x1b, 0x5b, 0xb3, 0xd8, 0x50, 0xcd, 0xce, 0xff, 0x07, 0x09, 0xb2, 0x55, 0x32, 0x70, - 0x1b, 0xab, 0x57, 0x3b, 0xfa, 0x1e, 0x7a, 0x0a, 0x4e, 0x54, 0xd7, 0x36, 0x6b, 0x2f, 0x6a, 0x8d, - 0x55, 0xed, 0xea, 0x5a, 0xe5, 0x5a, 0x70, 0xbe, 0xb7, 0x7c, 0xf2, 0xce, 0xdd, 0x25, 0x14, 0xa2, - 0xdd, 0xb6, 0xe8, 0x5a, 0x12, 0x5d, 0x80, 0x85, 0x28, 0x4b, 0xa5, 0xda, 0xac, 0x6f, 0xb4, 0x64, - 0xa9, 0x7c, 0xe2, 0xce, 0xdd, 0xa5, 0xb9, 0x10, 0x47, 0x65, 0xc7, 0xc5, 0x96, 0x37, 0xcc, 0x50, - 0xdb, 0x5c, 0x5f, 0x6f, 0xb4, 0xe4, 0xd8, 0x10, 0x43, 0xcd, 0xee, 0x76, 0x4d, 0x0f, 0x3d, 0x0a, - 0x73, 0x51, 0x86, 0x8d, 0xc6, 0x9a, 0x1c, 0x2f, 0xa3, 0x3b, 0x77, 0x97, 0x0a, 0x21, 0xea, 0x0d, - 0xb3, 0x53, 0x4e, 0x7f, 0xf0, 0xc7, 0xce, 0xce, 0x7c, 0xf2, 0xef, 0x9e, 0x95, 0xaa, 0xeb, 0x63, - 0xc7, 0xdc, 0xd3, 0xc7, 0x1b, 0x73, 0xd1, 0x79, 0xfb, 0x2b, 0xf7, 0x45, 0xcc, 0x0d, 0xf7, 0xc3, - 0x42, 0xc6, 0x78, 0xda, 0xe1, 0x36, 0x29, 0xb6, 0x50, 0x3e, 0xda, 0x3d, 0x28, 0x4f, 0x98, 0x14, - 0xca, 0x13, 0x0d, 0x83, 0xf2, 0x3c, 0xe4, 0xb7, 0xf4, 0x9e, 0xd7, 0xc4, 0xde, 0x75, 0xac, 0xb7, - 0x71, 0x2f, 0xea, 0x3f, 0xe4, 0x85, 0xff, 0x80, 0x20, 0x41, 0x9d, 0x04, 0x36, 0x7f, 0xd2, 0xdf, - 0xca, 0x3e, 0x24, 0xe8, 0x49, 0x62, 0xdf, 0xb7, 0xe0, 0x1c, 0xcc, 0xb7, 0x20, 0x33, 0xc3, 0xa1, - 0x87, 0x5d, 0x11, 0xfe, 0xa2, 0x1f, 0xe8, 0x19, 0xe1, 0x21, 0xc4, 0x8f, 0xf6, 0x10, 0xf8, 0xf0, - 0xe2, 0x7e, 0x42, 0x07, 0x52, 0xbc, 0x8b, 0xfd, 0x8a, 0x48, 0x41, 0x45, 0xd0, 0x3a, 0x14, 0x1d, - 0xbd, 0xe7, 0xd1, 0x7b, 0x8a, 0xfb, 0xb4, 0x15, 0x7c, 0x04, 0x2f, 0x0e, 0xdb, 0x93, 0x48, 0x63, - 0x79, 0x29, 0x79, 0x27, 0x9c, 0xa8, 0xfc, 0x97, 0x04, 0x24, 0xb9, 0x30, 0xde, 0x05, 0x29, 0x2e, - 0x56, 0x3e, 0xe6, 0xee, 0x5f, 0x1e, 0x9e, 0x66, 0x97, 0xfd, 0xe9, 0x90, 0xe3, 0x09, 0x1e, 0xf4, - 0x30, 0xa4, 0x8d, 0x7d, 0xdd, 0xb4, 0x34, 0xb3, 0xcd, 0x1d, 0xd0, 0xec, 0xe7, 0xde, 0x5c, 0x4c, - 0xd5, 0x48, 0x5a, 0x63, 0x55, 0x4d, 0xd1, 0xcc, 0x46, 0x9b, 0xf8, 0x34, 0xfb, 0xd8, 0xdc, 0xdb, - 0xf7, 0xb8, 0xdd, 0xe0, 0x5f, 0xe8, 0x39, 0x48, 0x10, 0x85, 0xe0, 0xb7, 0xd8, 0xcb, 0x43, 0x2b, - 0x0b, 0x3f, 0xf4, 0x53, 0x4d, 0x93, 0x82, 0x3f, 0xf4, 0x9f, 0x17, 0x25, 0x95, 0x72, 0xa0, 0x1a, - 0xe4, 0x3b, 0xba, 0xeb, 0x69, 0x74, 0x3e, 0x26, 0xc5, 0xcf, 0x52, 0x88, 0xd3, 0xc3, 0x02, 0xe1, - 0x82, 0xe5, 0x55, 0xcf, 0x12, 0x2e, 0x96, 0xd4, 0x46, 0xe7, 0x40, 0xa6, 0x20, 0x06, 0x1d, 0x81, - 0xcc, 0x4b, 0x4c, 0x52, 0xb9, 0x17, 0x48, 0x3a, 0x1b, 0x98, 0xd4, 0x57, 0x3c, 0x03, 0x19, 0x7a, - 0x6f, 0x96, 0x92, 0xb0, 0xe3, 0xeb, 0x69, 0x92, 0x40, 0x33, 0x1f, 0x81, 0x62, 0x60, 0xf5, 0x19, - 0x49, 0x9a, 0xa1, 0x04, 0xc9, 0x94, 0xf0, 0x49, 0x58, 0xb0, 0xf0, 0x01, 0x3d, 0x50, 0x1f, 0xa1, - 0xce, 0x50, 0x6a, 0x44, 0xf2, 0x6e, 0x46, 0x39, 0x1e, 0x82, 0x82, 0x21, 0x84, 0xcf, 0x68, 0x81, - 0xd2, 0xe6, 0xfd, 0x54, 0x4a, 0x76, 0x1a, 0xd2, 0xba, 0xe3, 0x30, 0x82, 0x2c, 0xb7, 0xfa, 0x8e, - 0x43, 0xb3, 0xce, 0xc3, 0x1c, 0x6d, 0x63, 0x0f, 0xbb, 0xfd, 0x8e, 0xc7, 0x41, 0x72, 0x94, 0xa6, - 0x48, 0x32, 0x54, 0x96, 0x4e, 0x69, 0x1f, 0x84, 0x3c, 0xbe, 0x6d, 0xb6, 0xb1, 0x65, 0x60, 0x46, - 0x97, 0xa7, 0x74, 0x39, 0x91, 0x48, 0x89, 0x1e, 0x05, 0xdf, 0x9a, 0x6b, 0x62, 0xa6, 0x29, 0x30, - 0x3c, 0x91, 0x5e, 0x61, 0xc9, 0x4a, 0x09, 0x12, 0xab, 0xba, 0xa7, 0x13, 0x77, 0xc9, 0x3b, 0x60, - 0xd3, 0x67, 0x4e, 0x25, 0x3f, 0x95, 0x5f, 0x88, 0x43, 0xe2, 0xa6, 0xed, 0x61, 0xf4, 0x74, 0xc8, - 0x95, 0x2d, 0x8c, 0xd2, 0xe7, 0xa6, 0xb9, 0x67, 0xe1, 0xf6, 0xba, 0xbb, 0x17, 0x7a, 0xe4, 0x26, - 0x50, 0xa7, 0x58, 0x44, 0x9d, 0x16, 0x60, 0xb6, 0x67, 0xf7, 0xad, 0xb6, 0x38, 0xf8, 0x4d, 0x3f, - 0x50, 0x1d, 0xd2, 0xbe, 0x96, 0x24, 0x26, 0x69, 0x49, 0x91, 0x68, 0x09, 0xd1, 0x61, 0x9e, 0xa0, - 0xa6, 0x76, 0xb8, 0xb2, 0x54, 0x21, 0xe3, 0x1b, 0x2f, 0xae, 0x6d, 0xd3, 0x29, 0x6c, 0xc0, 0x46, - 0xa6, 0x48, 0xbf, 0xef, 0x7d, 0xe1, 0x31, 0x8d, 0x93, 0xfd, 0x0c, 0x2e, 0xbd, 0x88, 0x5a, 0xf1, - 0x07, 0x77, 0x52, 0xb4, 0x5d, 0x81, 0x5a, 0xb1, 0x47, 0x77, 0xee, 0x83, 0x8c, 0x6b, 0xee, 0x59, - 0xba, 0xd7, 0xef, 0x61, 0xae, 0x79, 0x41, 0x02, 0xc9, 0x0d, 0x2e, 0x41, 0x30, 0x4d, 0x0b, 0xbd, - 0xdc, 0x76, 0x01, 0xe6, 0x83, 0x37, 0xd3, 0x02, 0x14, 0xa6, 0x65, 0xc8, 0xcf, 0x6a, 0x8a, 0x1c, - 0xe5, 0x57, 0x25, 0x48, 0xf2, 0x19, 0x2b, 0xe8, 0x06, 0x69, 0x74, 0x37, 0xc4, 0xc6, 0x75, 0x43, - 0xfc, 0xde, 0xbb, 0xa1, 0x02, 0xe0, 0x57, 0xd3, 0xe5, 0xcf, 0xaa, 0x8c, 0x70, 0xab, 0x58, 0x15, - 0x9b, 0xe6, 0x1e, 0x1f, 0xf7, 0x21, 0x26, 0xe5, 0x77, 0x24, 0xe2, 0xe1, 0xf3, 0x7c, 0x54, 0x81, - 0xbc, 0xa8, 0x97, 0xb6, 0xdb, 0xd1, 0xf7, 0xb8, 0x2a, 0xde, 0x3f, 0xb6, 0x72, 0x64, 0x16, 0x56, - 0xb3, 0xbc, 0x3e, 0xd4, 0x9f, 0x18, 0xd9, 0xad, 0xb1, 0x31, 0xdd, 0x1a, 0xd1, 0xa3, 0xf8, 0xbd, - 0xe9, 0x51, 0xa4, 0xc7, 0x13, 0x03, 0x3d, 0xae, 0x7c, 0x56, 0xe2, 0x2f, 0xb6, 0xb5, 0xd9, 0x0d, - 0x8e, 0xbf, 0xa8, 0xae, 0x7a, 0x95, 0xeb, 0x56, 0x1b, 0xb7, 0xb5, 0xa1, 0x3e, 0x7b, 0x70, 0x18, - 0x31, 0x5a, 0xe7, 0xa0, 0xef, 0x90, 0x40, 0x69, 0x06, 0x7d, 0xf8, 0xe9, 0x18, 0xcc, 0x0d, 0xd1, - 0xff, 0xe5, 0xeb, 0xcb, 0xe8, 0xe8, 0x9d, 0x9d, 0x72, 0xf4, 0x26, 0xc7, 0x8e, 0xde, 0x4f, 0xc5, - 0x68, 0x00, 0xc0, 0xb1, 0x5d, 0xbd, 0xf3, 0xb5, 0xb0, 0xbd, 0x67, 0x20, 0xe3, 0xd8, 0x1d, 0x8d, - 0xe5, 0xb0, 0xab, 0x37, 0x69, 0xc7, 0xee, 0xa8, 0x43, 0x6a, 0x36, 0xfb, 0x16, 0x19, 0xe6, 0xe4, - 0x5b, 0xd0, 0x09, 0xa9, 0xc1, 0x01, 0xd5, 0x83, 0x1c, 0x13, 0x05, 0xf7, 0x9a, 0x9e, 0x24, 0x32, - 0xa0, 0x6e, 0x98, 0x34, 0xec, 0xe5, 0xb1, 0x6a, 0x33, 0x4a, 0x95, 0xd3, 0x11, 0x0e, 0xe6, 0x64, - 0x8c, 0x8a, 0x1c, 0x85, 0x2d, 0x96, 0xca, 0xe9, 0x94, 0xef, 0x97, 0x00, 0xd6, 0x88, 0x64, 0x69, - 0x7b, 0x89, 0xbf, 0xe3, 0xd2, 0x2a, 0x68, 0x91, 0x92, 0xcf, 0x8e, 0xeb, 0x34, 0x5e, 0x7e, 0xce, - 0x0d, 0xd7, 0xbb, 0x06, 0xf9, 0x40, 0xb7, 0x5d, 0x2c, 0x2a, 0x73, 0xf6, 0x88, 0x55, 0x69, 0x13, - 0x7b, 0x6a, 0xee, 0x76, 0xe8, 0x4b, 0xf9, 0x67, 0x12, 0x64, 0x68, 0x9d, 0xd6, 0xb1, 0xa7, 0x47, - 0xfa, 0x50, 0xba, 0xf7, 0x3e, 0xbc, 0x1f, 0x80, 0xc1, 0xb8, 0xe6, 0x1b, 0x98, 0x6b, 0x56, 0x86, - 0xa6, 0x34, 0xcd, 0x37, 0x30, 0xba, 0xec, 0x0b, 0x3c, 0x7e, 0xb4, 0xc0, 0xc5, 0xaa, 0x95, 0x8b, - 0xfd, 0x14, 0xa4, 0xe8, 0x9b, 0xa2, 0x07, 0x2e, 0x5f, 0x88, 0x26, 0xad, 0x7e, 0xb7, 0x75, 0xe0, - 0x2a, 0xaf, 0x41, 0xaa, 0x75, 0xc0, 0xe2, 0x89, 0x67, 0x20, 0xd3, 0xb3, 0x6d, 0xee, 0xfd, 0x31, - 0xaf, 0x3b, 0x4d, 0x12, 0xa8, 0xb3, 0x23, 0x62, 0x68, 0xb1, 0x20, 0x86, 0x16, 0x04, 0x01, 0xe3, - 0x53, 0x05, 0x01, 0xc9, 0xea, 0x33, 0x1f, 0x19, 0x49, 0xe8, 0x71, 0x38, 0xd5, 0x6c, 0x5c, 0xdb, - 0xa8, 0xaf, 0x6a, 0xeb, 0xcd, 0x6b, 0x03, 0xd7, 0xea, 0xcb, 0xc5, 0x3b, 0x77, 0x97, 0xb2, 0x7c, - 0xd9, 0x39, 0x8e, 0x7a, 0x4b, 0xad, 0xdf, 0xdc, 0x6c, 0xd5, 0x65, 0x89, 0x51, 0x6f, 0xf5, 0xf0, - 0x6d, 0xdb, 0x63, 0x8f, 0xf6, 0x3e, 0x09, 0xa7, 0x47, 0x50, 0xfb, 0x8b, 0xcf, 0xb9, 0x3b, 0x77, - 0x97, 0xf2, 0x5b, 0x3d, 0xcc, 0xb4, 0x8c, 0x72, 0x2c, 0x43, 0x69, 0x98, 0x63, 0x73, 0x6b, 0xb3, - 0x59, 0x59, 0x93, 0x97, 0xca, 0xf2, 0x9d, 0xbb, 0x4b, 0x39, 0x61, 0x32, 0x08, 0xfd, 0xdb, 0xbf, - 0xfa, 0xfc, 0xf6, 0x74, 0x24, 0x6a, 0xcc, 0xd6, 0x75, 0x8e, 0xde, 0xd3, 0xbb, 0xc7, 0x5d, 0x7e, - 0x4e, 0xd8, 0xf0, 0x57, 0x7e, 0x2e, 0x06, 0x45, 0x7f, 0x71, 0xb3, 0x45, 0x4b, 0x40, 0x4f, 0x87, - 0x23, 0x7e, 0xd9, 0xb1, 0x73, 0x07, 0xa3, 0x16, 0x01, 0xc1, 0x77, 0x42, 0x5a, 0x38, 0xc9, 0x7c, - 0x50, 0x2d, 0x8d, 0x98, 0xdf, 0x38, 0x05, 0x67, 0xf5, 0x39, 0xd0, 0x0b, 0x90, 0xf1, 0x87, 0x98, - 0xff, 0x4c, 0xda, 0xf8, 0x31, 0xc9, 0xf9, 0x03, 0x1e, 0xf4, 0x7c, 0xb0, 0x8c, 0x4b, 0x8c, 0x5b, - 0x18, 0xde, 0x64, 0x04, 0x9c, 0xd9, 0x5f, 0xc2, 0x3d, 0x09, 0x09, 0x7d, 0xc7, 0x30, 0xb9, 0x01, - 0xbe, 0x6f, 0x98, 0xaf, 0x52, 0xad, 0x35, 0x38, 0x13, 0xa5, 0x54, 0x1a, 0x3c, 0x98, 0xc2, 0xe5, - 0x45, 0x1f, 0xa5, 0x39, 0xd0, 0xd8, 0x5a, 0x98, 0x79, 0x17, 0xe9, 0xae, 0x7e, 0x50, 0xa5, 0xcb, - 0xe1, 0x53, 0x90, 0x22, 0x99, 0x7b, 0xfc, 0xa1, 0x82, 0xb8, 0x9a, 0xec, 0xea, 0x07, 0xd7, 0x74, - 0xf7, 0x46, 0x22, 0x1d, 0x97, 0x13, 0xca, 0x4f, 0x12, 0x4f, 0x25, 0x22, 0x15, 0xf4, 0x18, 0x20, - 0xc2, 0xa1, 0xef, 0x61, 0x8d, 0x0c, 0x5d, 0x2a, 0x5e, 0x81, 0x5b, 0xec, 0xea, 0x07, 0x95, 0x3d, - 0xbc, 0xd1, 0xef, 0xd2, 0x0a, 0xb8, 0x68, 0x1d, 0x64, 0x41, 0x2c, 0x7a, 0x96, 0x8b, 0xff, 0xf4, - 0xf0, 0xc3, 0xb8, 0x9c, 0x80, 0x4d, 0x00, 0x1f, 0x26, 0x13, 0x40, 0x81, 0xe1, 0xf9, 0x47, 0x3c, - 0x22, 0x4d, 0x89, 0x47, 0x9b, 0xa2, 0xbc, 0x00, 0xc5, 0x81, 0x1e, 0x40, 0x0a, 0xe4, 0x79, 0xc4, - 0x8a, 0x6e, 0x9f, 0xb3, 0x15, 0x4e, 0x46, 0xcd, 0xb2, 0xc8, 0x14, 0x3d, 0x4e, 0xb0, 0x92, 0xfe, - 0xc5, 0x8f, 0x2d, 0x4a, 0x74, 0x33, 0xe7, 0x31, 0xc8, 0x47, 0xfa, 0x40, 0x44, 0x91, 0xa5, 0x20, - 0x8a, 0x1c, 0x10, 0xbf, 0x0a, 0x39, 0x62, 0x80, 0x70, 0x9b, 0xd3, 0x3e, 0x0c, 0x45, 0x66, 0x20, - 0x07, 0x65, 0xcd, 0x1c, 0x9e, 0x75, 0x21, 0x70, 0x45, 0x78, 0x40, 0x51, 0xb1, 0x67, 0x05, 0xd5, - 0x35, 0xdd, 0x55, 0x36, 0x01, 0x82, 0x4e, 0x45, 0x15, 0xb8, 0x9f, 0x18, 0x8f, 0xf0, 0x71, 0x4f, - 0xfe, 0x40, 0x56, 0xc4, 0x63, 0x2c, 0x13, 0xa2, 0xe0, 0x48, 0x27, 0x7b, 0x26, 0xeb, 0x3a, 0xa5, - 0xa8, 0xbe, 0xf4, 0xc9, 0xcf, 0x9d, 0x95, 0xde, 0x1e, 0x5b, 0xf0, 0x1f, 0x5f, 0x81, 0x33, 0xa1, - 0x4c, 0xa2, 0x80, 0x91, 0x40, 0x54, 0x31, 0xa4, 0xaf, 0x24, 0x73, 0x52, 0x40, 0xe9, 0xc8, 0xf8, - 0x6f, 0xf9, 0x68, 0xb3, 0x33, 0x39, 0xda, 0x34, 0x39, 0xde, 0x35, 0x3a, 0x28, 0xff, 0x4f, 0x33, - 0x90, 0x52, 0xf1, 0xfb, 0xfa, 0xd8, 0xf5, 0xd0, 0x45, 0x48, 0x60, 0x63, 0xdf, 0x1e, 0x15, 0x03, - 0x25, 0x0d, 0x5c, 0xe6, 0x74, 0x75, 0x63, 0xdf, 0xbe, 0x3e, 0xa3, 0x52, 0x5a, 0x74, 0x09, 0x66, - 0x77, 0x3b, 0x7d, 0x1e, 0xbe, 0x1a, 0xb0, 0x59, 0x61, 0xa6, 0xab, 0x84, 0xe8, 0xfa, 0x8c, 0xca, - 0xa8, 0x49, 0x51, 0xf4, 0x45, 0xf3, 0xf8, 0xd1, 0x45, 0x35, 0xac, 0x5d, 0x5a, 0x14, 0xa1, 0x45, - 0x55, 0x00, 0xd3, 0x32, 0x3d, 0x8d, 0x86, 0x76, 0xb8, 0xd5, 0x78, 0x60, 0x3c, 0xa7, 0xe9, 0xd1, - 0x60, 0xd0, 0xf5, 0x19, 0x35, 0x63, 0x8a, 0x0f, 0x52, 0xdd, 0xf7, 0xf5, 0x71, 0xef, 0x90, 0x7b, - 0x6b, 0x63, 0xab, 0xfb, 0x12, 0x21, 0x22, 0xd5, 0xa5, 0xd4, 0xc4, 0xc8, 0xb2, 0xa7, 0xf6, 0xbc, - 0x03, 0xfe, 0x80, 0xec, 0xe2, 0x38, 0x4e, 0xfa, 0xde, 0x5e, 0xeb, 0xe0, 0xfa, 0x8c, 0x9a, 0x32, - 0xd8, 0x4f, 0xf4, 0x9c, 0xef, 0x82, 0x65, 0x87, 0xbd, 0x9e, 0x08, 0x2f, 0x0b, 0xfb, 0xcc, 0x08, - 0x57, 0x0c, 0x6d, 0x40, 0xa1, 0x63, 0xba, 0x9e, 0xe6, 0x5a, 0xba, 0xe3, 0xee, 0xdb, 0x9e, 0x4b, - 0xe3, 0x27, 0xd9, 0x8b, 0x0f, 0x8d, 0x43, 0x58, 0x33, 0x5d, 0xaf, 0x29, 0x88, 0xaf, 0xcf, 0xa8, - 0xf9, 0x4e, 0x38, 0x81, 0xe0, 0xd9, 0xbb, 0xbb, 0xb8, 0xe7, 0x03, 0xd2, 0x38, 0xcb, 0x11, 0x78, - 0x9b, 0x84, 0x5a, 0xf0, 0x13, 0x3c, 0x3b, 0x9c, 0x80, 0xbe, 0x01, 0xe6, 0x3b, 0xb6, 0xde, 0xf6, - 0xe1, 0x34, 0x63, 0xbf, 0x6f, 0xdd, 0xa2, 0x41, 0x99, 0xec, 0xc5, 0x47, 0xc7, 0x56, 0xd2, 0xd6, - 0xdb, 0x02, 0xa2, 0x46, 0x18, 0xae, 0xcf, 0xa8, 0x73, 0x9d, 0xc1, 0x44, 0xf4, 0x5e, 0x58, 0xd0, - 0x1d, 0xa7, 0x73, 0x38, 0x88, 0x5e, 0xa4, 0xe8, 0xe7, 0xc7, 0xa1, 0x57, 0x08, 0xcf, 0x20, 0x3c, - 0xd2, 0x87, 0x52, 0x51, 0x0b, 0x64, 0xa7, 0x87, 0xe9, 0x8d, 0x29, 0x87, 0x7b, 0x19, 0xf4, 0x75, - 0xaa, 0xec, 0xc5, 0x47, 0xc6, 0x61, 0x6f, 0x31, 0x7a, 0xe1, 0x94, 0x5c, 0x9f, 0x51, 0x8b, 0x4e, - 0x34, 0x89, 0xa1, 0xda, 0x06, 0xa6, 0x8f, 0xe7, 0x71, 0xd4, 0xb9, 0x49, 0xa8, 0x94, 0x3e, 0x8a, - 0x1a, 0x49, 0x42, 0x75, 0xc8, 0xb2, 0xa5, 0xa8, 0x46, 0x8c, 0x21, 0x7d, 0xd3, 0x2a, 0x7b, 0x51, - 0x19, 0x3b, 0x42, 0x29, 0xe9, 0x4d, 0xdb, 0xc3, 0xd7, 0x67, 0x54, 0xc0, 0xfe, 0x17, 0xd2, 0xe1, - 0x04, 0x7d, 0xde, 0xeb, 0x50, 0x8b, 0x1a, 0xde, 0xd2, 0x3c, 0x05, 0x7c, 0x6c, 0x1c, 0x20, 0x7d, - 0xe1, 0xfa, 0xf0, 0x66, 0xd8, 0x0e, 0x5f, 0x9f, 0x51, 0xe7, 0x6f, 0x0f, 0x27, 0x13, 0x15, 0xdb, - 0x35, 0x2d, 0xbd, 0x63, 0xbe, 0x81, 0xd9, 0x14, 0x4a, 0x1f, 0xb6, 0x3c, 0x42, 0xc5, 0xae, 0x72, - 0x6a, 0x3a, 0xb1, 0x12, 0x15, 0xdb, 0x0d, 0x27, 0x54, 0x53, 0xfc, 0xac, 0xa7, 0xff, 0x50, 0x5b, - 0x4a, 0x4e, 0xb3, 0xc7, 0xd9, 0x6e, 0x24, 0xd2, 0x20, 0x67, 0x95, 0x47, 0x20, 0x1b, 0x32, 0x4c, - 0xa8, 0x04, 0x29, 0x7e, 0x1a, 0x46, 0x9c, 0x1a, 0xe5, 0x9f, 0x4a, 0x01, 0x72, 0x61, 0x63, 0xa4, - 0x7c, 0x48, 0xf2, 0x39, 0xe9, 0x9b, 0x12, 0xa5, 0x68, 0x44, 0x3a, 0x13, 0x78, 0x2a, 0x0f, 0x8a, - 0xa9, 0x4d, 0xe4, 0xb3, 0xed, 0xd7, 0x1c, 0x4d, 0xe4, 0x33, 0x2b, 0x5a, 0x84, 0xac, 0x73, 0xd1, - 0xf1, 0x49, 0xe2, 0x94, 0x04, 0x9c, 0x8b, 0x8e, 0x20, 0x78, 0x00, 0x72, 0xa4, 0xdd, 0x5a, 0xd8, - 0x5f, 0xca, 0xa8, 0x59, 0x92, 0xc6, 0x49, 0x94, 0x7f, 0x1d, 0x03, 0x79, 0xd0, 0x80, 0xf9, 0xa1, - 0x6a, 0xe9, 0xd8, 0xa1, 0xea, 0xd3, 0x83, 0x41, 0xf2, 0x20, 0x2e, 0xbe, 0x06, 0x72, 0x10, 0xde, - 0x65, 0x53, 0xcd, 0x78, 0xff, 0x6f, 0xc0, 0x51, 0x55, 0x8b, 0xc6, 0x80, 0xe7, 0x7a, 0x35, 0xb2, - 0x59, 0x29, 0xfe, 0xe4, 0xc7, 0x60, 0x87, 0xfb, 0x4e, 0xcc, 0xb6, 0xd3, 0xd6, 0x3d, 0x2c, 0xe2, - 0x63, 0xa1, 0x7d, 0xcb, 0x87, 0xa1, 0xa8, 0x3b, 0x8e, 0xe6, 0x7a, 0xba, 0x87, 0xb9, 0xaf, 0xc1, - 0x22, 0x0f, 0x79, 0xdd, 0x71, 0xe8, 0xd3, 0xea, 0xcc, 0xd7, 0x78, 0x08, 0x0a, 0xc4, 0xa6, 0x9b, - 0x7a, 0x47, 0xb8, 0x0a, 0x49, 0xe6, 0x92, 0xf0, 0x54, 0xe6, 0x1d, 0x28, 0x6d, 0xbf, 0xc7, 0xa9, - 0x3d, 0xf7, 0xd7, 0x54, 0x52, 0x68, 0x4d, 0x85, 0xf8, 0x5b, 0x1f, 0x4c, 0x3e, 0xe2, 0x7d, 0x94, - 0xd1, 0x9b, 0x06, 0x0b, 0x74, 0xfd, 0x75, 0x9b, 0x05, 0x4b, 0xd2, 0x2a, 0xfb, 0x50, 0x54, 0x28, - 0x44, 0x6d, 0x3f, 0x2a, 0x40, 0xcc, 0x3b, 0xe0, 0xa5, 0xc4, 0xbc, 0x03, 0xe2, 0xe9, 0xfa, 0xef, - 0xed, 0x16, 0x46, 0xcc, 0x76, 0x9c, 0x2f, 0x88, 0x75, 0x28, 0x45, 0xc8, 0x47, 0xe6, 0x04, 0xe5, - 0x24, 0x2c, 0x8c, 0x32, 0xf1, 0xca, 0xbe, 0x9f, 0x1e, 0x31, 0xd5, 0xe8, 0x12, 0xa4, 0x7d, 0x1b, - 0x3f, 0x62, 0x75, 0x4c, 0x8b, 0x15, 0xc4, 0xaa, 0x4f, 0x1a, 0x09, 0xe7, 0xc7, 0x22, 0xe1, 0x7c, - 0xe5, 0x9b, 0xa1, 0x34, 0xce, 0x7e, 0x0f, 0x04, 0xf9, 0x12, 0xbe, 0xc0, 0x4e, 0x42, 0x92, 0x3f, - 0x6c, 0x19, 0xa3, 0x1b, 0x58, 0xfc, 0x8b, 0x08, 0x92, 0xd9, 0xf2, 0x38, 0xdb, 0xd7, 0xa2, 0x1f, - 0x8a, 0x06, 0xa7, 0xc7, 0xda, 0xf0, 0xf1, 0x5b, 0x61, 0x0c, 0x88, 0x6f, 0x85, 0x19, 0xa2, 0x3a, - 0x2e, 0x6d, 0xab, 0x38, 0xc8, 0xc2, 0xbe, 0x94, 0x0f, 0xc7, 0xe1, 0xe4, 0x68, 0x4b, 0x8e, 0x96, - 0x20, 0x47, 0xfc, 0x56, 0x2f, 0xea, 0xe2, 0x42, 0x57, 0x3f, 0x68, 0x71, 0xff, 0x96, 0x6f, 0x25, - 0xc4, 0xfc, 0xad, 0x04, 0xb4, 0x0d, 0x73, 0x1d, 0xdb, 0xd0, 0x3b, 0x5a, 0x68, 0x2b, 0x87, 0x0f, - 0xa2, 0x07, 0x87, 0x84, 0x1d, 0x0d, 0x19, 0x12, 0x83, 0xc3, 0xf5, 0xbf, 0x48, 0x31, 0xd6, 0xfc, - 0x5d, 0x1f, 0xb4, 0x0a, 0xd9, 0xae, 0xe9, 0xee, 0xe0, 0x7d, 0xfd, 0xb6, 0x69, 0xf7, 0xf8, 0x68, - 0x1a, 0x56, 0x9a, 0xf5, 0x80, 0x46, 0xec, 0x30, 0x85, 0xd8, 0x42, 0x5d, 0x32, 0x3b, 0x72, 0xe3, - 0x2b, 0x79, 0x6c, 0x6b, 0x32, 0x6e, 0x0f, 0x29, 0x35, 0x76, 0x0f, 0x69, 0xd4, 0x86, 0x4d, 0x7a, - 0xf4, 0x86, 0xcd, 0x07, 0xc3, 0x5d, 0x13, 0x9d, 0xfb, 0x86, 0xf6, 0x70, 0x50, 0x13, 0x16, 0x38, - 0x7f, 0x3b, 0x22, 0xfb, 0x11, 0x47, 0x1d, 0xd8, 0xf8, 0x1a, 0x94, 0x39, 0x12, 0xec, 0xe3, 0xc5, - 0x1e, 0xbf, 0x37, 0xb1, 0x8b, 0x4d, 0xd4, 0x44, 0x68, 0x13, 0xf5, 0xff, 0xb1, 0xae, 0xf8, 0x40, - 0x1c, 0xe6, 0x86, 0x1c, 0x89, 0x91, 0xbb, 0xc3, 0xe3, 0x22, 0xb2, 0xa2, 0x61, 0xf1, 0x63, 0x37, - 0x8c, 0xf7, 0x75, 0x62, 0x72, 0x5f, 0xcf, 0xbe, 0x85, 0x7d, 0x9d, 0xbc, 0xb7, 0xbe, 0x7e, 0x5b, - 0x7b, 0xe1, 0xa3, 0x12, 0x94, 0xc7, 0x7b, 0x5f, 0x23, 0xbb, 0xe3, 0x58, 0x1b, 0x08, 0xe3, 0xe6, - 0xb8, 0x87, 0xa0, 0x30, 0xe0, 0x1b, 0x32, 0x55, 0xce, 0x47, 0x56, 0xe1, 0xca, 0xb7, 0xc6, 0xfd, - 0x89, 0x27, 0xe2, 0xc0, 0x8d, 0x18, 0xad, 0x2f, 0xc1, 0x7c, 0x1b, 0x1b, 0x66, 0xfb, 0x5e, 0x07, - 0xeb, 0x1c, 0xe7, 0xfe, 0xff, 0x63, 0x75, 0x58, 0x4b, 0xbe, 0x0f, 0x20, 0xad, 0x62, 0xd7, 0x21, - 0xfe, 0x18, 0xaa, 0x42, 0x06, 0x1f, 0x18, 0xd8, 0xf1, 0x82, 0x43, 0x15, 0xa3, 0x96, 0x08, 0x8c, - 0xba, 0x2e, 0x28, 0xc9, 0x02, 0xd9, 0x67, 0x43, 0x4f, 0xf3, 0x18, 0xc0, 0xf8, 0xe5, 0x3c, 0x67, - 0x0f, 0x07, 0x01, 0x2e, 0x8b, 0x20, 0x40, 0x7c, 0xec, 0xfa, 0x96, 0x71, 0x0d, 0x44, 0x01, 0x9e, - 0xe6, 0x51, 0x80, 0xc4, 0x84, 0xc2, 0x22, 0x61, 0x80, 0x5a, 0x24, 0x0c, 0x90, 0x9c, 0xd0, 0xcc, - 0x31, 0x71, 0x80, 0xcb, 0x22, 0x0e, 0x90, 0x9a, 0x50, 0xe3, 0x81, 0x40, 0xc0, 0xbb, 0x42, 0x81, - 0x80, 0xcc, 0x70, 0xb4, 0x35, 0xc2, 0x3a, 0x22, 0x12, 0xf0, 0xbc, 0x1f, 0x09, 0xc8, 0x8d, 0x8d, - 0x22, 0x70, 0xe6, 0xc1, 0x50, 0xc0, 0xe6, 0x50, 0x28, 0x20, 0xcf, 0xff, 0xb0, 0xd5, 0x38, 0x88, - 0x09, 0xb1, 0x80, 0xcd, 0xa1, 0x58, 0x40, 0x61, 0x02, 0xe0, 0x84, 0x60, 0xc0, 0x37, 0x8e, 0x0e, - 0x06, 0x8c, 0x5f, 0xae, 0xf3, 0x6a, 0x4e, 0x17, 0x0d, 0xd0, 0xc6, 0x44, 0x03, 0xe4, 0xb1, 0x2b, - 0x57, 0x06, 0x3f, 0x75, 0x38, 0x60, 0x7b, 0x44, 0x38, 0x80, 0x2d, 0xdc, 0xcf, 0x8d, 0x05, 0x9f, - 0x22, 0x1e, 0xb0, 0x3d, 0x22, 0x1e, 0x80, 0x26, 0xc2, 0x4e, 0x0c, 0x08, 0x5c, 0x8d, 0x06, 0x04, - 0xe6, 0xc7, 0x78, 0x9d, 0xc1, 0x68, 0x1f, 0x13, 0x11, 0xd8, 0x19, 0x17, 0x11, 0x60, 0xab, 0xf6, - 0xc7, 0xc7, 0x22, 0x1e, 0x23, 0x24, 0xb0, 0x39, 0x14, 0x12, 0x38, 0x31, 0x41, 0xd3, 0xa6, 0x8f, - 0x09, 0xb0, 0x67, 0xdb, 0xd9, 0x83, 0xed, 0x20, 0x67, 0x6f, 0x24, 0xd2, 0x59, 0x39, 0xa7, 0x3c, - 0x4a, 0x3c, 0x98, 0x01, 0x3b, 0x47, 0xd6, 0x0a, 0xb8, 0xd7, 0xb3, 0x7b, 0xe2, 0x1e, 0x03, 0xfd, - 0x50, 0xce, 0x91, 0x35, 0x62, 0x60, 0xd3, 0x8e, 0x88, 0x1f, 0xd0, 0x35, 0x59, 0xc8, 0x8e, 0x29, - 0xbf, 0x28, 0x05, 0xbc, 0x34, 0x82, 0x10, 0x5e, 0x5f, 0x66, 0xf8, 0xfa, 0x32, 0x14, 0x55, 0x88, - 0x45, 0xa3, 0x0a, 0x8b, 0x90, 0x25, 0x6b, 0xad, 0x81, 0x80, 0x81, 0xee, 0xf8, 0x01, 0x03, 0x71, - 0x80, 0x8a, 0xc5, 0x1e, 0xf8, 0xb4, 0xc4, 0x76, 0x13, 0x8b, 0xfe, 0x61, 0x32, 0xb6, 0xd4, 0x45, - 0x4f, 0xc0, 0x7c, 0x88, 0xd6, 0x5f, 0xc3, 0xb1, 0xd5, 0xb3, 0xec, 0x53, 0x57, 0xf8, 0x62, 0xee, - 0x9f, 0x4b, 0x81, 0x84, 0x82, 0x48, 0xc3, 0xa8, 0xa0, 0x80, 0xf4, 0x16, 0x05, 0x05, 0x62, 0xf7, - 0x1c, 0x14, 0x08, 0xaf, 0x49, 0xe3, 0xd1, 0x35, 0xe9, 0xff, 0x94, 0x82, 0x3e, 0xf1, 0x97, 0xf8, - 0x86, 0xdd, 0xc6, 0x7c, 0x95, 0x48, 0x7f, 0x13, 0x97, 0xa4, 0x63, 0xef, 0xf1, 0xb5, 0x20, 0xf9, - 0x49, 0xa8, 0xfc, 0x89, 0x27, 0xc3, 0xe7, 0x15, 0x7f, 0x81, 0x39, 0x1b, 0xbe, 0xc7, 0xc1, 0x2f, - 0x37, 0x24, 0x83, 0xcb, 0x0d, 0xfe, 0xe5, 0xe3, 0x54, 0xe8, 0xf2, 0x31, 0x7a, 0x0e, 0x32, 0x34, - 0xd8, 0xaf, 0xd9, 0x8e, 0xf8, 0x1b, 0x63, 0x67, 0xc6, 0x5f, 0x6c, 0x70, 0xe9, 0x91, 0x6b, 0x76, - 0x19, 0x22, 0xf0, 0x38, 0x32, 0x11, 0x8f, 0xe3, 0x3e, 0xc8, 0x90, 0xda, 0xb3, 0xbf, 0x95, 0x01, - 0xfc, 0xe6, 0xba, 0x48, 0x50, 0x7e, 0x2a, 0x06, 0xc5, 0x81, 0x89, 0x66, 0x64, 0xdb, 0x47, 0x6d, - 0x23, 0x4f, 0x27, 0x8f, 0xb3, 0x00, 0x7b, 0xba, 0xab, 0xbd, 0xae, 0x5b, 0x1e, 0xff, 0x93, 0x78, - 0x71, 0x35, 0x94, 0x82, 0xca, 0x90, 0x26, 0x5f, 0x7d, 0x97, 0xff, 0x51, 0xbc, 0xb8, 0xea, 0x7f, - 0xa3, 0xeb, 0x90, 0xc4, 0xb7, 0xe9, 0xeb, 0xae, 0xec, 0x8d, 0xe4, 0x93, 0xc3, 0xcb, 0x61, 0x92, - 0x5d, 0x2d, 0x91, 0xce, 0xfe, 0xe2, 0x9b, 0x8b, 0x32, 0xa3, 0x7e, 0xdc, 0xbf, 0x30, 0xa6, 0x72, - 0xfe, 0xa8, 0x14, 0xd2, 0x03, 0x52, 0xa0, 0x71, 0xc0, 0x9c, 0x58, 0xde, 0x13, 0x99, 0xb2, 0x33, - 0xde, 0x6a, 0xbe, 0x8b, 0xbb, 0x8e, 0x6d, 0x77, 0x34, 0x36, 0xc6, 0x2b, 0x50, 0x88, 0xce, 0xab, - 0xec, 0xef, 0x58, 0x79, 0xba, 0x69, 0x69, 0x11, 0x27, 0x38, 0xc7, 0x12, 0xd9, 0x98, 0xba, 0x91, - 0x48, 0x4b, 0x72, 0xec, 0x46, 0x22, 0x1d, 0x93, 0xe3, 0xca, 0x16, 0x9c, 0x18, 0x39, 0xaf, 0xa2, - 0x67, 0x21, 0x13, 0x4c, 0xc9, 0xec, 0x98, 0xfe, 0x11, 0x91, 0x96, 0x80, 0x56, 0xf9, 0x15, 0x29, - 0x80, 0x8c, 0xc6, 0x6e, 0xea, 0x90, 0x64, 0x67, 0x26, 0xf9, 0xf9, 0x98, 0x27, 0xa6, 0x9b, 0x91, - 0x97, 0xd9, 0x81, 0x4a, 0x95, 0x33, 0x2b, 0xef, 0x85, 0x24, 0x4b, 0x41, 0x59, 0x48, 0x05, 0xef, - 0x48, 0x03, 0x24, 0x2b, 0xb5, 0x5a, 0x7d, 0x4b, 0x3c, 0x0a, 0x5b, 0xdd, 0x54, 0x5b, 0x72, 0x8c, - 0x24, 0xab, 0xf5, 0x1b, 0xf5, 0x5a, 0x4b, 0x8e, 0xa3, 0x39, 0xc8, 0xb3, 0xdf, 0xda, 0xd5, 0x4d, - 0x75, 0xbd, 0xd2, 0x92, 0x13, 0xa1, 0xa4, 0x66, 0x7d, 0x63, 0xb5, 0xae, 0xca, 0xb3, 0xca, 0x53, - 0x70, 0x7a, 0xec, 0x1c, 0x1e, 0x04, 0x66, 0xa4, 0x50, 0x60, 0x46, 0xf9, 0x70, 0x8c, 0x2c, 0x6a, - 0xc6, 0x4d, 0xcc, 0xe8, 0xc6, 0x40, 0xc3, 0x2f, 0x1e, 0x63, 0x56, 0x1f, 0x68, 0x3d, 0x59, 0xc7, - 0xf4, 0xf0, 0x2e, 0xf6, 0x8c, 0x7d, 0xe6, 0x28, 0x30, 0x0b, 0x94, 0x57, 0xf3, 0x3c, 0x95, 0x32, - 0xb9, 0x8c, 0xec, 0x35, 0x6c, 0x78, 0x1a, 0x53, 0x22, 0x97, 0xff, 0xa1, 0xe4, 0x3c, 0x4b, 0x6d, - 0xb2, 0x44, 0xe5, 0x9b, 0x8f, 0x25, 0xcb, 0x0c, 0xcc, 0xaa, 0xf5, 0x96, 0xfa, 0x8a, 0x1c, 0x47, - 0x08, 0x0a, 0xf4, 0xa7, 0xd6, 0xdc, 0xa8, 0x6c, 0x35, 0xaf, 0x6f, 0x12, 0x59, 0xce, 0x43, 0x51, - 0xc8, 0x52, 0x24, 0xce, 0x2a, 0x8f, 0xc1, 0xa9, 0x31, 0x5e, 0xc5, 0x88, 0x43, 0xac, 0x1f, 0x97, - 0xc2, 0xd4, 0x51, 0xcf, 0x60, 0x13, 0x92, 0xae, 0xa7, 0x7b, 0x7d, 0x97, 0x0b, 0xf1, 0xd9, 0x69, - 0xdd, 0x8c, 0x65, 0xf1, 0xa3, 0x49, 0xd9, 0x55, 0x0e, 0xa3, 0x5c, 0x82, 0x42, 0x34, 0x67, 0xbc, - 0x0c, 0x02, 0x25, 0x8a, 0x29, 0x57, 0x00, 0x0d, 0x7b, 0x1f, 0x23, 0x96, 0x97, 0xd2, 0xa8, 0xe5, - 0xe5, 0x8f, 0x4b, 0x70, 0xe6, 0x08, 0x4f, 0x03, 0xbd, 0x34, 0xd0, 0xc8, 0xe7, 0x8f, 0xe3, 0xa7, - 0xb0, 0xbf, 0x4a, 0x7a, 0x38, 0xd0, 0xcc, 0xa7, 0x21, 0x17, 0x4e, 0x9f, 0xae, 0x91, 0x5f, 0x8c, - 0x05, 0x83, 0x38, 0xba, 0x0e, 0x0e, 0x4c, 0xa0, 0xf4, 0x55, 0x9a, 0xc0, 0x77, 0x02, 0x78, 0x07, - 0xe2, 0x14, 0x35, 0x9f, 0x47, 0xef, 0x1f, 0x11, 0x5f, 0xc4, 0x46, 0xeb, 0x80, 0x0f, 0x82, 0x8c, - 0xc7, 0x7f, 0xb9, 0xa8, 0x19, 0x0e, 0x0a, 0xf4, 0xe9, 0x1c, 0xeb, 0xfa, 0x7f, 0x26, 0x79, 0xba, - 0xc9, 0x38, 0x08, 0x1e, 0xb0, 0x64, 0x17, 0xbd, 0x02, 0xa7, 0x06, 0x1c, 0x05, 0x1f, 0x3a, 0x31, - 0xad, 0xbf, 0x70, 0x22, 0xea, 0x2f, 0x08, 0xe8, 0xf0, 0x6c, 0x3f, 0x1b, 0x9d, 0xed, 0x5f, 0x01, - 0x08, 0x82, 0x03, 0xc1, 0xb1, 0x3f, 0x29, 0x7c, 0xec, 0xef, 0x12, 0xcc, 0x12, 0x4d, 0x12, 0x72, - 0x1a, 0x36, 0xc5, 0x44, 0x13, 0x42, 0xc1, 0x05, 0x46, 0xad, 0x98, 0x80, 0x86, 0x03, 0xb4, 0x63, - 0x8a, 0x78, 0x57, 0xb4, 0x88, 0x07, 0xc6, 0x86, 0x7a, 0x47, 0x17, 0xf5, 0x06, 0xcc, 0xd2, 0x9e, - 0x1f, 0x79, 0x97, 0xf2, 0x9b, 0x00, 0x74, 0xcf, 0xeb, 0x99, 0x3b, 0xfd, 0xa0, 0x80, 0xc5, 0xd1, - 0x9a, 0x53, 0x11, 0x74, 0xd5, 0xfb, 0xb8, 0x0a, 0x2d, 0x04, 0xac, 0x21, 0x35, 0x0a, 0x01, 0x2a, - 0x1b, 0x50, 0x88, 0xf2, 0x8e, 0xbe, 0x1b, 0x1a, 0x3c, 0xae, 0x92, 0x11, 0xfe, 0x8d, 0xef, 0x1d, - 0xf1, 0x07, 0x8f, 0xe8, 0x87, 0xf2, 0xfe, 0x18, 0xe4, 0xc2, 0x8a, 0xf7, 0x57, 0xcf, 0x05, 0x51, - 0xbe, 0x4d, 0x82, 0xb4, 0xdf, 0xfc, 0x23, 0x0e, 0x3b, 0x07, 0x77, 0x84, 0xfd, 0xcd, 0x0b, 0xb6, - 0x4d, 0x14, 0xf7, 0xb7, 0x89, 0xae, 0xf8, 0xd3, 0xdf, 0xb8, 0x80, 0x48, 0x58, 0xd6, 0xe2, 0xc0, - 0x21, 0x9f, 0xed, 0xaf, 0x4c, 0x77, 0x15, 0x6f, 0x01, 0x66, 0xc3, 0xd7, 0xe8, 0xd8, 0x87, 0xd2, - 0x0e, 0x9d, 0x30, 0x62, 0x03, 0x31, 0x7c, 0x67, 0x4f, 0x3a, 0xf6, 0x9d, 0x3d, 0xbf, 0x94, 0x58, - 0xb8, 0x94, 0xef, 0x95, 0x20, 0x2d, 0xc6, 0x04, 0x7a, 0x77, 0xf8, 0xe4, 0x99, 0xd8, 0xda, 0x1c, - 0x6b, 0x8f, 0x38, 0x7e, 0xe8, 0xe0, 0xd9, 0xd0, 0x81, 0xeb, 0xf8, 0x71, 0x0f, 0x5c, 0x73, 0xcf, - 0xee, 0x4f, 0x25, 0x90, 0x07, 0x47, 0xec, 0x57, 0x5d, 0xbb, 0xe1, 0x69, 0x2e, 0x3e, 0x62, 0x9a, - 0x1b, 0x77, 0x8a, 0x3a, 0x31, 0xee, 0x14, 0xf5, 0x70, 0xab, 0x67, 0xef, 0xb1, 0xd5, 0x1f, 0x88, - 0x41, 0x36, 0x14, 0x1e, 0x45, 0xcf, 0x44, 0x4e, 0x64, 0x2f, 0x1d, 0x15, 0x4a, 0x0d, 0x1d, 0xc9, - 0x8e, 0x88, 0x29, 0x76, 0x7c, 0x31, 0xbd, 0xf5, 0xb7, 0xb3, 0x46, 0x5f, 0x60, 0x9d, 0x1d, 0x73, - 0x81, 0xf5, 0x6f, 0x48, 0x90, 0xf6, 0xdd, 0xee, 0xe3, 0x6e, 0x62, 0x9e, 0x84, 0x24, 0xf7, 0x2c, - 0xd9, 0x2e, 0x26, 0xff, 0x1a, 0x19, 0x56, 0x2e, 0x43, 0x5a, 0xfc, 0x05, 0x44, 0x3e, 0xab, 0xf9, - 0xdf, 0xe7, 0x9f, 0x87, 0x6c, 0x68, 0x03, 0x98, 0x98, 0xc6, 0x8d, 0xfa, 0x7b, 0xe4, 0x99, 0x72, - 0xea, 0xce, 0xdd, 0xa5, 0xf8, 0x06, 0x7e, 0x9d, 0x8c, 0x66, 0xb5, 0x5e, 0xbb, 0x5e, 0xaf, 0xbd, - 0x28, 0x4b, 0xe5, 0xec, 0x9d, 0xbb, 0x4b, 0x29, 0x15, 0xd3, 0x88, 0xe2, 0xf9, 0x17, 0xa1, 0x38, - 0xd0, 0x31, 0x51, 0xb7, 0x05, 0x41, 0x61, 0x75, 0x7b, 0x6b, 0xad, 0x51, 0xab, 0xb4, 0xea, 0x1a, - 0x3b, 0xb7, 0x8b, 0x4e, 0xc1, 0xfc, 0x5a, 0xe3, 0xda, 0xf5, 0x96, 0x56, 0x5b, 0x6b, 0xd4, 0x37, - 0x5a, 0x5a, 0xa5, 0xd5, 0xaa, 0xd4, 0x5e, 0x94, 0x63, 0x17, 0xef, 0x66, 0x21, 0x51, 0xa9, 0xd6, - 0x1a, 0xa8, 0x06, 0x09, 0x1a, 0x0a, 0x39, 0xf2, 0x04, 0x58, 0xf9, 0xe8, 0xd8, 0x30, 0xba, 0x0a, - 0xb3, 0x34, 0x4a, 0x82, 0x8e, 0x3e, 0x12, 0x56, 0x9e, 0x10, 0x2c, 0x26, 0x95, 0xa1, 0x23, 0xf2, - 0xc8, 0x33, 0x62, 0xe5, 0xa3, 0x63, 0xc7, 0x68, 0x0d, 0x52, 0x62, 0x91, 0x3c, 0xe9, 0xe0, 0x56, - 0x79, 0x62, 0x40, 0x97, 0x34, 0x8d, 0x05, 0x1b, 0x8e, 0x3e, 0x3e, 0x56, 0x9e, 0x10, 0x55, 0x46, - 0x0d, 0xff, 0x3e, 0xd3, 0x84, 0x13, 0x61, 0xe5, 0x49, 0x71, 0x62, 0xa4, 0x42, 0x26, 0x08, 0xe3, - 0x4c, 0x3e, 0x14, 0x57, 0x9e, 0x22, 0x60, 0x8e, 0xde, 0x0b, 0xf9, 0xe8, 0x52, 0x77, 0xba, 0x53, - 0x67, 0xe5, 0x29, 0x23, 0xd2, 0x04, 0x3f, 0xba, 0xee, 0x9d, 0xee, 0x14, 0x5a, 0x79, 0xca, 0x00, - 0x35, 0x7a, 0x0d, 0xe6, 0x86, 0xd7, 0xa5, 0xd3, 0x1f, 0x4a, 0x2b, 0x1f, 0x23, 0x64, 0x8d, 0xba, - 0x80, 0x46, 0xac, 0x67, 0x8f, 0x71, 0x46, 0xad, 0x7c, 0x9c, 0x08, 0x36, 0x6a, 0x43, 0x71, 0x70, - 0x91, 0x38, 0xed, 0x99, 0xb5, 0xf2, 0xd4, 0xd1, 0x6c, 0x56, 0x4a, 0x74, 0x71, 0x39, 0xed, 0x19, - 0xb6, 0xf2, 0xd4, 0xc1, 0x6d, 0xb4, 0x0d, 0x10, 0x5a, 0x1f, 0x4e, 0x71, 0xa6, 0xad, 0x3c, 0x4d, - 0x98, 0x1b, 0x39, 0x30, 0x3f, 0x6a, 0xe1, 0x78, 0x9c, 0x23, 0x6e, 0xe5, 0x63, 0x45, 0xbf, 0x89, - 0x3e, 0x47, 0x97, 0x80, 0xd3, 0x1d, 0x79, 0x2b, 0x4f, 0x19, 0x06, 0xaf, 0x56, 0xc6, 0x9e, 0x73, - 0x7e, 0xe4, 0xc8, 0x73, 0xce, 0xc1, 0xc9, 0x65, 0xff, 0x6c, 0xf3, 0x67, 0x9f, 0x84, 0x77, 0xf0, - 0x17, 0x74, 0x5c, 0x4f, 0xbf, 0x65, 0x5a, 0x7b, 0xfe, 0x53, 0x46, 0xfc, 0x9b, 0x1f, 0x72, 0x3e, - 0xc9, 0x9f, 0xeb, 0x11, 0xa9, 0x13, 0x1e, 0x34, 0x1a, 0xfb, 0xca, 0xe3, 0xa4, 0xfb, 0x10, 0x93, - 0x8f, 0x2f, 0x1f, 0xf1, 0x58, 0xd2, 0x84, 0x27, 0x99, 0x46, 0x3c, 0xa6, 0x54, 0x3e, 0xf2, 0x8d, - 0x81, 0xf2, 0x51, 0xe7, 0xbe, 0x95, 0x1f, 0x90, 0xa0, 0x70, 0xdd, 0x74, 0x3d, 0xbb, 0x67, 0x1a, - 0x7a, 0x87, 0x4e, 0x2f, 0x57, 0xa6, 0xbd, 0x95, 0x55, 0xcd, 0x10, 0x77, 0x85, 0xbf, 0xb7, 0xc4, - 0x6f, 0x0a, 0xad, 0x42, 0xf2, 0xb6, 0xde, 0x61, 0x77, 0xa2, 0xc2, 0x8f, 0xad, 0x0d, 0xca, 0x3c, - 0xe4, 0x47, 0x85, 0x51, 0x18, 0xef, 0x4a, 0xac, 0x24, 0x29, 0xdf, 0x21, 0x81, 0x1c, 0xd4, 0x4c, - 0xc5, 0x86, 0xdd, 0x6b, 0xd3, 0xa5, 0x80, 0xe3, 0x84, 0xce, 0x0a, 0x88, 0x4f, 0xea, 0xf2, 0x99, - 0x5d, 0xec, 0xfb, 0x6d, 0xe3, 0x9d, 0xac, 0x44, 0xc8, 0xc1, 0x1a, 0x71, 0xe5, 0x3c, 0x3e, 0xea, - 0xca, 0xb9, 0xf2, 0xfd, 0xf4, 0x86, 0x4b, 0xb7, 0x6b, 0xba, 0x64, 0x74, 0xa8, 0x74, 0x71, 0x7f, - 0x03, 0x12, 0x3d, 0xdd, 0xe3, 0x4b, 0xde, 0xea, 0xe5, 0x63, 0x3f, 0x19, 0xc5, 0xda, 0x4c, 0x31, - 0xd0, 0x4b, 0x90, 0xee, 0xea, 0x07, 0x1a, 0xc5, 0x8b, 0x7d, 0x55, 0x78, 0xa9, 0xae, 0x7e, 0x40, - 0xea, 0x87, 0xde, 0x0b, 0x45, 0x02, 0x69, 0xec, 0xeb, 0xd6, 0x1e, 0x66, 0xc8, 0xf1, 0xaf, 0x0a, - 0x39, 0xdf, 0xd5, 0x0f, 0x6a, 0x14, 0x8d, 0xe0, 0xf3, 0xa7, 0xb5, 0x7e, 0x4d, 0xe2, 0x71, 0x0c, - 0x2a, 0x18, 0xa4, 0x83, 0x6c, 0xf8, 0x5f, 0xb4, 0x50, 0xb1, 0xe9, 0xf2, 0xc8, 0x38, 0x4d, 0x18, - 0x10, 0x6b, 0x35, 0x4f, 0xaa, 0xf7, 0x99, 0x37, 0x17, 0x25, 0x56, 0x6a, 0xd1, 0x18, 0x12, 0x7b, - 0x96, 0x85, 0x67, 0xb4, 0x29, 0x3b, 0x3c, 0x2f, 0xbc, 0x6a, 0x06, 0x08, 0x8c, 0x9b, 0xe4, 0xf3, - 0x36, 0x7c, 0x52, 0x82, 0xec, 0x6a, 0xe8, 0x31, 0xc7, 0x12, 0xa4, 0xba, 0xb6, 0x65, 0xde, 0xc2, - 0x3d, 0x7f, 0xd7, 0x8c, 0x7d, 0x12, 0xcf, 0x97, 0xfd, 0x4d, 0x40, 0xef, 0x50, 0xbc, 0x77, 0x24, - 0xbe, 0x09, 0xd7, 0xeb, 0x78, 0xc7, 0x35, 0x85, 0x9c, 0x55, 0xf1, 0x89, 0x1e, 0x05, 0xd9, 0xc5, - 0x46, 0xbf, 0x67, 0x7a, 0x87, 0x9a, 0x61, 0x5b, 0x9e, 0x6e, 0x78, 0x3c, 0x32, 0x50, 0x14, 0xe9, - 0x35, 0x96, 0x4c, 0x40, 0xda, 0xd8, 0xd3, 0xcd, 0x0e, 0x3b, 0x2b, 0x9a, 0x51, 0xc5, 0x27, 0xaf, - 0xea, 0x9d, 0x54, 0x78, 0x65, 0x5c, 0x03, 0xd9, 0x76, 0x70, 0x2f, 0x72, 0x44, 0x86, 0x69, 0x63, - 0xe9, 0xb7, 0x3e, 0xfd, 0xc4, 0x02, 0x17, 0x38, 0x3f, 0x5e, 0xc1, 0xfe, 0x76, 0x81, 0x5a, 0x14, - 0x1c, 0xe2, 0xec, 0xcc, 0x2b, 0x91, 0x7d, 0xb2, 0xfe, 0x4e, 0xf0, 0xb0, 0xcd, 0xc2, 0x90, 0x50, - 0x2b, 0xd6, 0x61, 0xb5, 0xf4, 0x9b, 0x01, 0x74, 0xb0, 0x72, 0x7e, 0x11, 0x1f, 0x86, 0x37, 0xcd, - 0x28, 0x0c, 0x59, 0x54, 0xbc, 0xa6, 0x9b, 0x1d, 0xf1, 0xe7, 0x53, 0x55, 0xfe, 0x85, 0x56, 0xfc, - 0x80, 0x67, 0x82, 0xae, 0xd0, 0x94, 0x71, 0xba, 0x51, 0xb5, 0xad, 0x76, 0x34, 0xb2, 0x89, 0x6a, - 0x90, 0xf4, 0xec, 0x5b, 0xd8, 0xe2, 0x02, 0xaa, 0x3e, 0x76, 0x8c, 0xb7, 0xe1, 0x54, 0xce, 0x8a, - 0xbe, 0x11, 0xe4, 0x36, 0xee, 0xe0, 0x3d, 0x76, 0x83, 0x73, 0x5f, 0xef, 0x61, 0xf6, 0x7e, 0xc0, - 0x3d, 0xbd, 0xfc, 0x56, 0xf4, 0xa1, 0x9a, 0x14, 0x09, 0x6d, 0x45, 0x9f, 0x0b, 0x4d, 0xf1, 0xed, - 0xec, 0x31, 0x6d, 0x0c, 0x69, 0x5e, 0xd8, 0x16, 0x46, 0x9e, 0x17, 0x7d, 0x14, 0xe4, 0xbe, 0xb5, - 0x63, 0x5b, 0xf4, 0xaf, 0x0e, 0xf2, 0x75, 0x5d, 0x9a, 0xed, 0x9d, 0xfa, 0xe9, 0x7c, 0xef, 0x74, - 0x0b, 0x0a, 0x01, 0x29, 0x1d, 0x21, 0x99, 0xe3, 0x8e, 0x90, 0xbc, 0x0f, 0x40, 0x48, 0xd0, 0x3a, - 0x40, 0x30, 0x06, 0xe9, 0xe6, 0x5d, 0x76, 0x7c, 0x8f, 0x05, 0xa3, 0x39, 0xdc, 0x98, 0x10, 0x00, - 0xfa, 0x06, 0x98, 0xef, 0x9a, 0x96, 0xe6, 0xe2, 0xce, 0xae, 0xc6, 0x25, 0x47, 0x70, 0xb3, 0xc7, - 0xef, 0xcd, 0xb9, 0xae, 0x69, 0x35, 0x71, 0x67, 0x77, 0xd5, 0x47, 0x41, 0xef, 0x84, 0x33, 0x41, - 0xeb, 0x6d, 0x4b, 0xdb, 0xb7, 0x3b, 0x6d, 0xad, 0x87, 0x77, 0x35, 0x83, 0xbe, 0xee, 0x97, 0xa3, - 0x32, 0x3b, 0xe5, 0x93, 0x6c, 0x5a, 0xd7, 0xed, 0x4e, 0x5b, 0xc5, 0xbb, 0x35, 0x92, 0x8d, 0x1e, - 0x84, 0xa0, 0xe9, 0x9a, 0xd9, 0x76, 0x4b, 0xf9, 0xa5, 0xf8, 0xb9, 0x84, 0x9a, 0xf3, 0x13, 0x1b, - 0x6d, 0x77, 0x25, 0xfd, 0xc1, 0x8f, 0x2d, 0xce, 0x7c, 0xe1, 0x63, 0x8b, 0x33, 0xca, 0x55, 0xfa, - 0xca, 0x15, 0x1f, 0x47, 0xd8, 0x45, 0x97, 0x21, 0xa3, 0x8b, 0x0f, 0x76, 0x87, 0xed, 0x88, 0x71, - 0x18, 0x90, 0x2a, 0x3f, 0x29, 0x41, 0x72, 0xf5, 0xe6, 0x96, 0x6e, 0xf6, 0x50, 0x1d, 0xe6, 0x02, - 0xc5, 0x9c, 0x76, 0x48, 0x07, 0xba, 0x2c, 0xc6, 0xf4, 0xc6, 0xb8, 0xc3, 0x73, 0x99, 0xea, 0x03, - 0xbf, 0xf5, 0xe9, 0x27, 0xee, 0xe7, 0x30, 0x37, 0x07, 0xce, 0xd1, 0x09, 0xbc, 0xc1, 0xf3, 0x75, - 0xa1, 0x36, 0xdf, 0x80, 0x14, 0xab, 0xaa, 0x8b, 0x5e, 0x80, 0x59, 0x87, 0xfc, 0xe0, 0x7b, 0x02, - 0x67, 0xc7, 0x2a, 0x38, 0xa5, 0x0f, 0xab, 0x03, 0xe3, 0x53, 0xbe, 0x23, 0x06, 0xb0, 0x7a, 0xf3, - 0x66, 0xab, 0x67, 0x3a, 0x1d, 0xec, 0xbd, 0x55, 0x6d, 0xdf, 0x86, 0x13, 0xa1, 0xdb, 0xd9, 0x3d, - 0xe3, 0xf8, 0xed, 0x9f, 0x0f, 0x2e, 0x6a, 0xf7, 0x8c, 0x91, 0xb0, 0x6d, 0xd7, 0xf3, 0x61, 0xe3, - 0xc7, 0x87, 0x5d, 0x75, 0xbd, 0x61, 0xc9, 0xbe, 0x0c, 0xd9, 0x40, 0x18, 0x2e, 0x6a, 0x40, 0xda, - 0xe3, 0xbf, 0xb9, 0x80, 0x95, 0xf1, 0x02, 0x16, 0x6c, 0x61, 0x21, 0xfb, 0xec, 0xca, 0x9f, 0x4b, - 0x00, 0xa1, 0x31, 0xf2, 0xf5, 0xa9, 0x63, 0xa8, 0x01, 0x49, 0x6e, 0x89, 0xe3, 0xf7, 0xfc, 0x06, - 0x27, 0x03, 0x08, 0x09, 0xf5, 0xbb, 0x62, 0x30, 0xbf, 0x2d, 0x46, 0xef, 0xd7, 0xbf, 0x0c, 0xb6, - 0x21, 0x85, 0x2d, 0xaf, 0x67, 0xfa, 0xbb, 0x5a, 0x4f, 0x8e, 0xeb, 0xf3, 0x11, 0x8d, 0xaa, 0x5b, - 0x5e, 0xef, 0x30, 0xac, 0x01, 0x02, 0x2b, 0x24, 0x8f, 0x8f, 0xc4, 0xa1, 0x34, 0x8e, 0x95, 0x78, - 0xc3, 0x46, 0x0f, 0xd3, 0x84, 0xe8, 0xa5, 0xd5, 0x82, 0x48, 0xe6, 0x73, 0x8c, 0x0a, 0xc4, 0x2b, - 0x23, 0xca, 0x45, 0x48, 0xef, 0xcd, 0x0d, 0x2b, 0x04, 0x08, 0x74, 0x96, 0x69, 0x41, 0x51, 0xdc, - 0x82, 0xd9, 0xd1, 0x3b, 0xba, 0x65, 0x08, 0x77, 0xf5, 0x58, 0x53, 0x82, 0xb8, 0x49, 0x53, 0x65, - 0x10, 0xa8, 0x0e, 0x29, 0x81, 0x96, 0x38, 0x3e, 0x9a, 0xe0, 0x45, 0x0f, 0x40, 0x2e, 0x3c, 0x31, - 0x50, 0xd7, 0x23, 0xa1, 0x66, 0x43, 0xf3, 0xc2, 0xa4, 0x99, 0x27, 0x79, 0xe4, 0xcc, 0xc3, 0xbd, - 0xbb, 0x1f, 0xa1, 0x87, 0xd5, 0xdb, 0x7f, 0xf9, 0xbb, 0x65, 0x0b, 0x80, 0x0d, 0x55, 0x62, 0x49, - 0x79, 0xcf, 0xdc, 0xc3, 0x78, 0xcf, 0x30, 0x90, 0x55, 0xd7, 0xfb, 0x5a, 0xf5, 0xd0, 0xef, 0xc4, - 0x20, 0x17, 0xee, 0xa1, 0xbf, 0x92, 0x93, 0x16, 0xda, 0x08, 0xcc, 0x14, 0xbb, 0xd0, 0xf3, 0xe8, - 0x38, 0x33, 0x35, 0xa4, 0xcd, 0x13, 0xec, 0xd3, 0x47, 0xe3, 0x90, 0xe4, 0x27, 0xee, 0x36, 0x87, - 0x1c, 0x59, 0x69, 0xd2, 0x93, 0x04, 0x79, 0xf1, 0x24, 0xc1, 0x48, 0x3f, 0xf6, 0x21, 0x28, 0x90, - 0x05, 0x71, 0xe4, 0x18, 0x9f, 0x74, 0x2e, 0x4f, 0xd7, 0xb5, 0xc1, 0xa1, 0x75, 0xb4, 0x08, 0x59, - 0x42, 0x16, 0xd8, 0x61, 0x42, 0x03, 0x5d, 0xfd, 0xa0, 0xce, 0x52, 0xd0, 0x13, 0x80, 0xf6, 0xfd, - 0xc0, 0x84, 0x16, 0x08, 0x82, 0xd0, 0xcd, 0x05, 0x39, 0x82, 0xfc, 0x7e, 0x00, 0x52, 0x0b, 0x8d, - 0x3d, 0x3b, 0xcd, 0x1f, 0xf5, 0x26, 0x29, 0xab, 0xf4, 0xe9, 0xe9, 0x6f, 0x95, 0x98, 0x3f, 0x3c, - 0xb0, 0x6c, 0xe6, 0xcb, 0x91, 0xd6, 0x14, 0x83, 0xe2, 0x4f, 0xde, 0x5c, 0x2c, 0x1f, 0xea, 0xdd, - 0xce, 0x8a, 0x32, 0x02, 0x47, 0x19, 0xb5, 0x92, 0x27, 0x8e, 0x73, 0x74, 0xd9, 0xbd, 0xf2, 0x0e, - 0xa2, 0xde, 0x77, 0x7e, 0xff, 0x67, 0xce, 0x9f, 0x09, 0xbd, 0x42, 0x7d, 0xe0, 0x07, 0xd4, 0x58, - 0x9f, 0x10, 0x4f, 0x15, 0x05, 0xb3, 0x86, 0x7f, 0x56, 0x7f, 0x1d, 0x20, 0xe4, 0xc9, 0x4b, 0x47, - 0xaf, 0x10, 0x02, 0xfe, 0xc8, 0x0a, 0x21, 0x34, 0xa6, 0xde, 0x1d, 0x18, 0x6d, 0xf1, 0x0a, 0xc5, - 0x88, 0x77, 0xc8, 0x97, 0x6b, 0xb6, 0x19, 0x81, 0x10, 0x4c, 0x74, 0xa8, 0xce, 0x28, 0xff, 0x46, - 0x82, 0xd3, 0x43, 0xea, 0xe7, 0x57, 0xd9, 0x00, 0xd4, 0x0b, 0x65, 0xd2, 0x6e, 0x14, 0x9b, 0xc3, - 0xf7, 0xa6, 0xcd, 0x73, 0xbd, 0x21, 0xcb, 0xfd, 0xd6, 0xcc, 0x3e, 0xdc, 0xf4, 0xfc, 0x86, 0x04, - 0x0b, 0xe1, 0x0a, 0xf8, 0x4d, 0x69, 0x42, 0x2e, 0x5c, 0x34, 0x6f, 0xc4, 0x3b, 0xa6, 0x69, 0x44, - 0xb8, 0xfe, 0x11, 0x10, 0x74, 0x33, 0x18, 0xe2, 0x2c, 0x92, 0xf7, 0xd4, 0xd4, 0x42, 0x11, 0x15, - 0x1b, 0x39, 0xd4, 0x59, 0xdf, 0xfc, 0x81, 0x04, 0x89, 0x2d, 0xdb, 0xee, 0xa0, 0xf7, 0xc1, 0x9c, - 0x65, 0x7b, 0x1a, 0x19, 0x0e, 0xb8, 0xad, 0xf1, 0x85, 0x3d, 0x33, 0x9f, 0xf5, 0x23, 0x65, 0xf5, - 0xc5, 0x37, 0x17, 0x87, 0x39, 0x47, 0xbd, 0x04, 0x5f, 0xb4, 0x6c, 0xaf, 0x4a, 0x89, 0x5a, 0x6c, - 0xed, 0xbf, 0x0b, 0xf9, 0x68, 0x71, 0xcc, 0xc4, 0x56, 0x26, 0x15, 0x97, 0x9f, 0x58, 0x54, 0x6e, - 0x27, 0x54, 0x0e, 0x7b, 0xd8, 0xf9, 0x8f, 0x48, 0xcf, 0xbd, 0x02, 0xf2, 0xcd, 0xc1, 0x43, 0x47, - 0x75, 0x48, 0x89, 0x43, 0x46, 0xd2, 0x94, 0xe7, 0x97, 0xc2, 0xe2, 0xe4, 0xbc, 0xe7, 0x7f, 0x5e, - 0x02, 0x08, 0x82, 0x24, 0xe8, 0x71, 0x38, 0x55, 0xdd, 0xdc, 0x58, 0xd5, 0x9a, 0xad, 0x4a, 0x6b, - 0xbb, 0x19, 0xfd, 0xfb, 0x21, 0xe2, 0x45, 0x24, 0xd7, 0xc1, 0x86, 0xb9, 0x6b, 0xe2, 0x36, 0x7a, - 0x18, 0x16, 0xa2, 0xd4, 0xe4, 0xab, 0xbe, 0x2a, 0x4b, 0xe5, 0xdc, 0x9d, 0xbb, 0x4b, 0x69, 0xe6, - 0x27, 0xe2, 0x36, 0x3a, 0x07, 0x27, 0x86, 0xe9, 0x1a, 0x1b, 0xd7, 0xe4, 0x58, 0x39, 0x7f, 0xe7, - 0xee, 0x52, 0xc6, 0x77, 0x28, 0x91, 0x02, 0x28, 0x4c, 0xc9, 0xf1, 0xe2, 0x65, 0xb8, 0x73, 0x77, - 0x29, 0xc9, 0x7a, 0xa1, 0x9c, 0xf8, 0xe0, 0x8f, 0x9d, 0x9d, 0x39, 0xff, 0x4d, 0x00, 0x0d, 0x6b, - 0xb7, 0xa7, 0xd3, 0x3f, 0xa2, 0x8f, 0xca, 0x70, 0xb2, 0xb1, 0x71, 0x55, 0xad, 0xd4, 0x5a, 0x8d, - 0xcd, 0x8d, 0x81, 0x3f, 0x7b, 0x12, 0xcd, 0x5b, 0xdd, 0xdc, 0xae, 0xae, 0xd5, 0xb5, 0x66, 0xe3, - 0xda, 0x06, 0xdb, 0xfe, 0x8d, 0xe4, 0xbd, 0x67, 0xa3, 0xd5, 0x58, 0xaf, 0xcb, 0xb1, 0xea, 0xd5, - 0xb1, 0xdb, 0x0b, 0x8f, 0x1f, 0xf9, 0xee, 0x7e, 0x60, 0xf1, 0x22, 0x7b, 0x0c, 0xff, 0x37, 0x00, - 0x00, 0xff, 0xff, 0xf9, 0xc7, 0xce, 0xc4, 0x4a, 0xa3, 0x00, 0x00, + // 11466 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7b, 0x94, 0x24, 0xd7, + 0x59, 0xdf, 0x54, 0xbf, 0xfb, 0xeb, 0x57, 0xcd, 0x9d, 0xd9, 0xdd, 0xde, 0x5e, 0x69, 0x67, 0x54, + 0xb2, 0xa4, 0xd5, 0x4a, 0x9a, 0x95, 0x56, 0xda, 0x95, 0x34, 0x6b, 0x5b, 0xe9, 0xee, 0xe9, 0xdd, + 0xe9, 0xd5, 0xbc, 0x54, 0xdd, 0xb3, 0xd6, 0x0a, 0x70, 0x51, 0x53, 0x7d, 0x67, 0xa6, 0xb4, 0xdd, + 0x55, 0xed, 0xae, 0xea, 0xdd, 0x19, 0xfd, 0x91, 0x63, 0x62, 0x48, 0xcc, 0xf2, 0x88, 0x09, 0x1c, + 0x30, 0xd8, 0x0b, 0x36, 0x04, 0x6c, 0x48, 0x48, 0x00, 0x3b, 0x3c, 0xc2, 0x09, 0x81, 0x9c, 0x3c, + 0x80, 0x93, 0xe4, 0x38, 0xfc, 0x91, 0x90, 0x9c, 0x83, 0x02, 0x36, 0x27, 0x38, 0xc6, 0x24, 0x3c, + 0x4c, 0x42, 0x8e, 0x4f, 0x72, 0x72, 0xee, 0xab, 0x1e, 0xfd, 0x98, 0xee, 0x59, 0x49, 0x86, 0x40, + 0xfe, 0xd9, 0xed, 0xba, 0xf7, 0xfb, 0x7e, 0xf7, 0xde, 0xef, 0x7e, 0xf7, 0xbb, 0xdf, 0xfd, 0xee, + 0x63, 0xe0, 0x77, 0xae, 0xc2, 0xe2, 0x9e, 0x6d, 0xef, 0xb5, 0xf1, 0x85, 0x6e, 0xcf, 0x76, 0xed, + 0x9d, 0xfe, 0xee, 0x85, 0x16, 0x76, 0x8c, 0x9e, 0xd9, 0x75, 0xed, 0xde, 0x12, 0x4d, 0x43, 0x05, + 0x46, 0xb1, 0x24, 0x28, 0x94, 0x75, 0x98, 0xbd, 0x6a, 0xb6, 0xf1, 0x8a, 0x47, 0xd8, 0xc0, 0x2e, + 0x7a, 0x01, 0x62, 0xbb, 0x66, 0x1b, 0x17, 0xa5, 0xc5, 0xe8, 0xb9, 0xcc, 0xc5, 0x77, 0x2d, 0x0d, + 0x30, 0x2d, 0x85, 0x39, 0xb6, 0x48, 0xb2, 0x4a, 0x39, 0x94, 0xff, 0x13, 0x83, 0xb9, 0x11, 0xb9, + 0x08, 0x41, 0xcc, 0xd2, 0x3b, 0x04, 0x51, 0x3a, 0x97, 0x56, 0xe9, 0x6f, 0x54, 0x84, 0x64, 0x57, + 0x37, 0x6e, 0xe9, 0x7b, 0xb8, 0x18, 0xa1, 0xc9, 0xe2, 0x13, 0x9d, 0x05, 0x68, 0xe1, 0x2e, 0xb6, + 0x5a, 0xd8, 0x32, 0x0e, 0x8b, 0xd1, 0xc5, 0xe8, 0xb9, 0xb4, 0x1a, 0x48, 0x41, 0x4f, 0xc0, 0x6c, + 0xb7, 0xbf, 0xd3, 0x36, 0x0d, 0x2d, 0x40, 0x06, 0x8b, 0xd1, 0x73, 0x71, 0x55, 0x66, 0x19, 0x2b, + 0x3e, 0xf1, 0x63, 0x50, 0xb8, 0x83, 0xf5, 0x5b, 0x41, 0xd2, 0x0c, 0x25, 0xcd, 0x93, 0xe4, 0x00, + 0x61, 0x15, 0xb2, 0x1d, 0xec, 0x38, 0xfa, 0x1e, 0xd6, 0xdc, 0xc3, 0x2e, 0x2e, 0xc6, 0x68, 0xeb, + 0x17, 0x87, 0x5a, 0x3f, 0xd8, 0xf2, 0x0c, 0xe7, 0x6a, 0x1e, 0x76, 0x31, 0x2a, 0x43, 0x1a, 0x5b, + 0xfd, 0x0e, 0x43, 0x88, 0x8f, 0x91, 0x5f, 0xcd, 0xea, 0x77, 0x06, 0x51, 0x52, 0x84, 0x8d, 0x43, + 0x24, 0x1d, 0xdc, 0xbb, 0x6d, 0x1a, 0xb8, 0x98, 0xa0, 0x00, 0x8f, 0x0d, 0x01, 0x34, 0x58, 0xfe, + 0x20, 0x86, 0xe0, 0x43, 0x55, 0x48, 0xe3, 0x03, 0x17, 0x5b, 0x8e, 0x69, 0x5b, 0xc5, 0x24, 0x05, + 0x79, 0x64, 0x44, 0x2f, 0xe2, 0x76, 0x6b, 0x10, 0xc2, 0xe7, 0x43, 0x97, 0x21, 0x69, 0x77, 0x5d, + 0xd3, 0xb6, 0x9c, 0x62, 0x6a, 0x51, 0x3a, 0x97, 0xb9, 0xf8, 0xc0, 0x48, 0x45, 0xd8, 0x64, 0x34, + 0xaa, 0x20, 0x46, 0x75, 0x90, 0x1d, 0xbb, 0xdf, 0x33, 0xb0, 0x66, 0xd8, 0x2d, 0xac, 0x99, 0xd6, + 0xae, 0x5d, 0x4c, 0x53, 0x80, 0x85, 0xe1, 0x86, 0x50, 0xc2, 0xaa, 0xdd, 0xc2, 0x75, 0x6b, 0xd7, + 0x56, 0xf3, 0x4e, 0xe8, 0x1b, 0x9d, 0x84, 0x84, 0x73, 0x68, 0xb9, 0xfa, 0x41, 0x31, 0x4b, 0x35, + 0x84, 0x7f, 0x11, 0xd5, 0xc1, 0x2d, 0x93, 0x14, 0x57, 0xcc, 0x31, 0xd5, 0xe1, 0x9f, 0xca, 0x2f, + 0x24, 0xa0, 0x30, 0x8d, 0xf2, 0x5d, 0x81, 0xf8, 0x2e, 0x69, 0x7f, 0x31, 0x72, 0x1c, 0xe9, 0x30, + 0x9e, 0xb0, 0x78, 0x13, 0xf7, 0x29, 0xde, 0x32, 0x64, 0x2c, 0xec, 0xb8, 0xb8, 0xc5, 0x74, 0x25, + 0x3a, 0xa5, 0xb6, 0x01, 0x63, 0x1a, 0x56, 0xb6, 0xd8, 0x7d, 0x29, 0xdb, 0xab, 0x50, 0xf0, 0xaa, + 0xa4, 0xf5, 0x74, 0x6b, 0x4f, 0x68, 0xed, 0x85, 0x49, 0x35, 0x59, 0xaa, 0x09, 0x3e, 0x95, 0xb0, + 0xa9, 0x79, 0x1c, 0xfa, 0x46, 0x2b, 0x00, 0xb6, 0x85, 0xed, 0x5d, 0xad, 0x85, 0x8d, 0x76, 0x31, + 0x35, 0x46, 0x4a, 0x9b, 0x84, 0x64, 0x48, 0x4a, 0x36, 0x4b, 0x35, 0xda, 0xe8, 0x45, 0x5f, 0x09, + 0x93, 0x63, 0x74, 0x68, 0x9d, 0x0d, 0xbf, 0x21, 0x3d, 0xdc, 0x86, 0x7c, 0x0f, 0x93, 0x11, 0x81, + 0x5b, 0xbc, 0x65, 0x69, 0x5a, 0x89, 0xa5, 0x89, 0x2d, 0x53, 0x39, 0x1b, 0x6b, 0x58, 0xae, 0x17, + 0xfc, 0x44, 0x0f, 0x83, 0x97, 0xa0, 0x51, 0xb5, 0x02, 0x6a, 0x9f, 0xb2, 0x22, 0x71, 0x43, 0xef, + 0xe0, 0xd2, 0x1b, 0x90, 0x0f, 0x8b, 0x07, 0xcd, 0x43, 0xdc, 0x71, 0xf5, 0x9e, 0x4b, 0xb5, 0x30, + 0xae, 0xb2, 0x0f, 0x24, 0x43, 0x14, 0x5b, 0x2d, 0x6a, 0xff, 0xe2, 0x2a, 0xf9, 0x89, 0xfe, 0x9a, + 0xdf, 0xe0, 0x28, 0x6d, 0xf0, 0xa3, 0xc3, 0x3d, 0x1a, 0x42, 0x1e, 0x6c, 0x77, 0xe9, 0x79, 0xc8, + 0x85, 0x1a, 0x30, 0x6d, 0xd1, 0xca, 0x4f, 0xc6, 0xe0, 0xc4, 0x48, 0x6c, 0xf4, 0x2a, 0xcc, 0xf7, + 0x2d, 0xd3, 0x72, 0x71, 0xaf, 0xdb, 0xc3, 0x44, 0x65, 0x59, 0x59, 0xc5, 0xdf, 0x4b, 0x8e, 0x51, + 0xba, 0xed, 0x20, 0x35, 0x43, 0x51, 0xe7, 0xfa, 0xc3, 0x89, 0xe8, 0x26, 0x64, 0x88, 0x7e, 0xe8, + 0x3d, 0x9d, 0x02, 0xb2, 0xd1, 0x78, 0x71, 0xba, 0x26, 0x2f, 0xad, 0xf8, 0x9c, 0x95, 0xe8, 0x87, + 0xa5, 0x88, 0x1a, 0xc4, 0x42, 0xfb, 0x90, 0xbd, 0x8d, 0x7b, 0xe6, 0xae, 0x69, 0x30, 0x6c, 0x22, + 0xce, 0xfc, 0xc5, 0x17, 0xa6, 0xc4, 0xbe, 0x11, 0x60, 0x6d, 0xb8, 0xba, 0x8b, 0x97, 0x61, 0x7b, + 0xe3, 0x46, 0x4d, 0xad, 0x5f, 0xad, 0xd7, 0x56, 0xd4, 0x10, 0x72, 0xe9, 0x33, 0x12, 0x64, 0x02, + 0x75, 0x21, 0x66, 0xcb, 0xea, 0x77, 0x76, 0x70, 0x8f, 0x4b, 0x9c, 0x7f, 0xa1, 0x33, 0x90, 0xde, + 0xed, 0xb7, 0xdb, 0x4c, 0x6d, 0xd8, 0x9c, 0x97, 0x22, 0x09, 0x44, 0x65, 0x88, 0x95, 0xe2, 0x86, + 0x80, 0x5a, 0x29, 0xf2, 0x1b, 0x3d, 0x0c, 0x19, 0xd3, 0xd1, 0x7a, 0xb8, 0x8b, 0x75, 0x17, 0xb7, + 0x8a, 0xb1, 0x45, 0xe9, 0x5c, 0xaa, 0x12, 0x29, 0x4a, 0x2a, 0x98, 0x8e, 0xca, 0x53, 0x51, 0x09, + 0x52, 0x42, 0xf7, 0x8a, 0x71, 0x42, 0xa1, 0x7a, 0xdf, 0x2c, 0x8f, 0x73, 0x27, 0x44, 0x1e, 0xfb, + 0x56, 0x9e, 0x83, 0xd9, 0xa1, 0x46, 0xa2, 0x02, 0x64, 0x56, 0x6a, 0xd5, 0xb5, 0xb2, 0x5a, 0x6e, + 0xd6, 0x37, 0x37, 0xe4, 0x19, 0x94, 0x87, 0x40, 0xbb, 0x65, 0xe9, 0x7c, 0x3a, 0xf5, 0xc5, 0xa4, + 0xfc, 0xc1, 0x0f, 0x7e, 0xf0, 0x83, 0x11, 0xe5, 0x57, 0x12, 0x30, 0x3f, 0xca, 0xca, 0x8d, 0x34, + 0xb8, 0xbe, 0x4c, 0xa2, 0x21, 0x99, 0x94, 0x21, 0xde, 0xd6, 0x77, 0x70, 0x9b, 0x36, 0x2e, 0x7f, + 0xf1, 0x89, 0xa9, 0xec, 0xe8, 0xd2, 0x1a, 0x61, 0x51, 0x19, 0x27, 0x7a, 0x2f, 0x97, 0x5c, 0x9c, + 0x22, 0x9c, 0x9f, 0x0e, 0x81, 0x58, 0x3f, 0x2e, 0xe5, 0x33, 0x90, 0x26, 0xff, 0xb3, 0x6e, 0x49, + 0xb0, 0x6e, 0x21, 0x09, 0xb4, 0x5b, 0x4a, 0x90, 0xa2, 0x86, 0xad, 0x85, 0xbd, 0x2e, 0x13, 0xdf, + 0xc4, 0x14, 0xb4, 0xf0, 0xae, 0xde, 0x6f, 0xbb, 0xda, 0x6d, 0xbd, 0xdd, 0xc7, 0xd4, 0x44, 0xa5, + 0xd5, 0x2c, 0x4f, 0xbc, 0x41, 0xd2, 0xd0, 0x02, 0x64, 0x98, 0x1d, 0x34, 0xad, 0x16, 0x3e, 0xa0, + 0x33, 0x61, 0x5c, 0x65, 0xa6, 0xb1, 0x4e, 0x52, 0x48, 0xf1, 0xaf, 0x3b, 0xb6, 0x25, 0x8c, 0x09, + 0x2d, 0x82, 0x24, 0xd0, 0xe2, 0x9f, 0x1f, 0x9c, 0x84, 0x1f, 0x1c, 0xdd, 0xbc, 0x21, 0xeb, 0xf7, + 0x18, 0x14, 0x28, 0xc5, 0xb3, 0x7c, 0xac, 0xea, 0xed, 0xe2, 0x2c, 0x55, 0x80, 0x3c, 0x4b, 0xde, + 0xe4, 0xa9, 0xca, 0xcf, 0x46, 0x20, 0x46, 0xa7, 0x82, 0x02, 0x64, 0x9a, 0x37, 0xb7, 0x6a, 0xda, + 0xca, 0xe6, 0x76, 0x65, 0xad, 0x26, 0x4b, 0xa4, 0xeb, 0x69, 0xc2, 0xd5, 0xb5, 0xcd, 0x72, 0x53, + 0x8e, 0x78, 0xdf, 0xf5, 0x8d, 0xe6, 0xe5, 0xe7, 0xe4, 0xa8, 0xc7, 0xb0, 0xcd, 0x12, 0x62, 0x41, + 0x82, 0x67, 0x2f, 0xca, 0x71, 0x24, 0x43, 0x96, 0x01, 0xd4, 0x5f, 0xad, 0xad, 0x5c, 0x7e, 0x4e, + 0x4e, 0x84, 0x53, 0x9e, 0xbd, 0x28, 0x27, 0x51, 0x0e, 0xd2, 0x34, 0xa5, 0xb2, 0xb9, 0xb9, 0x26, + 0xa7, 0x3c, 0xcc, 0x46, 0x53, 0xad, 0x6f, 0x5c, 0x93, 0xd3, 0x1e, 0xe6, 0x35, 0x75, 0x73, 0x7b, + 0x4b, 0x06, 0x0f, 0x61, 0xbd, 0xd6, 0x68, 0x94, 0xaf, 0xd5, 0xe4, 0x8c, 0x47, 0x51, 0xb9, 0xd9, + 0xac, 0x35, 0xe4, 0x6c, 0xa8, 0x5a, 0xcf, 0x5e, 0x94, 0x73, 0x5e, 0x11, 0xb5, 0x8d, 0xed, 0x75, + 0x39, 0x8f, 0x66, 0x21, 0xc7, 0x8a, 0x10, 0x95, 0x28, 0x0c, 0x24, 0x5d, 0x7e, 0x4e, 0x96, 0xfd, + 0x8a, 0x30, 0x94, 0xd9, 0x50, 0xc2, 0xe5, 0xe7, 0x64, 0xa4, 0x54, 0x21, 0x4e, 0xd5, 0x10, 0x21, + 0xc8, 0xaf, 0x95, 0x2b, 0xb5, 0x35, 0x6d, 0x73, 0x8b, 0x0c, 0x9a, 0xf2, 0x9a, 0x2c, 0xf9, 0x69, + 0x6a, 0xed, 0x95, 0xed, 0xba, 0x5a, 0x5b, 0x91, 0x23, 0xc1, 0xb4, 0xad, 0x5a, 0xb9, 0x59, 0x5b, + 0x91, 0xa3, 0x8a, 0x01, 0xf3, 0xa3, 0xa6, 0xc0, 0x91, 0x43, 0x28, 0xa0, 0x0b, 0x91, 0x31, 0xba, + 0x40, 0xb1, 0x06, 0x75, 0x41, 0xf9, 0x42, 0x04, 0xe6, 0x46, 0xb8, 0x01, 0x23, 0x0b, 0x79, 0x09, + 0xe2, 0x4c, 0x97, 0x99, 0x29, 0x7e, 0x7c, 0xa4, 0x3f, 0x41, 0x35, 0x7b, 0xc8, 0x39, 0xa2, 0x7c, + 0x41, 0xb7, 0x31, 0x3a, 0xc6, 0x6d, 0x24, 0x10, 0x43, 0x0a, 0xfb, 0x0d, 0x43, 0xd3, 0x35, 0xf3, + 0x68, 0x2e, 0x4f, 0xe3, 0xd1, 0xd0, 0xb4, 0xe3, 0x4d, 0xdb, 0xf1, 0x11, 0xd3, 0xf6, 0x15, 0x98, + 0x1d, 0x02, 0x9a, 0x7a, 0xfa, 0xfc, 0x90, 0x04, 0xc5, 0x71, 0xc2, 0x99, 0x60, 0x12, 0x23, 0x21, + 0x93, 0x78, 0x65, 0x50, 0x82, 0x0f, 0x8d, 0xef, 0x84, 0xa1, 0xbe, 0xfe, 0x94, 0x04, 0x27, 0x47, + 0x2f, 0x0f, 0x46, 0xd6, 0xe1, 0xbd, 0x90, 0xe8, 0x60, 0x77, 0xdf, 0x16, 0x8e, 0xf0, 0xa3, 0x23, + 0xdc, 0x2b, 0x92, 0x3d, 0xd8, 0xd9, 0x9c, 0x2b, 0xe8, 0x9f, 0x45, 0xc7, 0xf9, 0xf8, 0xac, 0x36, + 0x43, 0x35, 0xfd, 0xd6, 0x08, 0x9c, 0x18, 0x09, 0x3e, 0xb2, 0xa2, 0x0f, 0x02, 0x98, 0x56, 0xb7, + 0xef, 0x32, 0x67, 0x97, 0x59, 0xe2, 0x34, 0x4d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0xbe, 0xeb, 0xe5, + 0xb3, 0x49, 0x14, 0x58, 0x12, 0x25, 0x78, 0xc1, 0xaf, 0x68, 0x8c, 0x56, 0xf4, 0xec, 0x98, 0x96, + 0x0e, 0x29, 0xe6, 0xd3, 0x20, 0x1b, 0x6d, 0x13, 0x5b, 0xae, 0xe6, 0xb8, 0x3d, 0xac, 0x77, 0x4c, + 0x6b, 0x8f, 0xcd, 0xb3, 0xcb, 0xf1, 0x5d, 0xbd, 0xed, 0x60, 0xb5, 0xc0, 0xb2, 0x1b, 0x22, 0x97, + 0x70, 0x50, 0x05, 0xea, 0x05, 0x38, 0x12, 0x21, 0x0e, 0x96, 0xed, 0x71, 0x28, 0xdf, 0x95, 0x86, + 0x4c, 0x60, 0x31, 0x85, 0x1e, 0x82, 0xec, 0xeb, 0xfa, 0x6d, 0x5d, 0x13, 0x0b, 0x64, 0x26, 0x89, + 0x0c, 0x49, 0xdb, 0xe2, 0x8b, 0xe4, 0xa7, 0x61, 0x9e, 0x92, 0xd8, 0x7d, 0x17, 0xf7, 0x34, 0xa3, + 0xad, 0x3b, 0x0e, 0x15, 0x5a, 0x8a, 0x92, 0x22, 0x92, 0xb7, 0x49, 0xb2, 0xaa, 0x22, 0x07, 0x5d, + 0x82, 0x39, 0xca, 0xd1, 0xe9, 0xb7, 0x5d, 0xb3, 0xdb, 0xc6, 0x1a, 0x59, 0xb2, 0x3b, 0x74, 0xca, + 0xf1, 0x6a, 0x36, 0x4b, 0x28, 0xd6, 0x39, 0x01, 0xa9, 0x91, 0x83, 0x56, 0xe0, 0x41, 0xca, 0xb6, + 0x87, 0x2d, 0xdc, 0xd3, 0x5d, 0xac, 0xe1, 0x0f, 0xf4, 0xf5, 0xb6, 0xa3, 0xe9, 0x56, 0x4b, 0xdb, + 0xd7, 0x9d, 0xfd, 0xe2, 0xbc, 0xe7, 0x96, 0x9c, 0x26, 0x84, 0xd7, 0x38, 0x5d, 0x8d, 0x92, 0x95, + 0xad, 0xd6, 0xaa, 0xee, 0xec, 0xa3, 0x65, 0x38, 0x49, 0x51, 0x1c, 0xb7, 0x67, 0x5a, 0x7b, 0x9a, + 0xb1, 0x8f, 0x8d, 0x5b, 0x5a, 0xdf, 0xdd, 0x7d, 0xa1, 0x78, 0x26, 0x58, 0x3e, 0xad, 0x61, 0x83, + 0xd2, 0x54, 0x09, 0xc9, 0xb6, 0xbb, 0xfb, 0x02, 0x6a, 0x40, 0x96, 0x74, 0x46, 0xc7, 0x7c, 0x03, + 0x6b, 0xbb, 0x76, 0x8f, 0xce, 0xa1, 0xf9, 0x11, 0xa6, 0x29, 0x20, 0xc1, 0xa5, 0x4d, 0xce, 0xb0, + 0x6e, 0xb7, 0xf0, 0x72, 0xbc, 0xb1, 0x55, 0xab, 0xad, 0xa8, 0x19, 0x81, 0x72, 0xd5, 0xee, 0x11, + 0x85, 0xda, 0xb3, 0x3d, 0x01, 0x67, 0x98, 0x42, 0xed, 0xd9, 0x42, 0xbc, 0x97, 0x60, 0xce, 0x30, + 0x58, 0x9b, 0x4d, 0x43, 0xe3, 0x0b, 0x6b, 0xa7, 0x28, 0x87, 0x84, 0x65, 0x18, 0xd7, 0x18, 0x01, + 0xd7, 0x71, 0x07, 0xbd, 0x08, 0x27, 0x7c, 0x61, 0x05, 0x19, 0x67, 0x87, 0x5a, 0x39, 0xc8, 0x7a, + 0x09, 0xe6, 0xba, 0x87, 0xc3, 0x8c, 0x28, 0x54, 0x62, 0xf7, 0x70, 0x90, 0xed, 0x79, 0x98, 0xef, + 0xee, 0x77, 0x87, 0xf9, 0xce, 0x07, 0xf9, 0x50, 0x77, 0xbf, 0x3b, 0xc8, 0xf8, 0x08, 0x8d, 0xb2, + 0xf4, 0xb0, 0x41, 0xbd, 0xc3, 0x53, 0x41, 0xf2, 0x40, 0x06, 0x5a, 0x02, 0xd9, 0x30, 0x34, 0x6c, + 0xe9, 0x3b, 0x6d, 0xac, 0xe9, 0x3d, 0x6c, 0xe9, 0x4e, 0x71, 0x81, 0x12, 0xc7, 0xdc, 0x5e, 0x1f, + 0xab, 0x79, 0xc3, 0xa8, 0xd1, 0xcc, 0x32, 0xcd, 0x43, 0xe7, 0x61, 0xd6, 0xde, 0x79, 0xdd, 0x60, + 0x1a, 0xa9, 0x75, 0x7b, 0x78, 0xd7, 0x3c, 0x28, 0xbe, 0x8b, 0x8a, 0xb7, 0x40, 0x32, 0xa8, 0x3e, + 0x6e, 0xd1, 0x64, 0xf4, 0x38, 0xc8, 0x86, 0xb3, 0xaf, 0xf7, 0xba, 0xd4, 0x24, 0x3b, 0x5d, 0xdd, + 0xc0, 0xc5, 0x47, 0x18, 0x29, 0x4b, 0xdf, 0x10, 0xc9, 0x64, 0x44, 0x38, 0x77, 0xcc, 0x5d, 0x57, + 0x20, 0x3e, 0xc6, 0x46, 0x04, 0x4d, 0xe3, 0x68, 0xe7, 0x40, 0x26, 0x92, 0x08, 0x15, 0x7c, 0x8e, + 0x92, 0xe5, 0xbb, 0xfb, 0xdd, 0x60, 0xb9, 0x0f, 0x43, 0x8e, 0x50, 0xfa, 0x85, 0x3e, 0xce, 0x1c, + 0xb7, 0xee, 0x7e, 0xa0, 0xc4, 0xe7, 0xe0, 0x24, 0x21, 0xea, 0x60, 0x57, 0x6f, 0xe9, 0xae, 0x1e, + 0xa0, 0x7e, 0x92, 0x52, 0x13, 0xb1, 0xaf, 0xf3, 0xcc, 0x50, 0x3d, 0x7b, 0xfd, 0x9d, 0x43, 0x4f, + 0xb1, 0x9e, 0x62, 0xf5, 0x24, 0x69, 0x42, 0xb5, 0xde, 0xb1, 0xd5, 0x94, 0xb2, 0x0c, 0xd9, 0xa0, + 0xde, 0xa3, 0x34, 0x30, 0xcd, 0x97, 0x25, 0xe2, 0x04, 0x55, 0x37, 0x57, 0x88, 0xfb, 0xf2, 0x5a, + 0x4d, 0x8e, 0x10, 0x37, 0x6a, 0xad, 0xde, 0xac, 0x69, 0xea, 0xf6, 0x46, 0xb3, 0xbe, 0x5e, 0x93, + 0xa3, 0x01, 0xc7, 0xfe, 0x7a, 0x2c, 0xf5, 0xa8, 0xfc, 0x98, 0xf2, 0x8b, 0x51, 0xc8, 0x87, 0xd7, + 0xd6, 0xe8, 0xdd, 0x70, 0x4a, 0x84, 0xc8, 0x1c, 0xec, 0x6a, 0x77, 0xcc, 0x1e, 0x1d, 0x90, 0x1d, + 0x9d, 0x4d, 0x8e, 0x9e, 0xfe, 0xcc, 0x73, 0xaa, 0x06, 0x76, 0xdf, 0x67, 0xf6, 0xc8, 0x70, 0xeb, + 0xe8, 0x2e, 0x5a, 0x83, 0x05, 0xcb, 0xd6, 0x1c, 0x57, 0xb7, 0x5a, 0x7a, 0xaf, 0xa5, 0xf9, 0xc1, + 0x49, 0x4d, 0x37, 0x0c, 0xec, 0x38, 0x36, 0x9b, 0x08, 0x3d, 0x94, 0x07, 0x2c, 0xbb, 0xc1, 0x89, + 0xfd, 0x19, 0xa2, 0xcc, 0x49, 0x07, 0xd4, 0x37, 0x3a, 0x4e, 0x7d, 0xcf, 0x40, 0xba, 0xa3, 0x77, + 0x35, 0x6c, 0xb9, 0xbd, 0x43, 0xea, 0x9f, 0xa7, 0xd4, 0x54, 0x47, 0xef, 0xd6, 0xc8, 0x37, 0xba, + 0x01, 0x8f, 0xfa, 0xa4, 0x5a, 0x1b, 0xef, 0xe9, 0xc6, 0xa1, 0x46, 0x9d, 0x71, 0x1a, 0xe8, 0xd1, + 0x0c, 0xdb, 0xda, 0x6d, 0x9b, 0x86, 0xeb, 0x50, 0xfb, 0xc0, 0x6c, 0x9c, 0xe2, 0x73, 0xac, 0x51, + 0x86, 0xeb, 0x8e, 0x6d, 0x51, 0x1f, 0xbc, 0x2a, 0xa8, 0xdf, 0xb9, 0x1e, 0x0e, 0xf7, 0x52, 0x4c, + 0x8e, 0x5f, 0x8f, 0xa5, 0xe2, 0x72, 0xe2, 0x7a, 0x2c, 0x95, 0x90, 0x93, 0xd7, 0x63, 0xa9, 0x94, + 0x9c, 0xbe, 0x1e, 0x4b, 0xa5, 0x65, 0x50, 0xbe, 0x25, 0x0d, 0xd9, 0xe0, 0xca, 0x80, 0x2c, 0xb4, + 0x0c, 0x3a, 0x37, 0x4a, 0xd4, 0x7a, 0x3e, 0x7c, 0xe4, 0x3a, 0x62, 0xa9, 0x4a, 0x26, 0xcd, 0xe5, + 0x04, 0x73, 0xc3, 0x55, 0xc6, 0x49, 0x1c, 0x16, 0xa2, 0xd6, 0x98, 0xb9, 0x3d, 0x29, 0x95, 0x7f, + 0xa1, 0x6b, 0x90, 0x78, 0xdd, 0xa1, 0xd8, 0x09, 0x8a, 0xfd, 0xae, 0xa3, 0xb1, 0xaf, 0x37, 0x28, + 0x78, 0xfa, 0x7a, 0x43, 0xdb, 0xd8, 0x54, 0xd7, 0xcb, 0x6b, 0x2a, 0x67, 0x47, 0xa7, 0x21, 0xd6, + 0xd6, 0xdf, 0x38, 0x0c, 0x4f, 0xaf, 0x34, 0x09, 0x2d, 0x41, 0xa1, 0x6f, 0xb1, 0x55, 0x37, 0xe9, + 0x2a, 0x42, 0x55, 0x08, 0x52, 0xe5, 0xfd, 0xdc, 0x35, 0x42, 0x3f, 0xa5, 0x7a, 0x9c, 0x86, 0xd8, + 0x1d, 0xac, 0xdf, 0x0a, 0x4f, 0x82, 0x34, 0x09, 0x9d, 0x83, 0x6c, 0x0b, 0xef, 0xf4, 0xf7, 0xb4, + 0x1e, 0x6e, 0xe9, 0x86, 0x1b, 0x36, 0xfd, 0x19, 0x9a, 0xa5, 0xd2, 0x1c, 0xf4, 0x32, 0xa4, 0x49, + 0x1f, 0x59, 0xb4, 0x8f, 0x67, 0xa9, 0x08, 0x9e, 0x3a, 0x5a, 0x04, 0xbc, 0x8b, 0x05, 0x93, 0xea, + 0xf3, 0xa3, 0xeb, 0x90, 0x70, 0xf5, 0xde, 0x1e, 0x76, 0xa9, 0xe5, 0xcf, 0x8f, 0x08, 0x57, 0x8d, + 0x40, 0x6a, 0x52, 0x0e, 0x22, 0x56, 0xaa, 0xa3, 0x1c, 0x01, 0xad, 0x42, 0x92, 0xfd, 0x72, 0x8a, + 0x73, 0x8b, 0xd1, 0xe3, 0x83, 0xa9, 0x82, 0xfd, 0x1d, 0xb4, 0x59, 0x17, 0x20, 0x4e, 0x95, 0x0d, + 0x01, 0x70, 0x75, 0x93, 0x67, 0x50, 0x0a, 0x62, 0xd5, 0x4d, 0x95, 0xd8, 0x2d, 0x19, 0xb2, 0x2c, + 0x55, 0xdb, 0xaa, 0xd7, 0xaa, 0x35, 0x39, 0xa2, 0x5c, 0x82, 0x04, 0xd3, 0x20, 0x62, 0xd3, 0x3c, + 0x1d, 0x92, 0x67, 0xf8, 0x27, 0xc7, 0x90, 0x44, 0xee, 0xf6, 0x7a, 0xa5, 0xa6, 0xca, 0x11, 0x65, + 0x1b, 0x0a, 0x03, 0x52, 0x47, 0x27, 0x60, 0x56, 0xad, 0x35, 0x6b, 0x1b, 0x64, 0xd5, 0xa6, 0x6d, + 0x6f, 0xbc, 0xbc, 0xb1, 0xf9, 0xbe, 0x0d, 0x79, 0x26, 0x9c, 0x2c, 0x0c, 0xa4, 0x84, 0xe6, 0x41, + 0xf6, 0x93, 0x1b, 0x9b, 0xdb, 0x2a, 0xad, 0xcd, 0xb7, 0x47, 0x40, 0x1e, 0x14, 0x1b, 0x3a, 0x05, + 0x73, 0xcd, 0xb2, 0x7a, 0xad, 0xd6, 0xd4, 0xd8, 0x4a, 0xd4, 0x83, 0x9e, 0x07, 0x39, 0x98, 0x71, + 0xb5, 0x4e, 0x17, 0xda, 0x0b, 0x70, 0x26, 0x98, 0x5a, 0x7b, 0xb5, 0x59, 0xdb, 0x68, 0xd0, 0xc2, + 0xcb, 0x1b, 0xd7, 0x88, 0xb5, 0x1e, 0xc0, 0x13, 0x6b, 0xdf, 0x28, 0xa9, 0x6a, 0x18, 0xaf, 0xb6, + 0xb6, 0x22, 0xc7, 0x06, 0x93, 0x37, 0x37, 0x6a, 0x9b, 0x57, 0xe5, 0xf8, 0x60, 0xe9, 0x74, 0x3d, + 0x9c, 0x40, 0x25, 0x38, 0x39, 0x98, 0xaa, 0xd5, 0x36, 0x9a, 0xea, 0x4d, 0x39, 0x39, 0x58, 0x70, + 0xa3, 0xa6, 0xde, 0xa8, 0x57, 0x6b, 0x72, 0x0a, 0x9d, 0x04, 0x14, 0xae, 0x51, 0x73, 0x75, 0x73, + 0x45, 0x4e, 0x0f, 0xd9, 0x27, 0xc5, 0x81, 0x6c, 0x70, 0x51, 0xfa, 0x35, 0x31, 0x8d, 0xca, 0x47, + 0x23, 0x90, 0x09, 0x2c, 0x32, 0xc9, 0xea, 0x40, 0x6f, 0xb7, 0xed, 0x3b, 0x9a, 0xde, 0x36, 0x75, + 0x87, 0x5b, 0x2f, 0xa0, 0x49, 0x65, 0x92, 0x32, 0xad, 0xb5, 0x98, 0x7e, 0xbe, 0x48, 0xfc, 0x45, + 0x9c, 0x2f, 0xe2, 0x72, 0x42, 0xf9, 0x41, 0x09, 0xe4, 0xc1, 0xd5, 0xe3, 0x40, 0xf3, 0xa5, 0x71, + 0xcd, 0xff, 0x9a, 0xf4, 0xdd, 0xc7, 0x25, 0xc8, 0x87, 0x97, 0x8c, 0x03, 0xd5, 0x7b, 0xe8, 0xcf, + 0xb5, 0x7a, 0xbf, 0x1d, 0x81, 0x5c, 0x68, 0xa1, 0x38, 0x6d, 0xed, 0x3e, 0x00, 0xb3, 0x66, 0x0b, + 0x77, 0xba, 0xb6, 0x8b, 0x2d, 0xe3, 0x50, 0x6b, 0xe3, 0xdb, 0xb8, 0x5d, 0x54, 0xa8, 0x89, 0xbf, + 0x70, 0xf4, 0x52, 0x74, 0xa9, 0xee, 0xf3, 0xad, 0x11, 0xb6, 0xe5, 0xb9, 0xfa, 0x4a, 0x6d, 0x7d, + 0x6b, 0xb3, 0x59, 0xdb, 0xa8, 0xde, 0x14, 0xd6, 0x45, 0x95, 0xcd, 0x01, 0xb2, 0x77, 0xd0, 0x68, + 0x6f, 0x81, 0x3c, 0x58, 0x29, 0x62, 0x2b, 0x46, 0x54, 0x4b, 0x9e, 0x41, 0x73, 0x50, 0xd8, 0xd8, + 0xd4, 0x1a, 0xf5, 0x95, 0x9a, 0x56, 0xbb, 0x7a, 0xb5, 0x56, 0x6d, 0x36, 0x58, 0x70, 0xd1, 0xa3, + 0x6e, 0xca, 0x91, 0xa0, 0x88, 0x7f, 0x20, 0x0a, 0x73, 0x23, 0x6a, 0x82, 0xca, 0x3c, 0x2c, 0xc0, + 0x22, 0x15, 0x4f, 0x4d, 0x53, 0xfb, 0x25, 0xe2, 0x98, 0x6f, 0xe9, 0x3d, 0x97, 0x47, 0x11, 0x1e, + 0x07, 0x22, 0x25, 0xcb, 0x25, 0x7e, 0x42, 0x8f, 0x07, 0x6d, 0x59, 0xac, 0xa0, 0xe0, 0xa7, 0xb3, + 0xb8, 0xed, 0x93, 0x80, 0xba, 0xb6, 0x63, 0xba, 0xe6, 0x6d, 0xac, 0x99, 0x96, 0x88, 0xf0, 0xc6, + 0x16, 0xa5, 0x73, 0x31, 0x55, 0x16, 0x39, 0x75, 0xcb, 0xf5, 0xa8, 0x2d, 0xbc, 0xa7, 0x0f, 0x50, + 0x13, 0x3f, 0x26, 0xaa, 0xca, 0x22, 0xc7, 0xa3, 0x7e, 0x08, 0xb2, 0x2d, 0xbb, 0x4f, 0x16, 0x54, + 0x8c, 0x8e, 0x58, 0x0b, 0x49, 0xcd, 0xb0, 0x34, 0x8f, 0x84, 0x2f, 0x95, 0xfd, 0xd0, 0x72, 0x56, + 0xcd, 0xb0, 0x34, 0x46, 0xf2, 0x18, 0x14, 0xf4, 0xbd, 0xbd, 0x1e, 0x01, 0x17, 0x40, 0x6c, 0xf1, + 0x9f, 0xf7, 0x92, 0x29, 0x61, 0xe9, 0x3a, 0xa4, 0x84, 0x1c, 0x88, 0x3f, 0x4c, 0x24, 0xa1, 0x75, + 0x59, 0x44, 0x2b, 0x72, 0x2e, 0xad, 0xa6, 0x2c, 0x91, 0xf9, 0x10, 0x64, 0x4d, 0x47, 0xf3, 0xf7, + 0x36, 0x23, 0x8b, 0x91, 0x73, 0x29, 0x35, 0x63, 0x3a, 0xde, 0x1e, 0x89, 0xf2, 0xa9, 0x08, 0xe4, + 0xc3, 0xbb, 0xb6, 0x68, 0x05, 0x52, 0x6d, 0x9b, 0x6f, 0xb2, 0xb0, 0x23, 0x03, 0xe7, 0x26, 0x6c, + 0xf4, 0x2e, 0xad, 0x71, 0x7a, 0xd5, 0xe3, 0x2c, 0xfd, 0x5b, 0x09, 0x52, 0x22, 0x19, 0x9d, 0x84, + 0x58, 0x57, 0x77, 0xf7, 0x29, 0x5c, 0xbc, 0x12, 0x91, 0x25, 0x95, 0x7e, 0x93, 0x74, 0xa7, 0xab, + 0xb3, 0x7d, 0x22, 0x9e, 0x4e, 0xbe, 0x49, 0xbf, 0xb6, 0xb1, 0xde, 0xa2, 0x91, 0x05, 0xbb, 0xd3, + 0xc1, 0x96, 0xeb, 0x88, 0x7e, 0xe5, 0xe9, 0x55, 0x9e, 0x8c, 0x9e, 0x80, 0x59, 0xb7, 0xa7, 0x9b, + 0xed, 0x10, 0x6d, 0x8c, 0xd2, 0xca, 0x22, 0xc3, 0x23, 0x5e, 0x86, 0xd3, 0x02, 0xb7, 0x85, 0x5d, + 0xdd, 0xd8, 0xc7, 0x2d, 0x9f, 0x29, 0x41, 0x23, 0x88, 0xa7, 0x38, 0xc1, 0x0a, 0xcf, 0x17, 0xbc, + 0xca, 0xe7, 0x22, 0x30, 0x2b, 0x62, 0x21, 0x2d, 0x4f, 0x58, 0xeb, 0x00, 0xba, 0x65, 0xd9, 0x6e, + 0x50, 0x5c, 0xc3, 0xaa, 0x3c, 0xc4, 0xb7, 0x54, 0xf6, 0x98, 0xd4, 0x00, 0x40, 0xe9, 0xf7, 0x25, + 0x00, 0x3f, 0x6b, 0xac, 0xdc, 0x16, 0x20, 0xc3, 0xf7, 0xe4, 0xe9, 0xc1, 0x0e, 0x16, 0x3e, 0x03, + 0x96, 0x74, 0xd5, 0x6c, 0xd3, 0x20, 0xe7, 0x0e, 0xde, 0x33, 0x2d, 0xbe, 0x3b, 0xc3, 0x3e, 0x44, + 0x90, 0x33, 0xe6, 0x6f, 0x4f, 0xaa, 0x90, 0x72, 0x70, 0x47, 0xb7, 0x5c, 0xd3, 0xe0, 0xfb, 0x2d, + 0x97, 0x8f, 0x55, 0xf9, 0xa5, 0x06, 0xe7, 0x56, 0x3d, 0x1c, 0xe5, 0x1c, 0xa4, 0x44, 0x2a, 0x71, + 0xfc, 0x36, 0x36, 0x37, 0x6a, 0xf2, 0x0c, 0x4a, 0x42, 0xb4, 0x51, 0x6b, 0xca, 0x12, 0x59, 0xc4, + 0x96, 0xd7, 0xea, 0xe5, 0x86, 0x1c, 0xa9, 0xfc, 0x75, 0x98, 0x33, 0xec, 0xce, 0x60, 0x81, 0x15, + 0x79, 0x20, 0x80, 0xe8, 0xac, 0x4a, 0xaf, 0x3d, 0xc5, 0x89, 0xf6, 0xec, 0xb6, 0x6e, 0xed, 0x2d, + 0xd9, 0xbd, 0x3d, 0xff, 0x58, 0x0c, 0x59, 0x6b, 0x38, 0x81, 0xc3, 0x31, 0xdd, 0x9d, 0x3f, 0x93, + 0xa4, 0x1f, 0x8e, 0x44, 0xaf, 0x6d, 0x55, 0x7e, 0x22, 0x52, 0xba, 0xc6, 0x18, 0xb7, 0x44, 0x73, + 0x54, 0xbc, 0xdb, 0xc6, 0x06, 0xa9, 0x3c, 0xfc, 0xc1, 0x13, 0x30, 0xbf, 0x67, 0xef, 0xd9, 0x14, + 0xe9, 0x02, 0xf9, 0xc5, 0xcf, 0xd5, 0xa4, 0xbd, 0xd4, 0xd2, 0xc4, 0x43, 0x38, 0xcb, 0x1b, 0x30, + 0xc7, 0x89, 0x35, 0xba, 0x7d, 0xcf, 0x42, 0x15, 0xe8, 0xc8, 0x38, 0x79, 0xf1, 0xa7, 0x7f, 0x97, + 0x7a, 0x25, 0xea, 0x2c, 0x67, 0x25, 0x79, 0x2c, 0x9a, 0xb1, 0xac, 0xc2, 0x89, 0x10, 0x1e, 0xb3, + 0x11, 0xb8, 0x37, 0x01, 0xf1, 0x5f, 0x70, 0xc4, 0xb9, 0x00, 0x62, 0x83, 0xb3, 0x2e, 0x57, 0x21, + 0x77, 0x1c, 0xac, 0x7f, 0xc9, 0xb1, 0xb2, 0x38, 0x08, 0x72, 0x0d, 0x0a, 0x14, 0xc4, 0xe8, 0x3b, + 0xae, 0xdd, 0xa1, 0x06, 0xf8, 0x68, 0x98, 0x7f, 0xf5, 0xbb, 0x6c, 0xd0, 0xe6, 0x09, 0x5b, 0xd5, + 0xe3, 0x5a, 0x5e, 0x06, 0x7a, 0x62, 0xa1, 0x85, 0x8d, 0xf6, 0x04, 0x84, 0x5f, 0xe5, 0x15, 0xf1, + 0xe8, 0x97, 0x6f, 0xc0, 0x3c, 0xf9, 0x4d, 0xed, 0x63, 0xb0, 0x26, 0x93, 0x83, 0xea, 0xc5, 0x7f, + 0xf7, 0x21, 0x66, 0x17, 0xe6, 0x3c, 0x80, 0x40, 0x9d, 0x02, 0xbd, 0xb8, 0x87, 0x5d, 0x17, 0xf7, + 0x1c, 0x4d, 0x6f, 0x8f, 0xaa, 0x5e, 0x20, 0x2a, 0x59, 0xfc, 0xfe, 0x2f, 0x87, 0x7b, 0xf1, 0x1a, + 0xe3, 0x2c, 0xb7, 0xdb, 0xcb, 0xdb, 0x70, 0x6a, 0x84, 0x56, 0x4c, 0x81, 0xf9, 0x03, 0x1c, 0x73, + 0x7e, 0x48, 0x33, 0x08, 0xec, 0x16, 0x88, 0x74, 0xaf, 0x2f, 0xa7, 0xc0, 0xfc, 0x18, 0xc7, 0x44, + 0x9c, 0x57, 0x74, 0x29, 0x41, 0xbc, 0x0e, 0xb3, 0xb7, 0x71, 0x6f, 0xc7, 0x76, 0x78, 0x24, 0x78, + 0x0a, 0xb8, 0x8f, 0x73, 0xb8, 0x02, 0x67, 0xa4, 0xa1, 0x61, 0x82, 0xf5, 0x22, 0xa4, 0x76, 0x75, + 0x03, 0x4f, 0x01, 0x71, 0x8f, 0x43, 0x24, 0x09, 0x3d, 0x61, 0x2d, 0x43, 0x76, 0xcf, 0xe6, 0x53, + 0xe4, 0x64, 0xf6, 0x1f, 0xe4, 0xec, 0x19, 0xc1, 0xc3, 0x21, 0xba, 0x76, 0xb7, 0xdf, 0x26, 0xf3, + 0xe7, 0x64, 0x88, 0x1f, 0x12, 0x10, 0x82, 0x87, 0x43, 0x1c, 0x43, 0xac, 0x9f, 0x10, 0x10, 0x4e, + 0x40, 0x9e, 0x2f, 0x41, 0xc6, 0xb6, 0xda, 0x87, 0xb6, 0x35, 0x4d, 0x25, 0x3e, 0xc9, 0x11, 0x80, + 0xb3, 0x10, 0x80, 0x2b, 0x90, 0x9e, 0xb6, 0x23, 0x7e, 0xf4, 0xcb, 0x62, 0x78, 0x88, 0x1e, 0xb8, + 0x06, 0x05, 0x61, 0xa0, 0x4c, 0xdb, 0x9a, 0x02, 0xe2, 0xc7, 0x38, 0x44, 0x3e, 0xc0, 0xc6, 0x9b, + 0xe1, 0x62, 0xc7, 0xdd, 0xc3, 0xd3, 0x80, 0x7c, 0x4a, 0x34, 0x83, 0xb3, 0x70, 0x51, 0xee, 0x60, + 0xcb, 0xd8, 0x9f, 0x0e, 0xe1, 0xd3, 0x42, 0x94, 0x82, 0x87, 0x40, 0x54, 0x21, 0xd7, 0xd1, 0x7b, + 0xce, 0xbe, 0xde, 0x9e, 0xaa, 0x3b, 0x7e, 0x9c, 0x63, 0x64, 0x3d, 0x26, 0x2e, 0x91, 0xbe, 0x75, + 0x1c, 0x98, 0x9f, 0x10, 0x12, 0x09, 0xb0, 0xf1, 0xa1, 0xe7, 0xb8, 0x34, 0x6c, 0x7e, 0x1c, 0xb4, + 0xbf, 0x27, 0x86, 0x1e, 0xe3, 0x5d, 0x0f, 0x22, 0x5e, 0x81, 0xb4, 0x63, 0xbe, 0x31, 0x15, 0xcc, + 0xdf, 0x17, 0x3d, 0x4d, 0x19, 0x08, 0xf3, 0x4d, 0x38, 0x3d, 0x72, 0x9a, 0x98, 0x02, 0xec, 0x27, + 0x39, 0xd8, 0xc9, 0x11, 0x53, 0x05, 0x37, 0x09, 0xc7, 0x85, 0xfc, 0x07, 0xc2, 0x24, 0xe0, 0x01, + 0xac, 0x2d, 0xb2, 0x68, 0x71, 0xf4, 0xdd, 0xe3, 0x49, 0xed, 0x1f, 0x0a, 0xa9, 0x31, 0xde, 0x90, + 0xd4, 0x9a, 0x70, 0x92, 0x23, 0x1e, 0xaf, 0x5f, 0x7f, 0x4a, 0x18, 0x56, 0xc6, 0xbd, 0x1d, 0xee, + 0xdd, 0xaf, 0x83, 0x92, 0x27, 0x4e, 0xe1, 0x1d, 0x3b, 0x5a, 0x47, 0xef, 0x4e, 0x81, 0xfc, 0xd3, + 0x1c, 0x59, 0x58, 0x7c, 0xcf, 0xbd, 0x76, 0xd6, 0xf5, 0x2e, 0x01, 0x7f, 0x15, 0x8a, 0x02, 0xbc, + 0x6f, 0xf5, 0xb0, 0x61, 0xef, 0x59, 0xe6, 0x1b, 0xb8, 0x35, 0x05, 0xf4, 0xcf, 0x0c, 0x74, 0xd5, + 0x76, 0x80, 0x9d, 0x20, 0xd7, 0x41, 0xf6, 0x7c, 0x15, 0xcd, 0xec, 0x74, 0xed, 0x9e, 0x3b, 0x01, + 0xf1, 0x33, 0xa2, 0xa7, 0x3c, 0xbe, 0x3a, 0x65, 0x5b, 0xae, 0x01, 0x3b, 0x4b, 0x32, 0xad, 0x4a, + 0x7e, 0x96, 0x03, 0xe5, 0x7c, 0x2e, 0x6e, 0x38, 0x0c, 0xbb, 0xd3, 0xd5, 0x7b, 0xd3, 0xd8, 0xbf, + 0x7f, 0x24, 0x0c, 0x07, 0x67, 0xe1, 0x86, 0x83, 0x78, 0x74, 0x64, 0xb6, 0x9f, 0x02, 0xe1, 0x67, + 0x85, 0xe1, 0x10, 0x3c, 0x1c, 0x42, 0x38, 0x0c, 0x53, 0x40, 0xfc, 0x9c, 0x80, 0x10, 0x3c, 0x04, + 0xe2, 0x15, 0x7f, 0xa2, 0xed, 0xe1, 0x3d, 0xd3, 0x71, 0xf9, 0x61, 0xb0, 0xa3, 0xa1, 0x7e, 0xfe, + 0xcb, 0x61, 0x27, 0x4c, 0x0d, 0xb0, 0x12, 0x4b, 0xc4, 0x37, 0x52, 0xe8, 0x92, 0x6d, 0x72, 0xc5, + 0x7e, 0x41, 0x58, 0xa2, 0x00, 0x1b, 0xa9, 0x5b, 0xc0, 0x43, 0x24, 0x62, 0x37, 0xc8, 0x42, 0x65, + 0x0a, 0xb8, 0x7f, 0x3c, 0x50, 0xb9, 0x86, 0xe0, 0x25, 0x98, 0x01, 0xff, 0xa7, 0x6f, 0xdd, 0xc2, + 0x87, 0x53, 0x69, 0xe7, 0x2f, 0x0e, 0xf8, 0x3f, 0xdb, 0x8c, 0x93, 0xd9, 0x90, 0xc2, 0x80, 0x3f, + 0x85, 0x26, 0x9d, 0xf5, 0x2c, 0x7e, 0xd3, 0x57, 0x78, 0x7b, 0xc3, 0xee, 0xd4, 0xf2, 0x1a, 0x51, + 0xf2, 0xb0, 0xd3, 0x33, 0x19, 0xec, 0x43, 0x5f, 0xf1, 0xf4, 0x3c, 0xe4, 0xf3, 0x2c, 0x5f, 0x85, + 0x5c, 0xc8, 0xe1, 0x99, 0x0c, 0xf5, 0xcd, 0x1c, 0x2a, 0x1b, 0xf4, 0x77, 0x96, 0x2f, 0x41, 0x8c, + 0x38, 0x2f, 0x93, 0xd9, 0xbf, 0x85, 0xb3, 0x53, 0xf2, 0xe5, 0xf7, 0x40, 0x4a, 0x38, 0x2d, 0x93, + 0x59, 0xff, 0x26, 0x67, 0xf5, 0x58, 0x08, 0xbb, 0x70, 0x58, 0x26, 0xb3, 0xff, 0x2d, 0xc1, 0x2e, + 0x58, 0x08, 0xfb, 0xf4, 0x22, 0xfc, 0xe5, 0x6f, 0x8b, 0xf1, 0x49, 0x47, 0xc8, 0xee, 0x0a, 0x24, + 0xb9, 0xa7, 0x32, 0x99, 0xfb, 0x5b, 0x79, 0xe1, 0x82, 0x63, 0xf9, 0x79, 0x88, 0x4f, 0x29, 0xf0, + 0xef, 0xe0, 0xac, 0x8c, 0x7e, 0xb9, 0x0a, 0x99, 0x80, 0x77, 0x32, 0x99, 0xfd, 0x3b, 0x39, 0x7b, + 0x90, 0x8b, 0x54, 0x9d, 0x7b, 0x27, 0x93, 0x01, 0xfe, 0xb6, 0xa8, 0x3a, 0xe7, 0x20, 0x62, 0x13, + 0x8e, 0xc9, 0x64, 0xee, 0x8f, 0x08, 0xa9, 0x0b, 0x96, 0xe5, 0x97, 0x20, 0xed, 0x4d, 0x36, 0x93, + 0xf9, 0xbf, 0x8b, 0xf3, 0xfb, 0x3c, 0x44, 0x02, 0x81, 0xc9, 0x6e, 0x32, 0xc4, 0xdf, 0x11, 0x12, + 0x08, 0x70, 0x91, 0x61, 0x34, 0xe8, 0xc0, 0x4c, 0x46, 0xfa, 0x6e, 0x31, 0x8c, 0x06, 0xfc, 0x17, + 0xd2, 0x9b, 0xd4, 0xe6, 0x4f, 0x86, 0xf8, 0x1e, 0xd1, 0x9b, 0x94, 0x9e, 0x54, 0x63, 0xd0, 0x23, + 0x98, 0x8c, 0xf1, 0x7d, 0xa2, 0x1a, 0x03, 0x0e, 0xc1, 0xf2, 0x16, 0xa0, 0x61, 0x6f, 0x60, 0x32, + 0xde, 0x47, 0x39, 0xde, 0xec, 0x90, 0x33, 0xb0, 0xfc, 0x3e, 0x38, 0x39, 0xda, 0x13, 0x98, 0x8c, + 0xfa, 0xfd, 0x5f, 0x19, 0x58, 0xbb, 0x05, 0x1d, 0x81, 0xe5, 0xa6, 0x3f, 0xa5, 0x04, 0xbd, 0x80, + 0xc9, 0xb0, 0x3f, 0xf0, 0x95, 0xb0, 0xe1, 0x0e, 0x3a, 0x01, 0xcb, 0x65, 0x00, 0x7f, 0x02, 0x9e, + 0x8c, 0xf5, 0x71, 0x8e, 0x15, 0x60, 0x22, 0x43, 0x83, 0xcf, 0xbf, 0x93, 0xf9, 0xef, 0x89, 0xa1, + 0xc1, 0x39, 0xc8, 0xd0, 0x10, 0x53, 0xef, 0x64, 0xee, 0x1f, 0x14, 0x43, 0x43, 0xb0, 0x10, 0xcd, + 0x0e, 0xcc, 0x6e, 0x93, 0x11, 0x3e, 0x29, 0x34, 0x3b, 0xc0, 0xb5, 0xbc, 0x01, 0xb3, 0x43, 0x13, + 0xe2, 0x64, 0xa8, 0x1f, 0xe6, 0x50, 0xf2, 0xe0, 0x7c, 0x18, 0x9c, 0xbc, 0xf8, 0x64, 0x38, 0x19, + 0xed, 0x47, 0x06, 0x26, 0x2f, 0x3e, 0x17, 0x2e, 0x5f, 0x81, 0x94, 0xd5, 0x6f, 0xb7, 0xc9, 0xe0, + 0x41, 0x47, 0x9f, 0xf6, 0x2d, 0xfe, 0xd7, 0xaf, 0x72, 0xe9, 0x08, 0x86, 0xe5, 0x4b, 0x10, 0xc7, + 0x9d, 0x1d, 0xdc, 0x9a, 0xc4, 0xf9, 0xa5, 0xaf, 0x0a, 0x83, 0x49, 0xa8, 0x97, 0x5f, 0x02, 0x60, + 0xa1, 0x11, 0xba, 0x0d, 0x3f, 0x81, 0xf7, 0xf7, 0xbf, 0xca, 0x8f, 0xd7, 0xf9, 0x2c, 0x3e, 0x00, + 0x3b, 0xac, 0x77, 0x34, 0xc0, 0x97, 0xc3, 0x00, 0xb4, 0x47, 0x5e, 0x84, 0xe4, 0xeb, 0x8e, 0x6d, + 0xb9, 0xfa, 0xde, 0x24, 0xee, 0x3f, 0xe0, 0xdc, 0x82, 0x9e, 0x08, 0xac, 0x63, 0xf7, 0xb0, 0xab, + 0xef, 0x39, 0x93, 0x78, 0xff, 0x1b, 0xe7, 0xf5, 0x18, 0x08, 0xb3, 0xa1, 0x3b, 0xee, 0x34, 0xed, + 0xfe, 0xef, 0x82, 0x59, 0x30, 0x90, 0x4a, 0x93, 0xdf, 0xb7, 0xf0, 0xe1, 0x24, 0xde, 0x3f, 0x14, + 0x95, 0xe6, 0xf4, 0xcb, 0xef, 0x81, 0x34, 0xf9, 0xc9, 0xce, 0xcc, 0x4e, 0x60, 0xfe, 0x23, 0xce, + 0xec, 0x73, 0x90, 0x92, 0x1d, 0xb7, 0xe5, 0x9a, 0x93, 0x85, 0xfd, 0xc7, 0xbc, 0xa7, 0x05, 0xfd, + 0x72, 0x19, 0x32, 0x8e, 0xdb, 0x6a, 0xf5, 0xb9, 0x7f, 0x3a, 0x81, 0xfd, 0x4f, 0xbe, 0xea, 0x85, + 0x2c, 0x3c, 0x1e, 0xd2, 0xdb, 0x77, 0x6e, 0xb9, 0x5d, 0x9b, 0xee, 0xb7, 0x4c, 0x42, 0xf8, 0x0a, + 0x47, 0x08, 0xb0, 0x2c, 0x57, 0x21, 0x4b, 0xda, 0x22, 0xee, 0x22, 0x4c, 0x82, 0xf8, 0x53, 0x2e, + 0x80, 0x10, 0x53, 0xe5, 0x1b, 0x7f, 0xf5, 0xf3, 0x67, 0xa5, 0xcf, 0x7d, 0xfe, 0xac, 0xf4, 0xdb, + 0x9f, 0x3f, 0x2b, 0x7d, 0xe4, 0x0b, 0x67, 0x67, 0x3e, 0xf7, 0x85, 0xb3, 0x33, 0xbf, 0xf9, 0x85, + 0xb3, 0x33, 0xa3, 0xa3, 0xc4, 0x70, 0xcd, 0xbe, 0x66, 0xb3, 0xf8, 0xf0, 0x6b, 0x8f, 0xec, 0x99, + 0xee, 0x7e, 0x7f, 0x67, 0xc9, 0xb0, 0x3b, 0x17, 0x0c, 0xdb, 0xe9, 0xd8, 0xce, 0x85, 0x70, 0x5c, + 0x97, 0xfe, 0x82, 0xff, 0x2d, 0x91, 0x35, 0x73, 0x38, 0x9c, 0xab, 0x5b, 0x87, 0xe3, 0x2e, 0x53, + 0x5e, 0x86, 0x68, 0xd9, 0x3a, 0x44, 0xa7, 0x99, 0x81, 0xd3, 0xfa, 0xbd, 0x36, 0x3f, 0xb8, 0x99, + 0x24, 0xdf, 0xdb, 0xbd, 0x36, 0x9a, 0xf7, 0x4f, 0x57, 0x4b, 0xe7, 0xb2, 0xfc, 0xc8, 0x74, 0xe5, + 0x3b, 0xa5, 0xe3, 0xb5, 0x24, 0x55, 0xb6, 0x0e, 0x69, 0x43, 0xb6, 0xa4, 0xd7, 0x9e, 0x9c, 0x18, + 0xe7, 0xbe, 0x65, 0xd9, 0x77, 0x2c, 0x52, 0xed, 0xee, 0x8e, 0x88, 0x71, 0x9f, 0x1d, 0x8c, 0x71, + 0xbf, 0x0f, 0xb7, 0xdb, 0x2f, 0x13, 0xba, 0x26, 0x61, 0xd9, 0x49, 0xb0, 0x3b, 0x02, 0xf0, 0xdd, + 0x11, 0x38, 0x3b, 0x14, 0xce, 0xe6, 0x4a, 0x30, 0x4e, 0x08, 0xcb, 0x90, 0x5a, 0x11, 0xba, 0x55, + 0x84, 0xa4, 0x83, 0x0d, 0xdb, 0x6a, 0x39, 0x54, 0x10, 0x51, 0x55, 0x7c, 0x12, 0x41, 0x58, 0xba, + 0x65, 0x3b, 0xfc, 0xe8, 0x33, 0xfb, 0xa8, 0x7c, 0xec, 0x98, 0x82, 0xc8, 0x89, 0x92, 0x84, 0x34, + 0x9e, 0x99, 0x52, 0x1a, 0xa2, 0x11, 0xa1, 0xc8, 0xff, 0xb4, 0x52, 0xf9, 0xbe, 0x08, 0x2c, 0x0c, + 0x4a, 0x85, 0x8c, 0x2c, 0xc7, 0xd5, 0x3b, 0xdd, 0x71, 0x62, 0xb9, 0x02, 0xe9, 0xa6, 0xa0, 0x39, + 0xb6, 0x5c, 0xee, 0x1d, 0x53, 0x2e, 0x79, 0xaf, 0x28, 0x21, 0x98, 0x8b, 0x53, 0x0a, 0xc6, 0x6b, + 0xc7, 0x7d, 0x49, 0xe6, 0x7f, 0x25, 0xe0, 0x34, 0x1b, 0x4e, 0x1a, 0x1b, 0x4a, 0xec, 0x83, 0xcb, + 0x24, 0x1b, 0xcc, 0x9a, 0xbc, 0x4f, 0xa2, 0xbc, 0x0c, 0x73, 0x75, 0x62, 0x2d, 0xc8, 0x2a, 0xc8, + 0xdf, 0xe1, 0x19, 0x79, 0x3a, 0x7c, 0x31, 0xe4, 0xf0, 0xf3, 0xfd, 0xad, 0x60, 0x92, 0xf2, 0x4d, + 0x12, 0xc8, 0x0d, 0x43, 0x6f, 0xeb, 0xbd, 0xb7, 0x0a, 0x85, 0x9e, 0x07, 0x60, 0xc7, 0x3d, 0xbc, + 0x8b, 0x9b, 0xf9, 0x8b, 0xc5, 0xa5, 0x60, 0xe3, 0x96, 0x58, 0x49, 0xf4, 0x08, 0x55, 0x9a, 0xd2, + 0x92, 0x9f, 0xe7, 0x5f, 0x05, 0xf0, 0x33, 0xd0, 0x19, 0x38, 0xd5, 0xa8, 0x96, 0xd7, 0xca, 0xaa, + 0x38, 0x24, 0xd4, 0xd8, 0xaa, 0x55, 0xd9, 0x35, 0xab, 0x19, 0x74, 0x12, 0x50, 0x30, 0xd3, 0x3b, + 0xd4, 0x74, 0x02, 0x66, 0x83, 0xe9, 0xec, 0xce, 0x4b, 0x84, 0x78, 0x8a, 0x66, 0xa7, 0xdb, 0xc6, + 0x74, 0xe7, 0x51, 0x33, 0x85, 0xd4, 0x26, 0x3b, 0x21, 0xbf, 0xf6, 0xef, 0xd9, 0x3d, 0x88, 0x39, + 0x9f, 0xdd, 0x93, 0xf9, 0xf2, 0x1a, 0xcc, 0xea, 0x86, 0x81, 0xbb, 0x21, 0xc8, 0x09, 0xa6, 0x9a, + 0x00, 0xd2, 0xbd, 0x54, 0xce, 0xe9, 0xa3, 0x3d, 0x0f, 0x09, 0x87, 0xb6, 0x7e, 0x12, 0xc4, 0xaf, + 0x73, 0x08, 0x4e, 0xbe, 0x6c, 0xc1, 0x2c, 0xbb, 0xd7, 0x87, 0x03, 0xd5, 0x38, 0x3a, 0xce, 0xf0, + 0x4f, 0x3e, 0xf3, 0x34, 0xdd, 0x59, 0x7d, 0x28, 0xdc, 0x2d, 0x23, 0xd4, 0x49, 0x95, 0x39, 0xb6, + 0x5f, 0x51, 0x0c, 0x79, 0x51, 0x1e, 0xaf, 0xf0, 0xd1, 0x85, 0xfd, 0x12, 0x2f, 0xec, 0xec, 0x28, + 0x1d, 0x08, 0x94, 0x94, 0xe3, 0xa8, 0x2c, 0xa3, 0x52, 0x1b, 0x37, 0xa6, 0x5f, 0x7b, 0x62, 0x78, + 0x76, 0x62, 0xff, 0x3d, 0x45, 0x91, 0xaf, 0x04, 0x8b, 0xf1, 0xc6, 0xde, 0xc7, 0x62, 0x30, 0xab, + 0x77, 0x4c, 0xcb, 0xbe, 0x40, 0xff, 0xe5, 0x63, 0x2e, 0x4e, 0x3f, 0xa6, 0xd8, 0x94, 0xbc, 0xcc, + 0x86, 0xc2, 0x64, 0x8d, 0xf9, 0xa3, 0x6f, 0xff, 0xb1, 0xb8, 0x3f, 0x5c, 0x96, 0xd7, 0x41, 0x16, + 0x47, 0x82, 0xb1, 0x65, 0xd8, 0xad, 0xa9, 0xa2, 0x14, 0x7f, 0x2c, 0x30, 0x44, 0x7c, 0xab, 0xc6, + 0x59, 0x97, 0xdf, 0x0d, 0x29, 0x0f, 0x66, 0x92, 0x67, 0x22, 0x40, 0x3c, 0x0e, 0xe2, 0x97, 0xb0, + 0x91, 0x39, 0x8d, 0x17, 0xfa, 0x15, 0xc1, 0xcf, 0x46, 0xe8, 0x06, 0x69, 0xcd, 0x35, 0xc8, 0xb7, + 0x6c, 0xcb, 0xd5, 0xec, 0x8e, 0xe9, 0xe2, 0x4e, 0xd7, 0x9d, 0xe8, 0xd7, 0xfd, 0x29, 0x03, 0x49, + 0xa9, 0x39, 0xc2, 0xb7, 0x29, 0xd8, 0x48, 0x4d, 0xd8, 0xad, 0xbf, 0x69, 0x6a, 0xf2, 0x3f, 0xbc, + 0x9a, 0x50, 0x1e, 0x52, 0x93, 0xfb, 0xd2, 0x0e, 0xa7, 0x75, 0x8b, 0x1b, 0x73, 0xf7, 0x80, 0x69, + 0x81, 0xa7, 0x1d, 0x9f, 0x8a, 0xc2, 0x59, 0x4e, 0xbc, 0xa3, 0x3b, 0xf8, 0xc2, 0xed, 0x67, 0x76, + 0xb0, 0xab, 0x3f, 0x73, 0xc1, 0xb0, 0x4d, 0x31, 0x93, 0xcf, 0x71, 0x63, 0x4d, 0xf2, 0x97, 0x78, + 0x7e, 0x69, 0xe4, 0x76, 0x77, 0x69, 0xbc, 0x91, 0x2f, 0x0d, 0xeb, 0xa0, 0xd2, 0x86, 0x58, 0xd5, + 0x36, 0x2d, 0x32, 0xb7, 0xb5, 0xb0, 0x65, 0x77, 0xb8, 0xb9, 0x65, 0x1f, 0x68, 0x15, 0x12, 0x7a, + 0xc7, 0xee, 0x5b, 0x2e, 0x33, 0xb5, 0x95, 0xa7, 0x7f, 0xf5, 0xcd, 0x85, 0x99, 0xff, 0xf4, 0xe6, + 0xc2, 0x09, 0x06, 0xeb, 0xb4, 0x6e, 0x2d, 0x99, 0xf6, 0x85, 0x8e, 0xee, 0xee, 0x93, 0xe1, 0xfb, + 0x1b, 0x9f, 0x7d, 0x0a, 0x78, 0x79, 0x75, 0xcb, 0xfd, 0xf4, 0xef, 0xfd, 0xd4, 0x79, 0x49, 0xe5, + 0xfc, 0xcb, 0xb1, 0x2f, 0x7e, 0x62, 0x41, 0x52, 0xba, 0x90, 0x5c, 0xc1, 0xc6, 0x11, 0x05, 0xd6, + 0x07, 0x0a, 0x7c, 0x86, 0x17, 0x78, 0x66, 0xb8, 0x40, 0x76, 0x60, 0x6f, 0x05, 0x1b, 0x81, 0x62, + 0x57, 0xb0, 0x11, 0x2e, 0xb1, 0xb2, 0xf2, 0x9b, 0xbf, 0x73, 0x76, 0xe6, 0x83, 0x9f, 0x3f, 0x3b, + 0x33, 0xb6, 0xcb, 0x94, 0xc9, 0x5d, 0xe6, 0xf5, 0xd4, 0x8f, 0xc5, 0xe0, 0x41, 0x7a, 0xbf, 0xb4, + 0xd7, 0x31, 0x2d, 0xf7, 0x82, 0xd1, 0x3b, 0xec, 0xba, 0x36, 0x19, 0xb8, 0xf6, 0x2e, 0xef, 0xa8, + 0x59, 0x3f, 0x7b, 0x89, 0x65, 0x8f, 0xee, 0x26, 0x65, 0x17, 0xe2, 0x5b, 0x84, 0x8f, 0x08, 0xc2, + 0xb5, 0x5d, 0xbd, 0xcd, 0xbd, 0x0d, 0xf6, 0x41, 0x52, 0xd9, 0x9d, 0xd4, 0x08, 0x4b, 0x35, 0xc5, + 0x75, 0xd4, 0x36, 0xd6, 0x77, 0xd9, 0xd5, 0x9e, 0x28, 0x75, 0x53, 0x53, 0x24, 0x81, 0xde, 0xe2, + 0x99, 0x87, 0xb8, 0xde, 0x67, 0x07, 0x66, 0xa2, 0xc4, 0x7f, 0xa5, 0x1f, 0xca, 0xcb, 0x90, 0xe4, + 0xfb, 0xe6, 0x48, 0x86, 0xe8, 0x2d, 0x7c, 0x48, 0xcb, 0xc9, 0xaa, 0xe4, 0x27, 0x5a, 0x82, 0x38, + 0xad, 0x3c, 0xbf, 0xb3, 0x58, 0x5c, 0x1a, 0xaa, 0xfd, 0x12, 0xad, 0xa4, 0xca, 0xc8, 0x94, 0xeb, + 0x90, 0x5a, 0xb1, 0x89, 0xf6, 0x84, 0xd1, 0xd2, 0x0c, 0x8d, 0xd6, 0xb9, 0xdb, 0xe7, 0x7d, 0xa7, + 0xb2, 0x0f, 0x74, 0x12, 0x12, 0xec, 0xaa, 0x17, 0x3f, 0xf4, 0xc3, 0xbf, 0x94, 0x2a, 0x24, 0x29, + 0xf6, 0x66, 0xd7, 0xbb, 0x5e, 0x2d, 0x05, 0xae, 0x57, 0x73, 0xf8, 0x88, 0x5f, 0x59, 0x04, 0xb1, + 0x96, 0xee, 0xea, 0xbc, 0xdd, 0xf4, 0xb7, 0xf2, 0x5e, 0x48, 0x71, 0x10, 0x07, 0x5d, 0x84, 0xa8, + 0xdd, 0x75, 0xf8, 0xb1, 0x9d, 0xd2, 0xb8, 0xa6, 0x6c, 0x76, 0x2b, 0x31, 0xa2, 0x54, 0x2a, 0x21, + 0xae, 0x6c, 0x8c, 0x55, 0x8b, 0xe7, 0x42, 0x6a, 0xd1, 0xc1, 0xee, 0xce, 0xae, 0xeb, 0xff, 0x60, + 0xdd, 0x39, 0xa4, 0x0a, 0x9e, 0xa2, 0xdc, 0x8b, 0xc0, 0xd9, 0x40, 0xee, 0x6d, 0xdc, 0x73, 0x4c, + 0xdb, 0x62, 0xda, 0xc4, 0x35, 0x05, 0x05, 0x2a, 0xc8, 0xf3, 0xc7, 0xa8, 0xca, 0x7b, 0x20, 0x5a, + 0xee, 0x76, 0x51, 0x09, 0x52, 0xf4, 0xdb, 0xb0, 0x99, 0xae, 0xc4, 0x54, 0xef, 0x9b, 0xe4, 0x39, + 0xf6, 0xae, 0x7b, 0x47, 0xef, 0x79, 0x37, 0xa1, 0xc5, 0xb7, 0xf2, 0x22, 0xa4, 0xab, 0xb6, 0xe5, + 0x60, 0xcb, 0xe9, 0x53, 0x1f, 0x76, 0xa7, 0x6d, 0x1b, 0xb7, 0x38, 0x02, 0xfb, 0x20, 0xc2, 0xd6, + 0xbb, 0x5d, 0xca, 0x19, 0x53, 0xc9, 0x4f, 0x3e, 0x7a, 0x36, 0xc7, 0x8a, 0xe7, 0xd2, 0xf1, 0xc4, + 0xc3, 0x1b, 0xe8, 0x3b, 0xa3, 0x12, 0x3c, 0x30, 0x3c, 0x90, 0x6e, 0xe1, 0x43, 0xe7, 0xb8, 0xe3, + 0xe8, 0x55, 0x48, 0x6f, 0xd1, 0x67, 0x65, 0x5e, 0xc6, 0x87, 0xa8, 0x04, 0x49, 0xdc, 0xba, 0x78, + 0xe9, 0xd2, 0x33, 0x2f, 0x32, 0x2d, 0x5f, 0x9d, 0x51, 0x45, 0x02, 0x3a, 0x0b, 0x69, 0x07, 0x1b, + 0xdd, 0x8b, 0x97, 0x2e, 0xdf, 0x7a, 0x86, 0xa9, 0xd5, 0xea, 0x8c, 0xea, 0x27, 0x2d, 0xa7, 0x48, + 0x8b, 0xbf, 0xf8, 0xc9, 0x05, 0xa9, 0x12, 0x87, 0xa8, 0xd3, 0xef, 0xbc, 0x63, 0xba, 0xf1, 0x87, + 0x09, 0x58, 0x0c, 0xe4, 0xb2, 0x49, 0xe1, 0xb6, 0xde, 0x36, 0x5b, 0xba, 0xff, 0x18, 0x90, 0x1c, + 0x68, 0x3f, 0xa5, 0x18, 0x63, 0xed, 0x8f, 0x94, 0xa2, 0xf2, 0x33, 0x12, 0x64, 0x6f, 0x08, 0xe4, + 0x06, 0x76, 0xd1, 0x15, 0x00, 0xaf, 0x24, 0x31, 0x54, 0xce, 0x2c, 0x0d, 0x96, 0xb5, 0xe4, 0xf1, + 0xa8, 0x01, 0x72, 0xf4, 0x3c, 0x55, 0xc0, 0xae, 0xed, 0xf0, 0x5b, 0xb1, 0x13, 0x58, 0x3d, 0x62, + 0xf4, 0x24, 0x20, 0x6a, 0xd5, 0xb4, 0xdb, 0xb6, 0x6b, 0x5a, 0x7b, 0x5a, 0xd7, 0xbe, 0xc3, 0xdf, + 0x1a, 0x88, 0xaa, 0x32, 0xcd, 0xb9, 0x41, 0x33, 0xb6, 0x48, 0x3a, 0xa9, 0x74, 0xda, 0x43, 0x21, + 0xcb, 0x31, 0xbd, 0xd5, 0xea, 0x61, 0xc7, 0xe1, 0x86, 0x4b, 0x7c, 0xa2, 0x2b, 0x90, 0xec, 0xf6, + 0x77, 0x34, 0x61, 0x25, 0x32, 0x17, 0x1f, 0x18, 0x35, 0xe6, 0x85, 0x6e, 0xf0, 0x51, 0x9f, 0xe8, + 0xf6, 0x77, 0x88, 0xa6, 0x3c, 0x04, 0xd9, 0x11, 0x95, 0xc9, 0xdc, 0xf6, 0xeb, 0x41, 0x5f, 0x32, + 0xe2, 0x2d, 0xd0, 0xba, 0x3d, 0xd3, 0xee, 0x99, 0xee, 0x21, 0x3d, 0x6e, 0x17, 0x55, 0x65, 0x91, + 0xb1, 0xc5, 0xd3, 0x95, 0x5b, 0x50, 0x68, 0x50, 0x37, 0xdd, 0xaf, 0xf9, 0x25, 0xbf, 0x7e, 0xd2, + 0xe4, 0xfa, 0x8d, 0xad, 0x59, 0x64, 0xa8, 0x66, 0xe7, 0xff, 0x83, 0x04, 0x99, 0x0a, 0x19, 0xb8, + 0xf5, 0x95, 0xab, 0x6d, 0x7d, 0x0f, 0x3d, 0x03, 0x27, 0x2a, 0x6b, 0x9b, 0xd5, 0x97, 0xb5, 0xfa, + 0x8a, 0x76, 0x75, 0xad, 0x7c, 0xcd, 0x3f, 0xdf, 0x5b, 0x3a, 0x79, 0xf7, 0xde, 0x22, 0x0a, 0xd0, + 0x6e, 0x5b, 0x74, 0x2d, 0x89, 0x2e, 0xc0, 0x7c, 0x98, 0xa5, 0x5c, 0x69, 0xd4, 0x36, 0x9a, 0xb2, + 0x54, 0x3a, 0x71, 0xf7, 0xde, 0xe2, 0x6c, 0x80, 0xa3, 0xbc, 0xe3, 0x60, 0xcb, 0x1d, 0x66, 0xa8, + 0x6e, 0xae, 0xaf, 0xd7, 0x9b, 0x72, 0x64, 0x88, 0xa1, 0x6a, 0x77, 0x3a, 0xa6, 0x8b, 0x1e, 0x87, + 0xd9, 0x30, 0xc3, 0x46, 0x7d, 0x4d, 0x8e, 0x96, 0xd0, 0xdd, 0x7b, 0x8b, 0xf9, 0x00, 0xf5, 0x86, + 0xd9, 0x2e, 0xa5, 0x3e, 0xfc, 0x23, 0x67, 0x67, 0x3e, 0xfd, 0x77, 0xcf, 0x4a, 0x95, 0xf5, 0xb1, + 0x63, 0xee, 0xd9, 0xe3, 0x8d, 0xb9, 0xf0, 0xbc, 0xfd, 0xd5, 0x07, 0x42, 0xe6, 0x86, 0xfb, 0x61, + 0x01, 0x63, 0x3c, 0xed, 0x70, 0x9b, 0x14, 0x5b, 0x28, 0x1d, 0xed, 0x1e, 0x94, 0x26, 0x4c, 0x0a, + 0xa5, 0x89, 0x86, 0x41, 0x79, 0x11, 0x72, 0x5b, 0x7a, 0xcf, 0x6d, 0x60, 0x77, 0x15, 0xeb, 0x2d, + 0xdc, 0x0b, 0xfb, 0x0f, 0x39, 0xe1, 0x3f, 0x20, 0x88, 0x51, 0x27, 0x81, 0xcd, 0x9f, 0xf4, 0xb7, + 0xb2, 0x0f, 0x31, 0x7a, 0x92, 0xd8, 0xf3, 0x2d, 0x38, 0x07, 0xf3, 0x2d, 0xc8, 0xcc, 0x70, 0xe8, + 0x62, 0x47, 0x84, 0xbf, 0xe8, 0x07, 0x7a, 0x4e, 0x78, 0x08, 0xd1, 0xa3, 0x3d, 0x04, 0x3e, 0xbc, + 0xb8, 0x9f, 0xd0, 0x86, 0x24, 0xef, 0x62, 0xaf, 0x22, 0x92, 0x5f, 0x11, 0xb4, 0x0e, 0x85, 0xae, + 0xde, 0x73, 0xe9, 0x3d, 0xc5, 0x7d, 0xda, 0x0a, 0x3e, 0x82, 0x17, 0x86, 0xed, 0x49, 0xa8, 0xb1, + 0xbc, 0x94, 0x5c, 0x37, 0x98, 0xa8, 0xfc, 0x97, 0x18, 0x24, 0xb8, 0x30, 0xde, 0x03, 0x49, 0x2e, + 0x56, 0x3e, 0xe6, 0x1e, 0x5c, 0x1a, 0x9e, 0x66, 0x97, 0xbc, 0xe9, 0x90, 0xe3, 0x09, 0x1e, 0xf4, + 0x28, 0xa4, 0x8c, 0x7d, 0xdd, 0xb4, 0x34, 0xb3, 0xc5, 0x1d, 0xd0, 0xcc, 0xe7, 0xdf, 0x5c, 0x48, + 0x56, 0x49, 0x5a, 0x7d, 0x45, 0x4d, 0xd2, 0xcc, 0x7a, 0x8b, 0xf8, 0x34, 0xfb, 0xd8, 0xdc, 0xdb, + 0x77, 0xb9, 0xdd, 0xe0, 0x5f, 0xe8, 0x05, 0x88, 0x11, 0x85, 0xe0, 0xb7, 0xd8, 0x4b, 0x43, 0x2b, + 0x0b, 0x2f, 0xf4, 0x53, 0x49, 0x91, 0x82, 0x3f, 0xf2, 0x9f, 0x17, 0x24, 0x95, 0x72, 0xa0, 0x2a, + 0xe4, 0xda, 0xba, 0xe3, 0x6a, 0x74, 0x3e, 0x26, 0xc5, 0xc7, 0x29, 0xc4, 0xe9, 0x61, 0x81, 0x70, + 0xc1, 0xf2, 0xaa, 0x67, 0x08, 0x17, 0x4b, 0x6a, 0xa1, 0x73, 0x20, 0x53, 0x10, 0x83, 0x8e, 0x40, + 0xe6, 0x25, 0x26, 0xa8, 0xdc, 0xf3, 0x24, 0x9d, 0x0d, 0x4c, 0xea, 0x2b, 0x9e, 0x81, 0x34, 0xbd, + 0x37, 0x4b, 0x49, 0xd8, 0xf1, 0xf5, 0x14, 0x49, 0xa0, 0x99, 0x8f, 0x41, 0xc1, 0xb7, 0xfa, 0x8c, + 0x24, 0xc5, 0x50, 0xfc, 0x64, 0x4a, 0xf8, 0x34, 0xcc, 0x5b, 0xf8, 0x80, 0x1e, 0xa8, 0x0f, 0x51, + 0xa7, 0x29, 0x35, 0x22, 0x79, 0x37, 0xc2, 0x1c, 0x8f, 0x40, 0xde, 0x10, 0xc2, 0x67, 0xb4, 0x40, + 0x69, 0x73, 0x5e, 0x2a, 0x25, 0x3b, 0x0d, 0x29, 0xbd, 0xdb, 0x65, 0x04, 0x19, 0x6e, 0xf5, 0xbb, + 0x5d, 0x9a, 0x75, 0x1e, 0x66, 0x69, 0x1b, 0x7b, 0xd8, 0xe9, 0xb7, 0x5d, 0x0e, 0x92, 0xa5, 0x34, + 0x05, 0x92, 0xa1, 0xb2, 0x74, 0x4a, 0xfb, 0x30, 0xe4, 0xf0, 0x6d, 0xb3, 0x85, 0x2d, 0x03, 0x33, + 0xba, 0x1c, 0xa5, 0xcb, 0x8a, 0x44, 0x4a, 0xf4, 0x38, 0x78, 0xd6, 0x5c, 0x13, 0x33, 0x4d, 0x9e, + 0xe1, 0x89, 0xf4, 0x32, 0x4b, 0x56, 0x8a, 0x10, 0x5b, 0xd1, 0x5d, 0x9d, 0xb8, 0x4b, 0xee, 0x01, + 0x9b, 0x3e, 0xb3, 0x2a, 0xf9, 0xa9, 0xfc, 0x5c, 0x14, 0x62, 0x37, 0x6c, 0x17, 0xa3, 0x67, 0x03, + 0xae, 0x6c, 0x7e, 0x94, 0x3e, 0x37, 0xcc, 0x3d, 0x0b, 0xb7, 0xd6, 0x9d, 0xbd, 0xc0, 0x23, 0x37, + 0xbe, 0x3a, 0x45, 0x42, 0xea, 0x34, 0x0f, 0xf1, 0x9e, 0xdd, 0xb7, 0x5a, 0xe2, 0xe0, 0x37, 0xfd, + 0x40, 0x35, 0x48, 0x79, 0x5a, 0x12, 0x9b, 0xa4, 0x25, 0x05, 0xa2, 0x25, 0x44, 0x87, 0x79, 0x82, + 0x9a, 0xdc, 0xe1, 0xca, 0x52, 0x81, 0xb4, 0x67, 0xbc, 0xb8, 0xb6, 0x4d, 0xa7, 0xb0, 0x3e, 0x1b, + 0x99, 0x22, 0xbd, 0xbe, 0xf7, 0x84, 0xc7, 0x34, 0x4e, 0xf6, 0x32, 0xb8, 0xf4, 0x42, 0x6a, 0xc5, + 0x1f, 0xdc, 0x49, 0xd2, 0x76, 0xf9, 0x6a, 0xc5, 0x1e, 0xdd, 0x79, 0x00, 0xd2, 0x8e, 0xb9, 0x67, + 0xe9, 0x6e, 0xbf, 0x87, 0xb9, 0xe6, 0xf9, 0x09, 0x24, 0xd7, 0xbf, 0x04, 0xc1, 0x34, 0x2d, 0xf0, + 0x72, 0xdb, 0x05, 0x98, 0xf3, 0xdf, 0x4c, 0xf3, 0x51, 0x98, 0x96, 0x21, 0x2f, 0xab, 0x21, 0x72, + 0x94, 0x5f, 0x96, 0x20, 0xc1, 0x67, 0x2c, 0xbf, 0x1b, 0xa4, 0xd1, 0xdd, 0x10, 0x19, 0xd7, 0x0d, + 0xd1, 0xfb, 0xef, 0x86, 0x32, 0x80, 0x57, 0x4d, 0x87, 0x3f, 0xab, 0x32, 0xc2, 0xad, 0x62, 0x55, + 0x6c, 0x98, 0x7b, 0x7c, 0xdc, 0x07, 0x98, 0x94, 0xdf, 0x92, 0x88, 0x87, 0xcf, 0xf3, 0x51, 0x19, + 0x72, 0xa2, 0x5e, 0xda, 0x6e, 0x5b, 0xdf, 0xe3, 0xaa, 0xf8, 0xe0, 0xd8, 0xca, 0x91, 0x59, 0x58, + 0xcd, 0xf0, 0xfa, 0x50, 0x7f, 0x62, 0x64, 0xb7, 0x46, 0xc6, 0x74, 0x6b, 0x48, 0x8f, 0xa2, 0xf7, + 0xa7, 0x47, 0xa1, 0x1e, 0x8f, 0x0d, 0xf4, 0xb8, 0xf2, 0x3b, 0x12, 0x7f, 0xb1, 0xad, 0xc5, 0x6e, + 0x70, 0xfc, 0x79, 0x75, 0xd5, 0x6b, 0x5c, 0xb7, 0x5a, 0xb8, 0xa5, 0x0d, 0xf5, 0xd9, 0xc3, 0xc3, + 0x88, 0xe1, 0x3a, 0xfb, 0x7d, 0x87, 0x04, 0x4a, 0xc3, 0xef, 0xc3, 0xcf, 0x46, 0x60, 0x76, 0x88, + 0xfe, 0x2f, 0x5f, 0x5f, 0x86, 0x47, 0x6f, 0x7c, 0xca, 0xd1, 0x9b, 0x18, 0x3b, 0x7a, 0x3f, 0x13, + 0xa1, 0x01, 0x80, 0xae, 0xed, 0xe8, 0xed, 0xaf, 0x85, 0xed, 0x3d, 0x03, 0xe9, 0xae, 0xdd, 0xd6, + 0x58, 0x0e, 0xbb, 0x7a, 0x93, 0xea, 0xda, 0x6d, 0x75, 0x48, 0xcd, 0xe2, 0x6f, 0x93, 0x61, 0x4e, + 0xbc, 0x0d, 0x9d, 0x90, 0x1c, 0x1c, 0x50, 0x3d, 0xc8, 0x32, 0x51, 0x70, 0xaf, 0xe9, 0x69, 0x22, + 0x03, 0xea, 0x86, 0x49, 0xc3, 0x5e, 0x1e, 0xab, 0x36, 0xa3, 0x54, 0x39, 0x1d, 0xe1, 0x60, 0x4e, + 0xc6, 0xa8, 0xc8, 0x51, 0xd0, 0x62, 0xa9, 0x9c, 0x4e, 0xf9, 0x5e, 0x09, 0x60, 0x8d, 0x48, 0x96, + 0xb6, 0x97, 0xf8, 0x3b, 0x0e, 0xad, 0x82, 0x16, 0x2a, 0xf9, 0xec, 0xb8, 0x4e, 0xe3, 0xe5, 0x67, + 0x9d, 0x60, 0xbd, 0xab, 0x90, 0xf3, 0x75, 0xdb, 0xc1, 0xa2, 0x32, 0x67, 0x8f, 0x58, 0x95, 0x36, + 0xb0, 0xab, 0x66, 0x6f, 0x07, 0xbe, 0x94, 0x7f, 0x26, 0x41, 0x9a, 0xd6, 0x69, 0x1d, 0xbb, 0x7a, + 0xa8, 0x0f, 0xa5, 0xfb, 0xef, 0xc3, 0x07, 0x01, 0x18, 0x8c, 0x63, 0xbe, 0x81, 0xb9, 0x66, 0xa5, + 0x69, 0x4a, 0xc3, 0x7c, 0x03, 0xa3, 0xcb, 0x9e, 0xc0, 0xa3, 0x47, 0x0b, 0x5c, 0xac, 0x5a, 0xb9, + 0xd8, 0x4f, 0x41, 0x92, 0xbe, 0x29, 0x7a, 0xe0, 0xf0, 0x85, 0x68, 0xc2, 0xea, 0x77, 0x9a, 0x07, + 0x8e, 0xf2, 0x3a, 0x24, 0x9b, 0x07, 0x2c, 0x9e, 0x78, 0x06, 0xd2, 0x3d, 0xdb, 0xe6, 0xde, 0x1f, + 0xf3, 0xba, 0x53, 0x24, 0x81, 0x3a, 0x3b, 0x22, 0x86, 0x16, 0xf1, 0x63, 0x68, 0x7e, 0x10, 0x30, + 0x3a, 0x55, 0x10, 0x90, 0xac, 0x3e, 0x73, 0xa1, 0x91, 0x84, 0x9e, 0x84, 0x53, 0x8d, 0xfa, 0xb5, + 0x8d, 0xda, 0x8a, 0xb6, 0xde, 0xb8, 0x36, 0x70, 0xad, 0xbe, 0x54, 0xb8, 0x7b, 0x6f, 0x31, 0xc3, + 0x97, 0x9d, 0xe3, 0xa8, 0xb7, 0xd4, 0xda, 0x8d, 0xcd, 0x66, 0x4d, 0x96, 0x18, 0xf5, 0x56, 0x0f, + 0xdf, 0xb6, 0x5d, 0xf6, 0x68, 0xef, 0xd3, 0x70, 0x7a, 0x04, 0xb5, 0xb7, 0xf8, 0x9c, 0xbd, 0x7b, + 0x6f, 0x31, 0xb7, 0xd5, 0xc3, 0x4c, 0xcb, 0x28, 0xc7, 0x12, 0x14, 0x87, 0x39, 0x36, 0xb7, 0x36, + 0x1b, 0xe5, 0x35, 0x79, 0xb1, 0x24, 0xdf, 0xbd, 0xb7, 0x98, 0x15, 0x26, 0x83, 0xd0, 0xbf, 0xf3, + 0xab, 0xcf, 0x6f, 0x4d, 0x85, 0xa2, 0xc6, 0x6c, 0x5d, 0xd7, 0xd5, 0x7b, 0x7a, 0xe7, 0xb8, 0xcb, + 0xcf, 0x09, 0x1b, 0xfe, 0xca, 0xcf, 0x44, 0xa0, 0xe0, 0x2d, 0x6e, 0xb6, 0x68, 0x09, 0xe8, 0xd9, + 0x60, 0xc4, 0x2f, 0x33, 0x76, 0xee, 0x60, 0xd4, 0x22, 0x20, 0xf8, 0x6e, 0x48, 0x09, 0x27, 0x99, + 0x0f, 0xaa, 0xc5, 0x11, 0xf3, 0x1b, 0xa7, 0xe0, 0xac, 0x1e, 0x07, 0x7a, 0x09, 0xd2, 0xde, 0x10, + 0xf3, 0x9e, 0x49, 0x1b, 0x3f, 0x26, 0x39, 0xbf, 0xcf, 0x83, 0x5e, 0xf4, 0x97, 0x71, 0xb1, 0x71, + 0x0b, 0xc3, 0x1b, 0x8c, 0x80, 0x33, 0x7b, 0x4b, 0xb8, 0xa7, 0x21, 0xa6, 0xef, 0x18, 0x26, 0x37, + 0xc0, 0x0f, 0x0c, 0xf3, 0x95, 0x2b, 0xd5, 0x3a, 0x67, 0xa2, 0x94, 0x4a, 0x9d, 0x07, 0x53, 0xb8, + 0xbc, 0xe8, 0xa3, 0x34, 0x07, 0x1a, 0x5b, 0x0b, 0x33, 0xef, 0x22, 0xd5, 0xd1, 0x0f, 0x2a, 0x74, + 0x39, 0x7c, 0x0a, 0x92, 0x24, 0x73, 0x8f, 0x3f, 0x54, 0x10, 0x55, 0x13, 0x1d, 0xfd, 0xe0, 0x9a, + 0xee, 0x5c, 0x8f, 0xa5, 0xa2, 0x72, 0x4c, 0xf9, 0x71, 0xe2, 0xa9, 0x84, 0xa4, 0x82, 0x9e, 0x00, + 0x44, 0x38, 0xf4, 0x3d, 0xac, 0x91, 0xa1, 0x4b, 0xc5, 0x2b, 0x70, 0x0b, 0x1d, 0xfd, 0xa0, 0xbc, + 0x87, 0x37, 0xfa, 0x1d, 0x5a, 0x01, 0x07, 0xad, 0x83, 0x2c, 0x88, 0x45, 0xcf, 0x72, 0xf1, 0x9f, + 0x1e, 0x7e, 0x18, 0x97, 0x13, 0xb0, 0x09, 0xe0, 0xa3, 0x64, 0x02, 0xc8, 0x33, 0x3c, 0xef, 0x88, + 0x47, 0xa8, 0x29, 0xd1, 0x70, 0x53, 0x94, 0x97, 0xa0, 0x30, 0xd0, 0x03, 0x48, 0x81, 0x1c, 0x8f, + 0x58, 0xd1, 0xed, 0x73, 0xb6, 0xc2, 0x49, 0xab, 0x19, 0x16, 0x99, 0xa2, 0xc7, 0x09, 0x96, 0x53, + 0x3f, 0xff, 0x89, 0x05, 0x89, 0x6e, 0xe6, 0x3c, 0x01, 0xb9, 0x50, 0x1f, 0x88, 0x28, 0xb2, 0xe4, + 0x47, 0x91, 0x7d, 0xe2, 0xd7, 0x20, 0x4b, 0x0c, 0x10, 0x6e, 0x71, 0xda, 0x47, 0xa1, 0xc0, 0x0c, + 0xe4, 0xa0, 0xac, 0x99, 0xc3, 0xb3, 0x2e, 0x04, 0xae, 0x08, 0x0f, 0x28, 0x2c, 0xf6, 0x8c, 0xa0, + 0xba, 0xa6, 0x3b, 0xca, 0x26, 0x80, 0xdf, 0xa9, 0xa8, 0x0c, 0x0f, 0x12, 0xe3, 0x11, 0x3c, 0xee, + 0xc9, 0x1f, 0xc8, 0x0a, 0x79, 0x8c, 0x25, 0x42, 0xe4, 0x1f, 0xe9, 0x64, 0xcf, 0x64, 0xad, 0x52, + 0x8a, 0xca, 0x2b, 0x9f, 0xfe, 0xfc, 0x59, 0xe9, 0x9d, 0xb1, 0x05, 0xff, 0xf1, 0x26, 0x9c, 0x09, + 0x64, 0x12, 0x05, 0x0c, 0x05, 0xa2, 0x0a, 0x01, 0x7d, 0x25, 0x99, 0x93, 0x02, 0x4a, 0x47, 0xc6, + 0x7f, 0x4b, 0x47, 0x9b, 0x9d, 0xc9, 0xd1, 0xa6, 0xc9, 0xf1, 0xae, 0xd1, 0x41, 0xf9, 0x7f, 0x9a, + 0x86, 0xa4, 0x8a, 0x3f, 0xd0, 0xc7, 0x8e, 0x8b, 0x2e, 0x42, 0x0c, 0x1b, 0xfb, 0xf6, 0xa8, 0x18, + 0x28, 0x69, 0xe0, 0x12, 0xa7, 0xab, 0x19, 0xfb, 0xf6, 0xea, 0x8c, 0x4a, 0x69, 0xd1, 0x25, 0x88, + 0xef, 0xb6, 0xfb, 0x3c, 0x7c, 0x35, 0x60, 0xb3, 0x82, 0x4c, 0x57, 0x09, 0xd1, 0xea, 0x8c, 0xca, + 0xa8, 0x49, 0x51, 0xf4, 0x45, 0xf3, 0xe8, 0xd1, 0x45, 0xd5, 0xad, 0x5d, 0x5a, 0x14, 0xa1, 0x45, + 0x15, 0x00, 0xd3, 0x32, 0x5d, 0x8d, 0x86, 0x76, 0xb8, 0xd5, 0x78, 0x68, 0x3c, 0xa7, 0xe9, 0xd2, + 0x60, 0xd0, 0xea, 0x8c, 0x9a, 0x36, 0xc5, 0x07, 0xa9, 0xee, 0x07, 0xfa, 0xb8, 0x77, 0xc8, 0xbd, + 0xb5, 0xb1, 0xd5, 0x7d, 0x85, 0x10, 0x91, 0xea, 0x52, 0x6a, 0x62, 0x64, 0xd9, 0x53, 0x7b, 0xee, + 0x01, 0x7f, 0x40, 0x76, 0x61, 0x1c, 0x27, 0x7d, 0x6f, 0xaf, 0x79, 0xb0, 0x3a, 0xa3, 0x26, 0x0d, + 0xf6, 0x13, 0xbd, 0xe0, 0xb9, 0x60, 0x99, 0x61, 0xaf, 0x27, 0xc4, 0xcb, 0xc2, 0x3e, 0x33, 0xc2, + 0x15, 0x43, 0x1b, 0x90, 0x6f, 0x9b, 0x8e, 0xab, 0x39, 0x96, 0xde, 0x75, 0xf6, 0x6d, 0xd7, 0xa1, + 0xf1, 0x93, 0xcc, 0xc5, 0x47, 0xc6, 0x21, 0xac, 0x99, 0x8e, 0xdb, 0x10, 0xc4, 0xab, 0x33, 0x6a, + 0xae, 0x1d, 0x4c, 0x20, 0x78, 0xf6, 0xee, 0x2e, 0xee, 0x79, 0x80, 0x34, 0xce, 0x72, 0x04, 0xde, + 0x26, 0xa1, 0x16, 0xfc, 0x04, 0xcf, 0x0e, 0x26, 0xa0, 0xaf, 0x83, 0xb9, 0xb6, 0xad, 0xb7, 0x3c, + 0x38, 0xcd, 0xd8, 0xef, 0x5b, 0xb7, 0x68, 0x50, 0x26, 0x73, 0xf1, 0xf1, 0xb1, 0x95, 0xb4, 0xf5, + 0x96, 0x80, 0xa8, 0x12, 0x86, 0xd5, 0x19, 0x75, 0xb6, 0x3d, 0x98, 0x88, 0xde, 0x0f, 0xf3, 0x7a, + 0xb7, 0xdb, 0x3e, 0x1c, 0x44, 0x2f, 0x50, 0xf4, 0xf3, 0xe3, 0xd0, 0xcb, 0x84, 0x67, 0x10, 0x1e, + 0xe9, 0x43, 0xa9, 0xa8, 0x09, 0x72, 0xb7, 0x87, 0xe9, 0x8d, 0xa9, 0x2e, 0xf7, 0x32, 0xe8, 0xeb, + 0x54, 0x99, 0x8b, 0x8f, 0x8d, 0xc3, 0xde, 0x62, 0xf4, 0xc2, 0x29, 0x59, 0x9d, 0x51, 0x0b, 0xdd, + 0x70, 0x12, 0x43, 0xb5, 0x0d, 0x4c, 0x1f, 0xcf, 0xe3, 0xa8, 0xb3, 0x93, 0x50, 0x29, 0x7d, 0x18, + 0x35, 0x94, 0x84, 0x6a, 0x90, 0x61, 0x4b, 0x51, 0x8d, 0x18, 0x43, 0xfa, 0xa6, 0x55, 0xe6, 0xa2, + 0x32, 0x76, 0x84, 0x52, 0xd2, 0x1b, 0xb6, 0x8b, 0x57, 0x67, 0x54, 0xc0, 0xde, 0x17, 0xd2, 0xe1, + 0x04, 0x7d, 0xde, 0xeb, 0x50, 0x0b, 0x1b, 0xde, 0xe2, 0x1c, 0x05, 0x7c, 0x62, 0x1c, 0x20, 0x7d, + 0xe1, 0xfa, 0xf0, 0x46, 0xd0, 0x0e, 0xaf, 0xce, 0xa8, 0x73, 0xb7, 0x87, 0x93, 0x89, 0x8a, 0xed, + 0x9a, 0x96, 0xde, 0x36, 0xdf, 0xc0, 0x6c, 0x0a, 0xa5, 0x0f, 0x5b, 0x1e, 0xa1, 0x62, 0x57, 0x39, + 0x35, 0x9d, 0x58, 0x89, 0x8a, 0xed, 0x06, 0x13, 0x2a, 0x49, 0x7e, 0xd6, 0xd3, 0x7b, 0xa8, 0x2d, + 0x29, 0xa7, 0xd8, 0xe3, 0x6c, 0xd7, 0x63, 0x29, 0x90, 0x33, 0xca, 0x63, 0x90, 0x09, 0x18, 0x26, + 0x54, 0x84, 0x24, 0x3f, 0x0d, 0x23, 0x4e, 0x8d, 0xf2, 0x4f, 0x25, 0x0f, 0xd9, 0xa0, 0x31, 0x52, + 0x3e, 0x22, 0x79, 0x9c, 0xf4, 0x4d, 0x89, 0x62, 0x38, 0x22, 0x9d, 0xf6, 0x3d, 0x95, 0x87, 0xc5, + 0xd4, 0x26, 0xf2, 0xd9, 0xf6, 0x6b, 0x96, 0x26, 0xf2, 0x99, 0x15, 0x2d, 0x40, 0xa6, 0x7b, 0xb1, + 0xeb, 0x91, 0x44, 0x29, 0x09, 0x74, 0x2f, 0x76, 0x05, 0xc1, 0x43, 0x90, 0x25, 0xed, 0xd6, 0x82, + 0xfe, 0x52, 0x5a, 0xcd, 0x90, 0x34, 0x4e, 0xa2, 0xfc, 0xeb, 0x08, 0xc8, 0x83, 0x06, 0xcc, 0x0b, + 0x55, 0x4b, 0xc7, 0x0e, 0x55, 0x9f, 0x1e, 0x0c, 0x92, 0xfb, 0x71, 0xf1, 0x35, 0x90, 0xfd, 0xf0, + 0x2e, 0x9b, 0x6a, 0xc6, 0xfb, 0x7f, 0x03, 0x8e, 0xaa, 0x5a, 0x30, 0x06, 0x3c, 0xd7, 0xab, 0xa1, + 0xcd, 0x4a, 0xf1, 0x27, 0x3f, 0x06, 0x3b, 0xdc, 0x73, 0x62, 0xb6, 0xbb, 0x2d, 0xdd, 0xc5, 0x22, + 0x3e, 0x16, 0xd8, 0xb7, 0x7c, 0x14, 0x0a, 0x7a, 0xb7, 0xab, 0x39, 0xae, 0xee, 0x62, 0xee, 0x6b, + 0xb0, 0xc8, 0x43, 0x4e, 0xef, 0x76, 0xe9, 0xd3, 0xea, 0xcc, 0xd7, 0x78, 0x04, 0xf2, 0xc4, 0xa6, + 0x9b, 0x7a, 0x5b, 0xb8, 0x0a, 0x09, 0xe6, 0x92, 0xf0, 0x54, 0xe6, 0x1d, 0x28, 0x2d, 0xaf, 0xc7, + 0xa9, 0x3d, 0xf7, 0xd6, 0x54, 0x52, 0x60, 0x4d, 0x85, 0xf8, 0x5b, 0x1f, 0x4c, 0x3e, 0xe2, 0x7d, + 0x94, 0xd1, 0x9b, 0x06, 0xf3, 0x74, 0xfd, 0x75, 0x9b, 0x05, 0x4b, 0x52, 0x2a, 0xfb, 0x50, 0x54, + 0xc8, 0x87, 0x6d, 0x3f, 0xca, 0x43, 0xc4, 0x3d, 0xe0, 0xa5, 0x44, 0xdc, 0x03, 0xe2, 0xe9, 0x7a, + 0xef, 0xed, 0xe6, 0x47, 0xcc, 0x76, 0x9c, 0xcf, 0x8f, 0x75, 0x28, 0x05, 0xc8, 0x85, 0xe6, 0x04, + 0xe5, 0x24, 0xcc, 0x8f, 0x32, 0xf1, 0xca, 0xbe, 0x97, 0x1e, 0x32, 0xd5, 0xe8, 0x12, 0xa4, 0x3c, + 0x1b, 0x3f, 0x62, 0x75, 0x4c, 0x8b, 0x15, 0xc4, 0xaa, 0x47, 0x1a, 0x0a, 0xe7, 0x47, 0x42, 0xe1, + 0x7c, 0xe5, 0x1b, 0xa1, 0x38, 0xce, 0x7e, 0x0f, 0x04, 0xf9, 0x62, 0x9e, 0xc0, 0x4e, 0x42, 0x82, + 0x3f, 0x6c, 0x19, 0xa1, 0x1b, 0x58, 0xfc, 0x8b, 0x08, 0x92, 0xd9, 0xf2, 0x28, 0xdb, 0xd7, 0xa2, + 0x1f, 0x8a, 0x06, 0xa7, 0xc7, 0xda, 0xf0, 0xf1, 0x5b, 0x61, 0x0c, 0x88, 0x6f, 0x85, 0x19, 0xa2, + 0x3a, 0x0e, 0x6d, 0xab, 0x38, 0xc8, 0xc2, 0xbe, 0x94, 0x8f, 0x46, 0xe1, 0xe4, 0x68, 0x4b, 0x8e, + 0x16, 0x21, 0x4b, 0xfc, 0x56, 0x37, 0xec, 0xe2, 0x42, 0x47, 0x3f, 0x68, 0x72, 0xff, 0x96, 0x6f, + 0x25, 0x44, 0xbc, 0xad, 0x04, 0xb4, 0x0d, 0xb3, 0x6d, 0xdb, 0xd0, 0xdb, 0x5a, 0x60, 0x2b, 0x87, + 0x0f, 0xa2, 0x87, 0x87, 0x84, 0x1d, 0x0e, 0x19, 0x12, 0x83, 0xc3, 0xf5, 0xbf, 0x40, 0x31, 0xd6, + 0xbc, 0x5d, 0x1f, 0xb4, 0x02, 0x99, 0x8e, 0xe9, 0xec, 0xe0, 0x7d, 0xfd, 0xb6, 0x69, 0xf7, 0xf8, + 0x68, 0x1a, 0x56, 0x9a, 0x75, 0x9f, 0x46, 0xec, 0x30, 0x05, 0xd8, 0x02, 0x5d, 0x12, 0x1f, 0xb9, + 0xf1, 0x95, 0x38, 0xb6, 0x35, 0x19, 0xb7, 0x87, 0x94, 0x1c, 0xbb, 0x87, 0x34, 0x6a, 0xc3, 0x26, + 0x35, 0x7a, 0xc3, 0xe6, 0xc3, 0xc1, 0xae, 0x09, 0xcf, 0x7d, 0x43, 0x7b, 0x38, 0xa8, 0x01, 0xf3, + 0x9c, 0xbf, 0x15, 0x92, 0xfd, 0x88, 0xa3, 0x0e, 0x6c, 0x7c, 0x0d, 0xca, 0x1c, 0x09, 0xf6, 0xf1, + 0x62, 0x8f, 0xde, 0x9f, 0xd8, 0xc5, 0x26, 0x6a, 0x2c, 0xb0, 0x89, 0xfa, 0xff, 0x58, 0x57, 0x7c, + 0x28, 0x0a, 0xb3, 0x43, 0x8e, 0xc4, 0xc8, 0xdd, 0xe1, 0x71, 0x11, 0x59, 0xd1, 0xb0, 0xe8, 0xb1, + 0x1b, 0xc6, 0xfb, 0x3a, 0x36, 0xb9, 0xaf, 0xe3, 0x6f, 0x63, 0x5f, 0x27, 0xee, 0xaf, 0xaf, 0xdf, + 0xd1, 0x5e, 0xf8, 0xb8, 0x04, 0xa5, 0xf1, 0xde, 0xd7, 0xc8, 0xee, 0x38, 0xd6, 0x06, 0xc2, 0xb8, + 0x39, 0xee, 0x11, 0xc8, 0x0f, 0xf8, 0x86, 0x4c, 0x95, 0x73, 0xa1, 0x55, 0xb8, 0xf2, 0xcd, 0x51, + 0x6f, 0xe2, 0x09, 0x39, 0x70, 0x23, 0x46, 0xeb, 0x2b, 0x30, 0xd7, 0xc2, 0x86, 0xd9, 0xba, 0xdf, + 0xc1, 0x3a, 0xcb, 0xb9, 0xff, 0xff, 0x58, 0x1d, 0xd6, 0x92, 0xef, 0x01, 0x48, 0xa9, 0xd8, 0xe9, + 0x12, 0x7f, 0x0c, 0x55, 0x20, 0x8d, 0x0f, 0x0c, 0xdc, 0x75, 0xfd, 0x43, 0x15, 0xa3, 0x96, 0x08, + 0x8c, 0xba, 0x26, 0x28, 0xc9, 0x02, 0xd9, 0x63, 0x43, 0xcf, 0xf2, 0x18, 0xc0, 0xf8, 0xe5, 0x3c, + 0x67, 0x0f, 0x06, 0x01, 0x2e, 0x8b, 0x20, 0x40, 0x74, 0xec, 0xfa, 0x96, 0x71, 0x0d, 0x44, 0x01, + 0x9e, 0xe5, 0x51, 0x80, 0xd8, 0x84, 0xc2, 0x42, 0x61, 0x80, 0x6a, 0x28, 0x0c, 0x90, 0x98, 0xd0, + 0xcc, 0x31, 0x71, 0x80, 0xcb, 0x22, 0x0e, 0x90, 0x9c, 0x50, 0xe3, 0x81, 0x40, 0xc0, 0x7b, 0x02, + 0x81, 0x80, 0xf4, 0x70, 0xb4, 0x35, 0xc4, 0x3a, 0x22, 0x12, 0xf0, 0xa2, 0x17, 0x09, 0xc8, 0x8e, + 0x8d, 0x22, 0x70, 0xe6, 0xc1, 0x50, 0xc0, 0xe6, 0x50, 0x28, 0x20, 0xc7, 0xff, 0xb0, 0xd5, 0x38, + 0x88, 0x09, 0xb1, 0x80, 0xcd, 0xa1, 0x58, 0x40, 0x7e, 0x02, 0xe0, 0x84, 0x60, 0xc0, 0xd7, 0x8f, + 0x0e, 0x06, 0x8c, 0x5f, 0xae, 0xf3, 0x6a, 0x4e, 0x17, 0x0d, 0xd0, 0xc6, 0x44, 0x03, 0xe4, 0xb1, + 0x2b, 0x57, 0x06, 0x3f, 0x75, 0x38, 0x60, 0x7b, 0x44, 0x38, 0x80, 0x2d, 0xdc, 0xcf, 0x8d, 0x05, + 0x9f, 0x22, 0x1e, 0xb0, 0x3d, 0x22, 0x1e, 0x80, 0x26, 0xc2, 0x4e, 0x0c, 0x08, 0x5c, 0x0d, 0x07, + 0x04, 0xe6, 0xc6, 0x78, 0x9d, 0xfe, 0x68, 0x1f, 0x13, 0x11, 0xd8, 0x19, 0x17, 0x11, 0x60, 0xab, + 0xf6, 0x27, 0xc7, 0x22, 0x1e, 0x23, 0x24, 0xb0, 0x39, 0x14, 0x12, 0x38, 0x31, 0x41, 0xd3, 0xa6, + 0x8f, 0x09, 0xb0, 0x67, 0xdb, 0xd9, 0x83, 0xed, 0x20, 0x67, 0xae, 0xc7, 0x52, 0x19, 0x39, 0xab, + 0x3c, 0x4e, 0x3c, 0x98, 0x01, 0x3b, 0x47, 0xd6, 0x0a, 0xb8, 0xd7, 0xb3, 0x7b, 0xe2, 0x1e, 0x03, + 0xfd, 0x50, 0xce, 0x91, 0x35, 0xa2, 0x6f, 0xd3, 0x8e, 0x88, 0x1f, 0xd0, 0x35, 0x59, 0xc0, 0x8e, + 0x29, 0x3f, 0x2f, 0xf9, 0xbc, 0x34, 0x82, 0x10, 0x5c, 0x5f, 0xa6, 0xf9, 0xfa, 0x32, 0x10, 0x55, + 0x88, 0x84, 0xa3, 0x0a, 0x0b, 0x90, 0x21, 0x6b, 0xad, 0x81, 0x80, 0x81, 0xde, 0xf5, 0x02, 0x06, + 0xe2, 0x00, 0x15, 0x8b, 0x3d, 0xf0, 0x69, 0x89, 0xed, 0x26, 0x16, 0xbc, 0xc3, 0x64, 0x6c, 0xa9, + 0x8b, 0x9e, 0x82, 0xb9, 0x00, 0xad, 0xb7, 0x86, 0x63, 0xab, 0x67, 0xd9, 0xa3, 0x2e, 0xf3, 0xc5, + 0xdc, 0x3f, 0x97, 0x7c, 0x09, 0xf9, 0x91, 0x86, 0x51, 0x41, 0x01, 0xe9, 0x6d, 0x0a, 0x0a, 0x44, + 0xee, 0x3b, 0x28, 0x10, 0x5c, 0x93, 0x46, 0xc3, 0x6b, 0xd2, 0xff, 0x29, 0xf9, 0x7d, 0xe2, 0x2d, + 0xf1, 0x0d, 0xbb, 0x85, 0xf9, 0x2a, 0x91, 0xfe, 0x26, 0x2e, 0x49, 0xdb, 0xde, 0xe3, 0x6b, 0x41, + 0xf2, 0x93, 0x50, 0x79, 0x13, 0x4f, 0x9a, 0xcf, 0x2b, 0xde, 0x02, 0x33, 0x1e, 0xbc, 0xc7, 0xc1, + 0x2f, 0x37, 0x24, 0xfc, 0xcb, 0x0d, 0xde, 0xe5, 0xe3, 0x64, 0xe0, 0xf2, 0x31, 0x7a, 0x01, 0xd2, + 0x34, 0xd8, 0xaf, 0xd9, 0x5d, 0xf1, 0x37, 0xc6, 0xce, 0x8c, 0xbf, 0xd8, 0xe0, 0xd0, 0x23, 0xd7, + 0xec, 0x32, 0x84, 0xef, 0x71, 0xa4, 0x43, 0x1e, 0xc7, 0x03, 0x90, 0x26, 0xb5, 0x67, 0x7f, 0x2b, + 0x03, 0xf8, 0xcd, 0x75, 0x91, 0xa0, 0xfc, 0x44, 0x04, 0x0a, 0x03, 0x13, 0xcd, 0xc8, 0xb6, 0x8f, + 0xda, 0x46, 0x9e, 0x4e, 0x1e, 0x67, 0x01, 0xf6, 0x74, 0x47, 0xbb, 0xa3, 0x5b, 0x2e, 0xff, 0x93, + 0x78, 0x51, 0x35, 0x90, 0x82, 0x4a, 0x90, 0x22, 0x5f, 0x7d, 0x87, 0xff, 0x51, 0xbc, 0xa8, 0xea, + 0x7d, 0xa3, 0x55, 0x48, 0xe0, 0xdb, 0xf4, 0x75, 0x57, 0xf6, 0x46, 0xf2, 0xc9, 0xe1, 0xe5, 0x30, + 0xc9, 0xae, 0x14, 0x49, 0x67, 0x7f, 0xe9, 0xcd, 0x05, 0x99, 0x51, 0x3f, 0xe9, 0x5d, 0x18, 0x53, + 0x39, 0x7f, 0x58, 0x0a, 0xa9, 0x01, 0x29, 0xd0, 0x38, 0x60, 0x56, 0x2c, 0xef, 0x89, 0x4c, 0xd9, + 0x19, 0x6f, 0x35, 0xd7, 0xc1, 0x9d, 0xae, 0x6d, 0xb7, 0x35, 0x36, 0xc6, 0xcb, 0x90, 0x0f, 0xcf, + 0xab, 0xec, 0xef, 0x58, 0xb9, 0xba, 0x69, 0x69, 0x21, 0x27, 0x38, 0xcb, 0x12, 0xd9, 0x98, 0xba, + 0x1e, 0x4b, 0x49, 0x72, 0xe4, 0x7a, 0x2c, 0x15, 0x91, 0xa3, 0xca, 0x16, 0x9c, 0x18, 0x39, 0xaf, + 0xa2, 0xe7, 0x21, 0xed, 0x4f, 0xc9, 0xec, 0x98, 0xfe, 0x11, 0x91, 0x16, 0x9f, 0x56, 0xf9, 0x25, + 0xc9, 0x87, 0x0c, 0xc7, 0x6e, 0x6a, 0x90, 0x60, 0x67, 0x26, 0xf9, 0xf9, 0x98, 0xa7, 0xa6, 0x9b, + 0x91, 0x97, 0xd8, 0x81, 0x4a, 0x95, 0x33, 0x2b, 0xef, 0x87, 0x04, 0x4b, 0x41, 0x19, 0x48, 0xfa, + 0xef, 0x48, 0x03, 0x24, 0xca, 0xd5, 0x6a, 0x6d, 0x4b, 0x3c, 0x0a, 0x5b, 0xd9, 0x54, 0x9b, 0x72, + 0x84, 0x24, 0xab, 0xb5, 0xeb, 0xb5, 0x6a, 0x53, 0x8e, 0xa2, 0x59, 0xc8, 0xb1, 0xdf, 0xda, 0xd5, + 0x4d, 0x75, 0xbd, 0xdc, 0x94, 0x63, 0x81, 0xa4, 0x46, 0x6d, 0x63, 0xa5, 0xa6, 0xca, 0x71, 0xe5, + 0x19, 0x38, 0x3d, 0x76, 0x0e, 0xf7, 0x03, 0x33, 0x52, 0x20, 0x30, 0xa3, 0x7c, 0x34, 0x42, 0x16, + 0x35, 0xe3, 0x26, 0x66, 0x74, 0x7d, 0xa0, 0xe1, 0x17, 0x8f, 0x31, 0xab, 0x0f, 0xb4, 0x9e, 0xac, + 0x63, 0x7a, 0x78, 0x17, 0xbb, 0xc6, 0x3e, 0x73, 0x14, 0x98, 0x05, 0xca, 0xa9, 0x39, 0x9e, 0x4a, + 0x99, 0x1c, 0x46, 0xf6, 0x3a, 0x36, 0x5c, 0x8d, 0x29, 0x91, 0xc3, 0xff, 0x50, 0x72, 0x8e, 0xa5, + 0x36, 0x58, 0xa2, 0xf2, 0x8d, 0xc7, 0x92, 0x65, 0x1a, 0xe2, 0x6a, 0xad, 0xa9, 0xde, 0x94, 0xa3, + 0x08, 0x41, 0x9e, 0xfe, 0xd4, 0x1a, 0x1b, 0xe5, 0xad, 0xc6, 0xea, 0x26, 0x91, 0xe5, 0x1c, 0x14, + 0x84, 0x2c, 0x45, 0x62, 0x5c, 0x79, 0x02, 0x4e, 0x8d, 0xf1, 0x2a, 0x46, 0x1c, 0x62, 0xfd, 0xa4, + 0x14, 0xa4, 0x0e, 0x7b, 0x06, 0x9b, 0x90, 0x70, 0x5c, 0xdd, 0xed, 0x3b, 0x5c, 0x88, 0xcf, 0x4f, + 0xeb, 0x66, 0x2c, 0x89, 0x1f, 0x0d, 0xca, 0xae, 0x72, 0x18, 0xe5, 0x12, 0xe4, 0xc3, 0x39, 0xe3, + 0x65, 0xe0, 0x2b, 0x51, 0x44, 0xb9, 0x02, 0x68, 0xd8, 0xfb, 0x18, 0xb1, 0xbc, 0x94, 0x46, 0x2d, + 0x2f, 0x7f, 0x54, 0x82, 0x33, 0x47, 0x78, 0x1a, 0xe8, 0x95, 0x81, 0x46, 0xbe, 0x78, 0x1c, 0x3f, + 0x85, 0xfd, 0x55, 0xd2, 0xc3, 0x81, 0x66, 0x3e, 0x0b, 0xd9, 0x60, 0xfa, 0x74, 0x8d, 0xfc, 0x52, + 0xc4, 0x1f, 0xc4, 0xe1, 0x75, 0xb0, 0x6f, 0x02, 0xa5, 0xb7, 0x68, 0x02, 0xdf, 0x0d, 0xe0, 0x1e, + 0x88, 0x53, 0xd4, 0x7c, 0x1e, 0x7d, 0x70, 0x44, 0x7c, 0x11, 0x1b, 0xcd, 0x03, 0x3e, 0x08, 0xd2, + 0x2e, 0xff, 0xe5, 0xa0, 0x46, 0x30, 0x28, 0xd0, 0xa7, 0x73, 0xac, 0xe3, 0xfd, 0x99, 0xe4, 0xe9, + 0x26, 0x63, 0x3f, 0x78, 0xc0, 0x92, 0x1d, 0x74, 0x13, 0x4e, 0x0d, 0x38, 0x0a, 0x1e, 0x74, 0x6c, + 0x5a, 0x7f, 0xe1, 0x44, 0xd8, 0x5f, 0x10, 0xd0, 0xc1, 0xd9, 0x3e, 0x1e, 0x9e, 0xed, 0x6f, 0x02, + 0xf8, 0xc1, 0x01, 0xff, 0xd8, 0x9f, 0x14, 0x3c, 0xf6, 0x77, 0x09, 0xe2, 0x44, 0x93, 0x84, 0x9c, + 0x86, 0x4d, 0x31, 0xd1, 0x84, 0x40, 0x70, 0x81, 0x51, 0x2b, 0x26, 0xa0, 0xe1, 0x00, 0xed, 0x98, + 0x22, 0xde, 0x13, 0x2e, 0xe2, 0xa1, 0xb1, 0xa1, 0xde, 0xd1, 0x45, 0xbd, 0x01, 0x71, 0xda, 0xf3, + 0x23, 0xef, 0x52, 0x7e, 0x03, 0x80, 0xee, 0xba, 0x3d, 0x73, 0xa7, 0xef, 0x17, 0xb0, 0x30, 0x5a, + 0x73, 0xca, 0x82, 0xae, 0xf2, 0x00, 0x57, 0xa1, 0x79, 0x9f, 0x35, 0xa0, 0x46, 0x01, 0x40, 0x65, + 0x03, 0xf2, 0x61, 0xde, 0xd1, 0x77, 0x43, 0xfd, 0xc7, 0x55, 0xd2, 0xc2, 0xbf, 0xf1, 0xbc, 0x23, + 0xfe, 0xe0, 0x11, 0xfd, 0x50, 0x3e, 0x18, 0x81, 0x6c, 0x50, 0xf1, 0xfe, 0xea, 0xb9, 0x20, 0xca, + 0xb7, 0x48, 0x90, 0xf2, 0x9a, 0x7f, 0xc4, 0x61, 0x67, 0xff, 0x8e, 0xb0, 0xb7, 0x79, 0xc1, 0xb6, + 0x89, 0xa2, 0xde, 0x36, 0xd1, 0x15, 0x6f, 0xfa, 0x1b, 0x17, 0x10, 0x09, 0xca, 0x5a, 0x1c, 0x38, + 0xe4, 0xb3, 0xfd, 0x95, 0xe9, 0xae, 0xe2, 0xcd, 0x43, 0x3c, 0x78, 0x8d, 0x8e, 0x7d, 0x28, 0xad, + 0xc0, 0x09, 0x23, 0x36, 0x10, 0x83, 0x77, 0xf6, 0xa4, 0x63, 0xdf, 0xd9, 0xf3, 0x4a, 0x89, 0x04, + 0x4b, 0xf9, 0x6e, 0x09, 0x52, 0x62, 0x4c, 0xa0, 0xf7, 0x06, 0x4f, 0x9e, 0x89, 0xad, 0xcd, 0xb1, + 0xf6, 0x88, 0xe3, 0x07, 0x0e, 0x9e, 0x0d, 0x1d, 0xb8, 0x8e, 0x1e, 0xf7, 0xc0, 0x35, 0xf7, 0xec, + 0xfe, 0x44, 0x02, 0x79, 0x70, 0xc4, 0xbe, 0xe5, 0xda, 0x0d, 0x4f, 0x73, 0xd1, 0x11, 0xd3, 0xdc, + 0xb8, 0x53, 0xd4, 0xb1, 0x71, 0xa7, 0xa8, 0x87, 0x5b, 0x1d, 0xbf, 0xcf, 0x56, 0x7f, 0x28, 0x02, + 0x99, 0x40, 0x78, 0x14, 0x3d, 0x17, 0x3a, 0x91, 0xbd, 0x78, 0x54, 0x28, 0x35, 0x70, 0x24, 0x3b, + 0x24, 0xa6, 0xc8, 0xf1, 0xc5, 0xf4, 0xf6, 0xdf, 0xce, 0x1a, 0x7d, 0x81, 0x35, 0x3e, 0xe6, 0x02, + 0xeb, 0xdf, 0x90, 0x20, 0xe5, 0xb9, 0xdd, 0xc7, 0xdd, 0xc4, 0x3c, 0x09, 0x09, 0xee, 0x59, 0xb2, + 0x5d, 0x4c, 0xfe, 0x35, 0x32, 0xac, 0x5c, 0x82, 0x94, 0xf8, 0x0b, 0x88, 0x7c, 0x56, 0xf3, 0xbe, + 0xcf, 0xbf, 0x08, 0x99, 0xc0, 0x06, 0x30, 0x31, 0x8d, 0x1b, 0xb5, 0xf7, 0xc9, 0x33, 0xa5, 0xe4, + 0xdd, 0x7b, 0x8b, 0xd1, 0x0d, 0x7c, 0x87, 0x8c, 0x66, 0xb5, 0x56, 0x5d, 0xad, 0x55, 0x5f, 0x96, + 0xa5, 0x52, 0xe6, 0xee, 0xbd, 0xc5, 0xa4, 0x8a, 0x69, 0x44, 0xf1, 0xfc, 0xcb, 0x50, 0x18, 0xe8, + 0x98, 0xb0, 0xdb, 0x82, 0x20, 0xbf, 0xb2, 0xbd, 0xb5, 0x56, 0xaf, 0x96, 0x9b, 0x35, 0x8d, 0x9d, + 0xdb, 0x45, 0xa7, 0x60, 0x6e, 0xad, 0x7e, 0x6d, 0xb5, 0xa9, 0x55, 0xd7, 0xea, 0xb5, 0x8d, 0xa6, + 0x56, 0x6e, 0x36, 0xcb, 0xd5, 0x97, 0xe5, 0xc8, 0xc5, 0x7b, 0x19, 0x88, 0x95, 0x2b, 0xd5, 0x3a, + 0xaa, 0x42, 0x8c, 0x86, 0x42, 0x8e, 0x3c, 0x01, 0x56, 0x3a, 0x3a, 0x36, 0x8c, 0xae, 0x42, 0x9c, + 0x46, 0x49, 0xd0, 0xd1, 0x47, 0xc2, 0x4a, 0x13, 0x82, 0xc5, 0xa4, 0x32, 0x74, 0x44, 0x1e, 0x79, + 0x46, 0xac, 0x74, 0x74, 0xec, 0x18, 0xad, 0x41, 0x52, 0x2c, 0x92, 0x27, 0x1d, 0xdc, 0x2a, 0x4d, + 0x0c, 0xe8, 0x92, 0xa6, 0xb1, 0x60, 0xc3, 0xd1, 0xc7, 0xc7, 0x4a, 0x13, 0xa2, 0xca, 0xa8, 0xee, + 0xdd, 0x67, 0x9a, 0x70, 0x22, 0xac, 0x34, 0x29, 0x4e, 0x8c, 0x54, 0x48, 0xfb, 0x61, 0x9c, 0xc9, + 0x87, 0xe2, 0x4a, 0x53, 0x04, 0xcc, 0xd1, 0xfb, 0x21, 0x17, 0x5e, 0xea, 0x4e, 0x77, 0xea, 0xac, + 0x34, 0x65, 0x44, 0x9a, 0xe0, 0x87, 0xd7, 0xbd, 0xd3, 0x9d, 0x42, 0x2b, 0x4d, 0x19, 0xa0, 0x46, + 0xaf, 0xc3, 0xec, 0xf0, 0xba, 0x74, 0xfa, 0x43, 0x69, 0xa5, 0x63, 0x84, 0xac, 0x51, 0x07, 0xd0, + 0x88, 0xf5, 0xec, 0x31, 0xce, 0xa8, 0x95, 0x8e, 0x13, 0xc1, 0x46, 0x2d, 0x28, 0x0c, 0x2e, 0x12, + 0xa7, 0x3d, 0xb3, 0x56, 0x9a, 0x3a, 0x9a, 0xcd, 0x4a, 0x09, 0x2f, 0x2e, 0xa7, 0x3d, 0xc3, 0x56, + 0x9a, 0x3a, 0xb8, 0x8d, 0xb6, 0x01, 0x02, 0xeb, 0xc3, 0x29, 0xce, 0xb4, 0x95, 0xa6, 0x09, 0x73, + 0xa3, 0x2e, 0xcc, 0x8d, 0x5a, 0x38, 0x1e, 0xe7, 0x88, 0x5b, 0xe9, 0x58, 0xd1, 0x6f, 0xa2, 0xcf, + 0xe1, 0x25, 0xe0, 0x74, 0x47, 0xde, 0x4a, 0x53, 0x86, 0xc1, 0x2b, 0xe5, 0xb1, 0xe7, 0x9c, 0x1f, + 0x3b, 0xf2, 0x9c, 0xb3, 0x7f, 0x72, 0xd9, 0xbf, 0xe7, 0xf0, 0x1c, 0xbc, 0x8b, 0xbf, 0xa0, 0xe3, + 0xb8, 0xfa, 0x2d, 0xd3, 0xda, 0xf3, 0x9e, 0x32, 0xe2, 0xdf, 0xfc, 0x90, 0xf3, 0x49, 0xfe, 0x5c, + 0x8f, 0x48, 0x9d, 0xf0, 0xa0, 0xd1, 0xd8, 0x57, 0x1e, 0x27, 0xdd, 0x87, 0x98, 0x7c, 0x7c, 0xf9, + 0x88, 0xc7, 0x92, 0x26, 0x3c, 0xc9, 0x34, 0xe2, 0x31, 0xa5, 0xd2, 0x91, 0x6f, 0x0c, 0x94, 0x8e, + 0x3a, 0xf7, 0xad, 0x7c, 0x9f, 0x04, 0xf9, 0x55, 0xd3, 0x71, 0xed, 0x9e, 0x69, 0xe8, 0x6d, 0x3a, + 0xbd, 0x5c, 0x99, 0xf6, 0x56, 0x56, 0x25, 0x4d, 0xdc, 0x15, 0xfe, 0xde, 0x12, 0xbf, 0x29, 0xb4, + 0x02, 0x89, 0xdb, 0x7a, 0x9b, 0xdd, 0x89, 0x0a, 0x3e, 0xb6, 0x36, 0x28, 0xf3, 0x80, 0x1f, 0x15, + 0x44, 0x61, 0xbc, 0xcb, 0x91, 0xa2, 0xa4, 0x7c, 0x9b, 0x04, 0xb2, 0x5f, 0x33, 0x15, 0x1b, 0x76, + 0xaf, 0x45, 0x97, 0x02, 0xdd, 0x6e, 0xe0, 0xac, 0x80, 0xf8, 0xa4, 0x2e, 0x9f, 0xd9, 0xc1, 0x9e, + 0xdf, 0x36, 0xde, 0xc9, 0x8a, 0x05, 0x1c, 0xac, 0x11, 0x57, 0xce, 0xa3, 0xa3, 0xae, 0x9c, 0x2b, + 0xdf, 0x4b, 0x6f, 0xb8, 0x74, 0x3a, 0xa6, 0x43, 0x46, 0x87, 0x4a, 0x17, 0xf7, 0xd7, 0x21, 0xd6, + 0xd3, 0x5d, 0xbe, 0xe4, 0xad, 0x5c, 0x3e, 0xf6, 0x93, 0x51, 0xac, 0xcd, 0x14, 0x03, 0xbd, 0x02, + 0xa9, 0x8e, 0x7e, 0xa0, 0x51, 0xbc, 0xc8, 0x5b, 0xc2, 0x4b, 0x76, 0xf4, 0x03, 0x52, 0x3f, 0xf4, + 0x7e, 0x28, 0x10, 0x48, 0x63, 0x5f, 0xb7, 0xf6, 0x30, 0x43, 0x8e, 0xbe, 0x25, 0xe4, 0x5c, 0x47, + 0x3f, 0xa8, 0x52, 0x34, 0x82, 0xcf, 0x9f, 0xd6, 0xfa, 0x15, 0x89, 0xc7, 0x31, 0xa8, 0x60, 0x90, + 0x0e, 0xb2, 0xe1, 0x7d, 0xd1, 0x42, 0xc5, 0xa6, 0xcb, 0x63, 0xe3, 0x34, 0x61, 0x40, 0xac, 0x95, + 0x1c, 0xa9, 0xde, 0xe7, 0xde, 0x5c, 0x90, 0x58, 0xa9, 0x05, 0x63, 0x48, 0xec, 0x19, 0x16, 0x9e, + 0xd1, 0xa6, 0xec, 0xf0, 0x9c, 0xf0, 0xaa, 0x19, 0x20, 0x30, 0x6e, 0x92, 0xcf, 0xdb, 0xf0, 0x69, + 0x09, 0x32, 0x2b, 0x81, 0xc7, 0x1c, 0x8b, 0x90, 0xec, 0xd8, 0x96, 0x79, 0x0b, 0xf7, 0xbc, 0x5d, + 0x33, 0xf6, 0x49, 0x3c, 0x5f, 0xf6, 0x37, 0x01, 0xdd, 0x43, 0xf1, 0xde, 0x91, 0xf8, 0x26, 0x5c, + 0x77, 0xf0, 0x8e, 0x63, 0x0a, 0x39, 0xab, 0xe2, 0x13, 0x3d, 0x0e, 0xb2, 0x83, 0x8d, 0x7e, 0xcf, + 0x74, 0x0f, 0x35, 0xc3, 0xb6, 0x5c, 0xdd, 0x70, 0x79, 0x64, 0xa0, 0x20, 0xd2, 0xab, 0x2c, 0x99, + 0x80, 0xb4, 0xb0, 0xab, 0x9b, 0x6d, 0x76, 0x56, 0x34, 0xad, 0x8a, 0x4f, 0x5e, 0xd5, 0xbb, 0xc9, + 0xe0, 0xca, 0xb8, 0x0a, 0xb2, 0xdd, 0xc5, 0xbd, 0xd0, 0x11, 0x19, 0xa6, 0x8d, 0xc5, 0xdf, 0xf8, + 0xec, 0x53, 0xf3, 0x5c, 0xe0, 0xfc, 0x78, 0x05, 0xfb, 0xdb, 0x05, 0x6a, 0x41, 0x70, 0x88, 0xb3, + 0x33, 0x37, 0x43, 0xfb, 0x64, 0xfd, 0x1d, 0xff, 0x61, 0x9b, 0xf9, 0x21, 0xa1, 0x96, 0xad, 0xc3, + 0x4a, 0xf1, 0xd7, 0x7d, 0x68, 0x7f, 0xe5, 0xfc, 0x32, 0x3e, 0x0c, 0x6e, 0x9a, 0x51, 0x18, 0xb2, + 0xa8, 0x78, 0x5d, 0x37, 0xdb, 0xe2, 0xcf, 0xa7, 0xaa, 0xfc, 0x0b, 0x2d, 0x7b, 0x01, 0xcf, 0x18, + 0x5d, 0xa1, 0x29, 0xe3, 0x74, 0xa3, 0x62, 0x5b, 0xad, 0x70, 0x64, 0x13, 0x55, 0x21, 0xe1, 0xda, + 0xb7, 0xb0, 0xc5, 0x05, 0x54, 0x79, 0xe2, 0x18, 0x6f, 0xc3, 0xa9, 0x9c, 0x15, 0x7d, 0x3d, 0xc8, + 0x2d, 0xdc, 0xc6, 0x7b, 0xec, 0x06, 0xe7, 0xbe, 0xde, 0xc3, 0xec, 0xfd, 0x80, 0xfb, 0x7a, 0xf9, + 0xad, 0xe0, 0x41, 0x35, 0x28, 0x12, 0xda, 0x0a, 0x3f, 0x17, 0x9a, 0xe4, 0xdb, 0xd9, 0x63, 0xda, + 0x18, 0xd0, 0xbc, 0xa0, 0x2d, 0x0c, 0x3d, 0x2f, 0xfa, 0x38, 0xc8, 0x7d, 0x6b, 0xc7, 0xb6, 0xe8, + 0x5f, 0x1d, 0xe4, 0xeb, 0xba, 0x14, 0xdb, 0x3b, 0xf5, 0xd2, 0xf9, 0xde, 0xe9, 0x16, 0xe4, 0x7d, + 0x52, 0x3a, 0x42, 0xd2, 0xc7, 0x1d, 0x21, 0x39, 0x0f, 0x80, 0x90, 0xa0, 0x75, 0x00, 0x7f, 0x0c, + 0xd2, 0xcd, 0xbb, 0xcc, 0xf8, 0x1e, 0xf3, 0x47, 0x73, 0xb0, 0x31, 0x01, 0x00, 0xf4, 0x75, 0x30, + 0xd7, 0x31, 0x2d, 0xcd, 0xc1, 0xed, 0x5d, 0x8d, 0x4b, 0x8e, 0xe0, 0x66, 0x8e, 0xdf, 0x9b, 0xb3, + 0x1d, 0xd3, 0x6a, 0xe0, 0xf6, 0xee, 0x8a, 0x87, 0x82, 0xde, 0x0d, 0x67, 0xfc, 0xd6, 0xdb, 0x96, + 0xb6, 0x6f, 0xb7, 0x5b, 0x5a, 0x0f, 0xef, 0x6a, 0x06, 0x7d, 0xdd, 0x2f, 0x4b, 0x65, 0x76, 0xca, + 0x23, 0xd9, 0xb4, 0x56, 0xed, 0x76, 0x4b, 0xc5, 0xbb, 0x55, 0x92, 0x8d, 0x1e, 0x06, 0xbf, 0xe9, + 0x9a, 0xd9, 0x72, 0x8a, 0xb9, 0xc5, 0xe8, 0xb9, 0x98, 0x9a, 0xf5, 0x12, 0xeb, 0x2d, 0x67, 0x39, + 0xf5, 0xe1, 0x4f, 0x2c, 0xcc, 0x7c, 0xf1, 0x13, 0x0b, 0x33, 0xca, 0x55, 0xfa, 0xca, 0x15, 0x1f, + 0x47, 0xd8, 0x41, 0x97, 0x21, 0xad, 0x8b, 0x0f, 0x76, 0x87, 0xed, 0x88, 0x71, 0xe8, 0x93, 0x2a, + 0x3f, 0x2e, 0x41, 0x62, 0xe5, 0xc6, 0x96, 0x6e, 0xf6, 0x50, 0x0d, 0x66, 0x7d, 0xc5, 0x9c, 0x76, + 0x48, 0xfb, 0xba, 0x2c, 0xc6, 0xf4, 0xc6, 0xb8, 0xc3, 0x73, 0xe9, 0xca, 0x43, 0xbf, 0xf1, 0xd9, + 0xa7, 0x1e, 0xe4, 0x30, 0x37, 0x06, 0xce, 0xd1, 0x09, 0xbc, 0xc1, 0xf3, 0x75, 0x81, 0x36, 0x5f, + 0x87, 0x24, 0xab, 0xaa, 0x83, 0x5e, 0x82, 0x78, 0x97, 0xfc, 0xe0, 0x7b, 0x02, 0x67, 0xc7, 0x2a, + 0x38, 0xa5, 0x0f, 0xaa, 0x03, 0xe3, 0x53, 0xbe, 0x2d, 0x02, 0xb0, 0x72, 0xe3, 0x46, 0xb3, 0x67, + 0x76, 0xdb, 0xd8, 0x7d, 0xbb, 0xda, 0xbe, 0x0d, 0x27, 0x02, 0xb7, 0xb3, 0x7b, 0xc6, 0xf1, 0xdb, + 0x3f, 0xe7, 0x5f, 0xd4, 0xee, 0x19, 0x23, 0x61, 0x5b, 0x8e, 0xeb, 0xc1, 0x46, 0x8f, 0x0f, 0xbb, + 0xe2, 0xb8, 0xc3, 0x92, 0x7d, 0x15, 0x32, 0xbe, 0x30, 0x1c, 0x54, 0x87, 0x94, 0xcb, 0x7f, 0x73, + 0x01, 0x2b, 0xe3, 0x05, 0x2c, 0xd8, 0x82, 0x42, 0xf6, 0xd8, 0x95, 0x3f, 0x93, 0x00, 0x02, 0x63, + 0xe4, 0x2f, 0xa6, 0x8e, 0xa1, 0x3a, 0x24, 0xb8, 0x25, 0x8e, 0xde, 0xf7, 0x1b, 0x9c, 0x0c, 0x20, + 0x20, 0xd4, 0xef, 0x88, 0xc0, 0xdc, 0xb6, 0x18, 0xbd, 0x7f, 0xf1, 0x65, 0xb0, 0x0d, 0x49, 0x6c, + 0xb9, 0x3d, 0xd3, 0xdb, 0xd5, 0x7a, 0x7a, 0x5c, 0x9f, 0x8f, 0x68, 0x54, 0xcd, 0x72, 0x7b, 0x87, + 0x41, 0x0d, 0x10, 0x58, 0x01, 0x79, 0x7c, 0x2c, 0x0a, 0xc5, 0x71, 0xac, 0xc4, 0x1b, 0x36, 0x7a, + 0x98, 0x26, 0x84, 0x2f, 0xad, 0xe6, 0x45, 0x32, 0x9f, 0x63, 0x54, 0x20, 0x5e, 0x19, 0x51, 0x2e, + 0x42, 0x7a, 0x7f, 0x6e, 0x58, 0xde, 0x47, 0xa0, 0xb3, 0x4c, 0x13, 0x0a, 0xe2, 0x16, 0xcc, 0x8e, + 0xde, 0xd6, 0x2d, 0x43, 0xb8, 0xab, 0xc7, 0x9a, 0x12, 0xc4, 0x4d, 0x9a, 0x0a, 0x83, 0x40, 0x35, + 0x48, 0x0a, 0xb4, 0xd8, 0xf1, 0xd1, 0x04, 0x2f, 0x7a, 0x08, 0xb2, 0xc1, 0x89, 0x81, 0xba, 0x1e, + 0x31, 0x35, 0x13, 0x98, 0x17, 0x26, 0xcd, 0x3c, 0x89, 0x23, 0x67, 0x1e, 0xee, 0xdd, 0xfd, 0x10, + 0x3d, 0xac, 0xde, 0xfa, 0xcb, 0xdf, 0x2d, 0x5b, 0x00, 0x6c, 0xa8, 0x12, 0x4b, 0xca, 0x7b, 0xe6, + 0x3e, 0xc6, 0x7b, 0x9a, 0x81, 0xac, 0x38, 0xee, 0xd7, 0xaa, 0x87, 0x7e, 0x2b, 0x02, 0xd9, 0x60, + 0x0f, 0xfd, 0x95, 0x9c, 0xb4, 0xd0, 0x86, 0x6f, 0xa6, 0xd8, 0x85, 0x9e, 0xc7, 0xc7, 0x99, 0xa9, + 0x21, 0x6d, 0x9e, 0x60, 0x9f, 0x3e, 0x1e, 0x85, 0x04, 0x3f, 0x71, 0xb7, 0x39, 0xe4, 0xc8, 0x4a, + 0x93, 0x9e, 0x24, 0xc8, 0x89, 0x27, 0x09, 0x46, 0xfa, 0xb1, 0x8f, 0x40, 0x9e, 0x2c, 0x88, 0x43, + 0xc7, 0xf8, 0xa4, 0x73, 0x39, 0xba, 0xae, 0xf5, 0x0f, 0xad, 0xa3, 0x05, 0xc8, 0x10, 0x32, 0xdf, + 0x0e, 0x13, 0x1a, 0xe8, 0xe8, 0x07, 0x35, 0x96, 0x82, 0x9e, 0x02, 0xb4, 0xef, 0x05, 0x26, 0x34, + 0x5f, 0x10, 0x84, 0x6e, 0xd6, 0xcf, 0x11, 0xe4, 0x0f, 0x02, 0x90, 0x5a, 0x68, 0xec, 0xd9, 0x69, + 0xfe, 0xa8, 0x37, 0x49, 0x59, 0xa1, 0x4f, 0x4f, 0x7f, 0xb3, 0xc4, 0xfc, 0xe1, 0x81, 0x65, 0x33, + 0x5f, 0x8e, 0x34, 0xa7, 0x18, 0x14, 0x7f, 0xfc, 0xe6, 0x42, 0xe9, 0x50, 0xef, 0xb4, 0x97, 0x95, + 0x11, 0x38, 0xca, 0xa8, 0x95, 0x3c, 0x71, 0x9c, 0xc3, 0xcb, 0xee, 0xe5, 0x77, 0x11, 0xf5, 0xbe, + 0xfb, 0x7b, 0x3f, 0x75, 0xfe, 0x4c, 0xe0, 0x15, 0xea, 0x03, 0x2f, 0xa0, 0xc6, 0xfa, 0x84, 0x78, + 0xaa, 0xc8, 0x9f, 0x35, 0xbc, 0xb3, 0xfa, 0xeb, 0x00, 0x01, 0x4f, 0x5e, 0x3a, 0x7a, 0x85, 0xe0, + 0xf3, 0x87, 0x56, 0x08, 0x81, 0x31, 0xf5, 0x5e, 0xdf, 0x68, 0x8b, 0x57, 0x28, 0x46, 0xbc, 0x43, + 0xbe, 0x54, 0xb5, 0xcd, 0x10, 0x84, 0x60, 0xa2, 0x43, 0x75, 0x46, 0xf9, 0x37, 0x12, 0x9c, 0x1e, + 0x52, 0x3f, 0xaf, 0xca, 0x06, 0xa0, 0x5e, 0x20, 0x93, 0x76, 0xa3, 0xd8, 0x1c, 0xbe, 0x3f, 0x6d, + 0x9e, 0xed, 0x0d, 0x59, 0xee, 0xb7, 0x67, 0xf6, 0xe1, 0xa6, 0xe7, 0xd7, 0x24, 0x98, 0x0f, 0x56, + 0xc0, 0x6b, 0x4a, 0x03, 0xb2, 0xc1, 0xa2, 0x79, 0x23, 0xde, 0x35, 0x4d, 0x23, 0x82, 0xf5, 0x0f, + 0x81, 0xa0, 0x1b, 0xfe, 0x10, 0x67, 0x91, 0xbc, 0x67, 0xa6, 0x16, 0x8a, 0xa8, 0xd8, 0xc8, 0xa1, + 0xce, 0xfa, 0xe6, 0xf7, 0x25, 0x88, 0x6d, 0xd9, 0x76, 0x1b, 0x7d, 0x00, 0x66, 0x2d, 0xdb, 0xd5, + 0xc8, 0x70, 0xc0, 0x2d, 0x8d, 0x2f, 0xec, 0x99, 0xf9, 0xac, 0x1d, 0x29, 0xab, 0x2f, 0xbd, 0xb9, + 0x30, 0xcc, 0x39, 0xea, 0x25, 0xf8, 0x82, 0x65, 0xbb, 0x15, 0x4a, 0xd4, 0x64, 0x6b, 0xff, 0x5d, + 0xc8, 0x85, 0x8b, 0x63, 0x26, 0xb6, 0x3c, 0xa9, 0xb8, 0xdc, 0xc4, 0xa2, 0xb2, 0x3b, 0x81, 0x72, + 0xd8, 0xc3, 0xce, 0x7f, 0x48, 0x7a, 0xee, 0x26, 0xc8, 0x37, 0x06, 0x0f, 0x1d, 0xd5, 0x20, 0x29, + 0x0e, 0x19, 0x49, 0x53, 0x9e, 0x5f, 0x0a, 0x8a, 0x93, 0xf3, 0x2a, 0x9f, 0x8b, 0xc0, 0xe9, 0xaa, + 0x6d, 0x39, 0x3c, 0x02, 0xc3, 0xff, 0xa2, 0x3e, 0x8b, 0x9b, 0x1e, 0xa2, 0xc7, 0xc7, 0xc5, 0x87, + 0x86, 0xa3, 0x40, 0x37, 0xa0, 0x40, 0xa6, 0x43, 0xc3, 0xb6, 0xde, 0x62, 0x10, 0x28, 0x67, 0xb7, + 0x5b, 0xbc, 0x46, 0xb7, 0xf0, 0x21, 0xc1, 0xb5, 0xf0, 0x9d, 0x10, 0x6e, 0xf4, 0xfe, 0x70, 0x2d, + 0x7c, 0x27, 0x80, 0xeb, 0xef, 0x6f, 0xc7, 0x42, 0xfb, 0xdb, 0x97, 0x21, 0xba, 0x8b, 0xb1, 0xf7, + 0x0e, 0xda, 0x34, 0x76, 0x83, 0x30, 0x04, 0xa6, 0xa0, 0x06, 0x9c, 0xe6, 0xab, 0x7a, 0x67, 0x73, + 0x97, 0x4a, 0x14, 0xd3, 0x06, 0xbd, 0x8c, 0x0f, 0xef, 0x7b, 0x89, 0x7f, 0xfe, 0x67, 0x25, 0x00, + 0x3f, 0x98, 0x85, 0x9e, 0x84, 0x53, 0x95, 0xcd, 0x8d, 0x15, 0xad, 0xd1, 0x2c, 0x37, 0xb7, 0x1b, + 0xe1, 0xbf, 0xf3, 0x22, 0x5e, 0xae, 0x72, 0xba, 0xd8, 0x30, 0x77, 0x4d, 0xdc, 0x42, 0x8f, 0xc2, + 0x7c, 0x98, 0x9a, 0x7c, 0xd5, 0x56, 0x64, 0xa9, 0x94, 0xbd, 0x7b, 0x6f, 0x31, 0xc5, 0xfc, 0x79, + 0xdc, 0x42, 0xe7, 0xe0, 0xc4, 0x30, 0x5d, 0x7d, 0xe3, 0x9a, 0x1c, 0x29, 0xe5, 0xee, 0xde, 0x5b, + 0x4c, 0x7b, 0x8e, 0x3f, 0x52, 0x00, 0x05, 0x29, 0x39, 0x5e, 0xb4, 0x04, 0x77, 0xef, 0x2d, 0x26, + 0xd8, 0x68, 0x29, 0xc5, 0x3e, 0xfc, 0x23, 0x67, 0x67, 0xce, 0x7f, 0x03, 0x40, 0xdd, 0xda, 0xed, + 0xe9, 0x06, 0xb5, 0x0a, 0x25, 0x38, 0x59, 0xdf, 0xb8, 0xaa, 0x96, 0xab, 0xcd, 0xfa, 0xe6, 0xc6, + 0xc0, 0x9f, 0xa7, 0x09, 0xe7, 0xad, 0x6c, 0x6e, 0x57, 0xd6, 0x6a, 0x5a, 0xa3, 0x7e, 0x6d, 0x83, + 0x6d, 0xd3, 0x87, 0xf2, 0xde, 0xb7, 0xd1, 0xac, 0xaf, 0xd7, 0xe4, 0x48, 0xe5, 0xea, 0xd8, 0x6d, + 0xa0, 0x27, 0x8f, 0xfc, 0xfb, 0x08, 0xfe, 0xcc, 0x14, 0xda, 0x0b, 0xfa, 0xbf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x35, 0xa4, 0x0c, 0xc3, 0xf2, 0xa4, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -3606,6 +3713,107 @@ func (m *ValidatorUpdates) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ConsPubKeyRotationHistory) 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 *ConsPubKeyRotationHistory) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ConsPubKeyRotationHistory) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStaking(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if m.Height != 0 { + i = encodeVarintStaking(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x20 + } + if m.NewConsPubkey != nil { + { + size, err := m.NewConsPubkey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStaking(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.OldConsPubkey != nil { + { + size, err := m.OldConsPubkey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintStaking(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.OperatorAddress) > 0 { + i -= len(m.OperatorAddress) + copy(dAtA[i:], m.OperatorAddress) + i = encodeVarintStaking(dAtA, i, uint64(len(m.OperatorAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValAddrsOfRotatedConsKeys) 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 *ValAddrsOfRotatedConsKeys) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValAddrsOfRotatedConsKeys) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Addresses) > 0 { + for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Addresses[iNdEx]) + copy(dAtA[i:], m.Addresses[iNdEx]) + i = encodeVarintStaking(dAtA, i, uint64(len(m.Addresses[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintStaking(dAtA []byte, offset int, v uint64) int { offset -= sovStaking(v) base := offset @@ -4057,6 +4265,47 @@ func (m *ValidatorUpdates) Size() (n int) { return n } +func (m *ConsPubKeyRotationHistory) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.OperatorAddress) + if l > 0 { + n += 1 + l + sovStaking(uint64(l)) + } + if m.OldConsPubkey != nil { + l = m.OldConsPubkey.Size() + n += 1 + l + sovStaking(uint64(l)) + } + if m.NewConsPubkey != nil { + l = m.NewConsPubkey.Size() + n += 1 + l + sovStaking(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovStaking(uint64(m.Height)) + } + l = m.Fee.Size() + n += 1 + l + sovStaking(uint64(l)) + return n +} + +func (m *ValAddrsOfRotatedConsKeys) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Addresses) > 0 { + for _, s := range m.Addresses { + l = len(s) + n += 1 + l + sovStaking(uint64(l)) + } + } + return n +} + func sovStaking(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -7444,6 +7693,294 @@ func (m *ValidatorUpdates) Unmarshal(dAtA []byte) error { } return nil } +func (m *ConsPubKeyRotationHistory) 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 ErrIntOverflowStaking + } + 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: ConsPubKeyRotationHistory: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConsPubKeyRotationHistory: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OperatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + 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 ErrInvalidLengthStaking + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OperatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OldConsPubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStaking + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OldConsPubkey == nil { + m.OldConsPubkey = &types1.Any{} + } + if err := m.OldConsPubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewConsPubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStaking + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NewConsPubkey == nil { + m.NewConsPubkey = &types1.Any{} + } + if err := m.NewConsPubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStaking + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStaking(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStaking + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValAddrsOfRotatedConsKeys) 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 ErrIntOverflowStaking + } + 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: ValAddrsOfRotatedConsKeys: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValAddrsOfRotatedConsKeys: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + 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 ErrInvalidLengthStaking + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStaking(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStaking + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipStaking(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/staking/types/tx.pb.go b/x/staking/types/tx.pb.go index 8e02e3e5b0fe..791db12a9e40 100644 --- a/x/staking/types/tx.pb.go +++ b/x/staking/types/tx.pb.go @@ -649,6 +649,87 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo +// MsgRotateConsPubKey is the Msg/RotateConsPubKey request type. +// +// Since: cosmos-sdk 0.51 +type MsgRotateConsPubKey struct { + ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + NewPubkey *types.Any `protobuf:"bytes,3,opt,name=new_pubkey,json=newPubkey,proto3" json:"new_pubkey,omitempty"` +} + +func (m *MsgRotateConsPubKey) Reset() { *m = MsgRotateConsPubKey{} } +func (m *MsgRotateConsPubKey) String() string { return proto.CompactTextString(m) } +func (*MsgRotateConsPubKey) ProtoMessage() {} +func (*MsgRotateConsPubKey) Descriptor() ([]byte, []int) { + return fileDescriptor_0926ef28816b35ab, []int{14} +} +func (m *MsgRotateConsPubKey) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRotateConsPubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRotateConsPubKey.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 *MsgRotateConsPubKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRotateConsPubKey.Merge(m, src) +} +func (m *MsgRotateConsPubKey) XXX_Size() int { + return m.Size() +} +func (m *MsgRotateConsPubKey) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRotateConsPubKey.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRotateConsPubKey proto.InternalMessageInfo + +// MsgRotateConsPubKeyResponse defines the response structure for executing a +// MsgRotateConsPubKey message. +// +// Since: cosmos-sdk 0.51 +type MsgRotateConsPubKeyResponse struct { +} + +func (m *MsgRotateConsPubKeyResponse) Reset() { *m = MsgRotateConsPubKeyResponse{} } +func (m *MsgRotateConsPubKeyResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRotateConsPubKeyResponse) ProtoMessage() {} +func (*MsgRotateConsPubKeyResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_0926ef28816b35ab, []int{15} +} +func (m *MsgRotateConsPubKeyResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRotateConsPubKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRotateConsPubKeyResponse.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 *MsgRotateConsPubKeyResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRotateConsPubKeyResponse.Merge(m, src) +} +func (m *MsgRotateConsPubKeyResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRotateConsPubKeyResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRotateConsPubKeyResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRotateConsPubKeyResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgCreateValidator)(nil), "cosmos.staking.v1beta1.MsgCreateValidator") proto.RegisterType((*MsgCreateValidatorResponse)(nil), "cosmos.staking.v1beta1.MsgCreateValidatorResponse") @@ -664,84 +745,91 @@ func init() { proto.RegisterType((*MsgCancelUnbondingDelegationResponse)(nil), "cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse") proto.RegisterType((*MsgUpdateParams)(nil), "cosmos.staking.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "cosmos.staking.v1beta1.MsgUpdateParamsResponse") + proto.RegisterType((*MsgRotateConsPubKey)(nil), "cosmos.staking.v1beta1.MsgRotateConsPubKey") + proto.RegisterType((*MsgRotateConsPubKeyResponse)(nil), "cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse") } func init() { proto.RegisterFile("cosmos/staking/v1beta1/tx.proto", fileDescriptor_0926ef28816b35ab) } var fileDescriptor_0926ef28816b35ab = []byte{ - // 1142 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x57, 0x4f, 0x6f, 0xdc, 0x44, - 0x14, 0x5f, 0xef, 0x36, 0x0b, 0x99, 0x90, 0x7f, 0x4e, 0xd2, 0x6e, 0xdc, 0xb2, 0x5b, 0xdc, 0x40, - 0xa2, 0xc0, 0xda, 0x6d, 0x40, 0x20, 0x96, 0x0a, 0x35, 0xdb, 0xb4, 0x50, 0x60, 0x51, 0xe4, 0x90, - 0x22, 0x21, 0xa4, 0x65, 0xd6, 0x9e, 0x78, 0xad, 0x5d, 0x7b, 0x5c, 0xcf, 0x6c, 0xd4, 0xbd, 0x21, - 0x4e, 0xc0, 0x85, 0x7e, 0x81, 0x4a, 0xe5, 0x80, 0x04, 0xb7, 0x1c, 0xf2, 0x15, 0x90, 0x2a, 0x4e, - 0x55, 0x4e, 0xa8, 0x87, 0x80, 0x92, 0x43, 0xfa, 0x1d, 0xb8, 0x20, 0xdb, 0x63, 0xaf, 0xed, 0xfd, - 0x9b, 0x40, 0x2f, 0xbd, 0x24, 0xce, 0xcc, 0xef, 0xfd, 0xe6, 0xbd, 0xf7, 0x7b, 0x6f, 0xe6, 0x05, - 0x14, 0x54, 0x4c, 0x4c, 0x4c, 0x64, 0x42, 0x61, 0xc3, 0xb0, 0x74, 0x79, 0xf7, 0x5a, 0x0d, 0x51, - 0x78, 0x4d, 0xa6, 0xf7, 0x25, 0xdb, 0xc1, 0x14, 0xf3, 0xe7, 0x7d, 0x80, 0xc4, 0x00, 0x12, 0x03, - 0x08, 0x8b, 0x3a, 0xc6, 0x7a, 0x13, 0xc9, 0x1e, 0xaa, 0xd6, 0xda, 0x91, 0xa1, 0xd5, 0xf6, 0x4d, - 0x84, 0x42, 0x72, 0x8b, 0x1a, 0x26, 0x22, 0x14, 0x9a, 0x36, 0x03, 0xcc, 0xeb, 0x58, 0xc7, 0xde, - 0xa7, 0xec, 0x7e, 0xb1, 0xd5, 0x45, 0xff, 0xa4, 0xaa, 0xbf, 0xc1, 0x8e, 0xf5, 0xb7, 0xf2, 0xcc, - 0xcb, 0x1a, 0x24, 0x28, 0x74, 0x51, 0xc5, 0x86, 0xc5, 0xf6, 0x97, 0xfa, 0x44, 0x11, 0x38, 0xed, - 0xa3, 0x2e, 0x30, 0x94, 0x49, 0x5c, 0x84, 0xfb, 0x8b, 0x6d, 0xcc, 0x42, 0xd3, 0xb0, 0xb0, 0xec, - 0xfd, 0xf4, 0x97, 0xc4, 0x7f, 0xce, 0x01, 0xbe, 0x42, 0xf4, 0x9b, 0x0e, 0x82, 0x14, 0xdd, 0x85, - 0x4d, 0x43, 0x83, 0x14, 0x3b, 0xfc, 0x26, 0x98, 0xd0, 0x10, 0x51, 0x1d, 0xc3, 0xa6, 0x06, 0xb6, - 0x72, 0xdc, 0x65, 0x6e, 0x65, 0x62, 0xed, 0x8a, 0xd4, 0x3b, 0x47, 0xd2, 0x46, 0x07, 0x5a, 0x1e, - 0x7f, 0x7c, 0x58, 0x48, 0xfd, 0x7a, 0xb2, 0xb7, 0xca, 0x29, 0x51, 0x0a, 0x5e, 0x01, 0x40, 0xc5, - 0xa6, 0x69, 0x10, 0xe2, 0x12, 0xa6, 0x3d, 0xc2, 0xe5, 0x7e, 0x84, 0x37, 0x43, 0xa4, 0x02, 0x29, - 0x22, 0x51, 0xd2, 0x08, 0x0b, 0xff, 0x0d, 0x98, 0x33, 0x0d, 0xab, 0x4a, 0x50, 0x73, 0xa7, 0xaa, - 0xa1, 0x26, 0xd2, 0xa1, 0xe7, 0x6d, 0xe6, 0x32, 0xb7, 0x32, 0x5e, 0xbe, 0xea, 0xda, 0x3c, 0x3d, - 0x2c, 0x2c, 0xf8, 0x67, 0x10, 0xad, 0x21, 0x19, 0x58, 0x36, 0x21, 0xad, 0x4b, 0x77, 0x2c, 0x7a, - 0xb0, 0x5f, 0x04, 0xec, 0xf0, 0x3b, 0x16, 0xf5, 0xa9, 0x67, 0x4d, 0xc3, 0xda, 0x42, 0xcd, 0x9d, - 0x8d, 0x90, 0x8a, 0xff, 0x08, 0xcc, 0x32, 0x62, 0xec, 0x54, 0xa1, 0xa6, 0x39, 0x88, 0x90, 0xdc, - 0x39, 0x8f, 0x5f, 0x38, 0xd8, 0x2f, 0xce, 0x33, 0x8a, 0x75, 0x7f, 0x67, 0x8b, 0x3a, 0x86, 0xa5, - 0xe7, 0x38, 0x65, 0x26, 0x34, 0x62, 0x3b, 0xfc, 0xe7, 0x60, 0x76, 0x37, 0xc8, 0x6e, 0x48, 0x34, - 0xe6, 0x11, 0xbd, 0x76, 0xb0, 0x5f, 0x7c, 0x95, 0x11, 0x85, 0x0a, 0xc4, 0x18, 0x95, 0x99, 0xdd, - 0xc4, 0x3a, 0x7f, 0x1b, 0x64, 0xed, 0x56, 0xad, 0x81, 0xda, 0xb9, 0xac, 0x97, 0xca, 0x79, 0xc9, - 0x2f, 0x46, 0x29, 0x28, 0x46, 0x69, 0xdd, 0x6a, 0x97, 0x73, 0x7f, 0x74, 0x7c, 0x54, 0x9d, 0xb6, - 0x4d, 0xb1, 0xb4, 0xd9, 0xaa, 0x7d, 0x8a, 0xda, 0x0a, 0xb3, 0xe6, 0x4b, 0x60, 0x6c, 0x17, 0x36, - 0x5b, 0x28, 0xf7, 0x92, 0x47, 0xb3, 0x18, 0x28, 0xe2, 0x56, 0x60, 0x44, 0x0e, 0x23, 0x26, 0xac, - 0x6f, 0x52, 0xba, 0xf1, 0xfd, 0xa3, 0x42, 0xea, 0xd9, 0xa3, 0x42, 0xea, 0xbb, 0x93, 0xbd, 0xd5, - 0xee, 0xf0, 0x7e, 0x3c, 0xd9, 0x5b, 0x65, 0x71, 0x15, 0x89, 0xd6, 0x90, 0xbb, 0xcb, 0x4c, 0xbc, - 0x04, 0x84, 0xee, 0x55, 0x05, 0x11, 0x1b, 0x5b, 0x04, 0x89, 0xbf, 0x64, 0xc0, 0x4c, 0x85, 0xe8, - 0xb7, 0x34, 0x83, 0x3e, 0xcf, 0xca, 0xec, 0x29, 0x4d, 0xfa, 0xec, 0xd2, 0xdc, 0x05, 0xd3, 0x9d, - 0x1a, 0xad, 0x3a, 0x90, 0x22, 0x56, 0x91, 0xc5, 0xa7, 0x87, 0x85, 0x8b, 0xdd, 0xd5, 0xf8, 0x19, - 0xd2, 0xa1, 0xda, 0xde, 0x40, 0x6a, 0xa4, 0x26, 0x37, 0x90, 0xaa, 0x4c, 0xa9, 0xb1, 0x2e, 0xe0, - 0xbf, 0xec, 0x5d, 0xed, 0x7e, 0x35, 0x2e, 0x8f, 0x58, 0xe9, 0x3d, 0x8a, 0xbc, 0xf4, 0xe1, 0x70, - 0x1d, 0x2f, 0xc6, 0x75, 0x8c, 0x49, 0x22, 0x0a, 0x20, 0x97, 0x5c, 0x0b, 0x35, 0x7c, 0x98, 0x06, - 0x13, 0x15, 0xa2, 0xb3, 0xd3, 0x10, 0x7f, 0xab, 0x57, 0x43, 0x71, 0x5e, 0x08, 0xb9, 0x7e, 0x0d, - 0x35, 0x6a, 0x3b, 0xfd, 0x07, 0xcd, 0xae, 0x83, 0x2c, 0x34, 0x71, 0xcb, 0xa2, 0x9e, 0x54, 0xa3, - 0xf6, 0x01, 0xb3, 0x29, 0xbd, 0x1f, 0x4b, 0x60, 0x57, 0x7c, 0x6e, 0x02, 0xcf, 0xc7, 0x13, 0x18, - 0xe4, 0x43, 0x5c, 0x00, 0x73, 0x91, 0x3f, 0xc3, 0xb4, 0xfd, 0x90, 0xf1, 0xae, 0xe5, 0x32, 0xd2, - 0x0d, 0x4b, 0x41, 0xda, 0xff, 0x9c, 0xbd, 0x6d, 0xb0, 0xd0, 0xc9, 0x1e, 0x71, 0xd4, 0xd3, 0x67, - 0x70, 0x2e, 0xb4, 0xdf, 0x72, 0xd4, 0x9e, 0xb4, 0x1a, 0xa1, 0x21, 0x6d, 0xe6, 0xf4, 0xb4, 0x1b, - 0x84, 0x76, 0x6b, 0x73, 0xee, 0x0c, 0xda, 0xdc, 0x18, 0xae, 0x4d, 0xe2, 0x92, 0x4a, 0x24, 0x5d, - 0xb4, 0xbd, 0x4b, 0x2a, 0xb1, 0x1a, 0x28, 0xc5, 0x2b, 0x5e, 0xb7, 0xdb, 0x4d, 0xe4, 0xb6, 0x52, - 0xd5, 0x9d, 0x00, 0xd8, 0x9d, 0x24, 0x74, 0xdd, 0xc8, 0x5f, 0x04, 0xe3, 0x41, 0x79, 0xd2, 0xf5, - 0xf3, 0xc1, 0x5f, 0x05, 0xce, 0xf7, 0x75, 0xaa, 0xc3, 0xe0, 0x62, 0xc4, 0x9f, 0xd3, 0x60, 0xb2, - 0x42, 0xf4, 0x6d, 0x4b, 0x7b, 0xa1, 0xdb, 0xe6, 0x83, 0xe1, 0xd2, 0xe4, 0xe2, 0xd2, 0x74, 0x32, - 0x22, 0xfe, 0xc6, 0x81, 0x85, 0xd8, 0xca, 0xf3, 0x54, 0x24, 0x12, 0x68, 0xfa, 0xf4, 0x81, 0x8a, - 0xcf, 0xd2, 0xe0, 0x92, 0xfb, 0xce, 0x41, 0x4b, 0x45, 0xcd, 0x6d, 0xab, 0x86, 0x2d, 0xcd, 0xb0, - 0xf4, 0xc8, 0x98, 0xf1, 0x22, 0xca, 0xcb, 0x2f, 0x83, 0x69, 0xd5, 0x7d, 0xd9, 0x5d, 0x15, 0xea, - 0xc8, 0xd0, 0xeb, 0x7e, 0x03, 0x67, 0x94, 0xa9, 0x60, 0xf9, 0x63, 0x6f, 0xb5, 0xf4, 0xc9, 0xf0, - 0x3a, 0x58, 0x4e, 0xcc, 0x11, 0xfd, 0x32, 0x29, 0xbe, 0x01, 0x96, 0x06, 0xed, 0x87, 0x17, 0xec, - 0xef, 0x1c, 0x98, 0x76, 0xcb, 0xc7, 0xd6, 0x20, 0x45, 0x9b, 0xd0, 0x81, 0x26, 0xe1, 0xdf, 0x05, - 0xe3, 0xb0, 0x45, 0xeb, 0xd8, 0x31, 0x68, 0x7b, 0x68, 0xf6, 0x3b, 0x50, 0x7e, 0x1d, 0x64, 0x6d, - 0x8f, 0x81, 0x15, 0x47, 0xbe, 0xdf, 0x34, 0xe2, 0x9f, 0x13, 0xcb, 0x95, 0x6f, 0x58, 0x7a, 0xcf, - 0x0d, 0xbd, 0x43, 0xe9, 0x86, 0xbc, 0x14, 0x09, 0xf9, 0x7e, 0x38, 0xf1, 0x27, 0x7c, 0x16, 0x17, - 0xc1, 0x85, 0xc4, 0x52, 0x10, 0xe2, 0xda, 0xc3, 0x2c, 0xc8, 0x54, 0x88, 0xce, 0xdf, 0x03, 0xd3, - 0xc9, 0xf1, 0x7e, 0xb5, 0x9f, 0x87, 0xdd, 0xd3, 0x98, 0xb0, 0x36, 0x3a, 0x36, 0x6c, 0xc1, 0x06, - 0x98, 0x8c, 0x4f, 0x6d, 0x2b, 0x03, 0x48, 0x62, 0x48, 0xe1, 0xea, 0xa8, 0xc8, 0xf0, 0xb0, 0xaf, - 0xc1, 0xcb, 0xe1, 0x78, 0x71, 0x65, 0x80, 0x75, 0x00, 0x12, 0xde, 0x1c, 0x01, 0x14, 0xb2, 0xdf, - 0x03, 0xd3, 0xc9, 0x57, 0x78, 0x50, 0xf6, 0x12, 0xd8, 0x81, 0xd9, 0xeb, 0xf7, 0xa4, 0xd4, 0x00, - 0x88, 0x5c, 0xfd, 0xaf, 0x0f, 0x60, 0xe8, 0xc0, 0x84, 0xe2, 0x48, 0xb0, 0xf0, 0x8c, 0x9f, 0x38, - 0xb0, 0xd8, 0xff, 0x3e, 0x7a, 0x67, 0x90, 0xe6, 0xfd, 0xac, 0x84, 0xeb, 0x67, 0xb1, 0x0a, 0x3d, - 0xaa, 0x83, 0x57, 0x62, 0xdd, 0xb8, 0x3c, 0x28, 0xa0, 0x08, 0x50, 0x90, 0x47, 0x04, 0x06, 0x27, - 0x09, 0x63, 0xdf, 0xba, 0xbd, 0x57, 0xbe, 0xfd, 0xf8, 0x28, 0xcf, 0x3d, 0x39, 0xca, 0x73, 0x7f, - 0x1f, 0xe5, 0xb9, 0x07, 0xc7, 0xf9, 0xd4, 0x93, 0xe3, 0x7c, 0xea, 0xcf, 0xe3, 0x7c, 0xea, 0xab, - 0xb7, 0x74, 0x83, 0xd6, 0x5b, 0x35, 0x49, 0xc5, 0x26, 0xfb, 0xff, 0x5c, 0xee, 0xd9, 0x8c, 0xb4, - 0x6d, 0x23, 0x52, 0xcb, 0x7a, 0xcf, 0xc9, 0xdb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x91, - 0x57, 0x78, 0x63, 0x10, 0x00, 0x00, + // 1217 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xf7, 0xda, 0x6d, 0xfa, 0xcd, 0xe4, 0x9b, 0x5f, 0x9b, 0xa4, 0x75, 0x36, 0xad, 0x5d, 0xb6, + 0x81, 0x44, 0x01, 0xaf, 0xdb, 0x14, 0x81, 0x30, 0x15, 0x6a, 0x9c, 0xb4, 0x50, 0xc0, 0x28, 0xda, + 0x90, 0x22, 0x21, 0x24, 0x33, 0xde, 0x9d, 0xac, 0x57, 0xf1, 0xce, 0xb8, 0x3b, 0xe3, 0xb4, 0xbe, + 0x21, 0x4e, 0xc0, 0x85, 0x4a, 0x9c, 0x91, 0xca, 0x01, 0x09, 0x6e, 0x39, 0xe4, 0x5f, 0x40, 0xaa, + 0x38, 0x55, 0x39, 0xa1, 0x1e, 0x02, 0x4a, 0x0e, 0xe9, 0x7f, 0xc0, 0x81, 0x0b, 0xda, 0xdd, 0xd9, + 0xf5, 0xee, 0xfa, 0x67, 0x42, 0x7b, 0xe9, 0x25, 0x71, 0xde, 0x7c, 0xde, 0x67, 0xe6, 0xbd, 0xcf, + 0x9b, 0x37, 0x2f, 0x06, 0x59, 0x8d, 0x50, 0x8b, 0xd0, 0x3c, 0x65, 0x70, 0xdb, 0xc4, 0x46, 0x7e, + 0xe7, 0x5a, 0x05, 0x31, 0x78, 0x2d, 0xcf, 0x1e, 0x28, 0x75, 0x9b, 0x30, 0x22, 0x9e, 0xf7, 0x00, + 0x0a, 0x07, 0x28, 0x1c, 0x20, 0xcd, 0x1a, 0x84, 0x18, 0x35, 0x94, 0x77, 0x51, 0x95, 0xc6, 0x56, + 0x1e, 0xe2, 0xa6, 0xe7, 0x22, 0x65, 0xe3, 0x4b, 0xcc, 0xb4, 0x10, 0x65, 0xd0, 0xaa, 0x73, 0xc0, + 0xb4, 0x41, 0x0c, 0xe2, 0x7e, 0xcc, 0x3b, 0x9f, 0xb8, 0x75, 0xd6, 0xdb, 0xa9, 0xec, 0x2d, 0xf0, + 0x6d, 0xbd, 0xa5, 0x0c, 0x3f, 0x65, 0x05, 0x52, 0x14, 0x1c, 0x51, 0x23, 0x26, 0xe6, 0xeb, 0xf3, + 0x5d, 0xa2, 0xf0, 0x0f, 0xed, 0xa1, 0x2e, 0x70, 0x94, 0x45, 0x1d, 0x84, 0xf3, 0x8b, 0x2f, 0x4c, + 0x42, 0xcb, 0xc4, 0x24, 0xef, 0xfe, 0xf4, 0x4c, 0xf2, 0x3f, 0x67, 0x80, 0x58, 0xa2, 0xc6, 0xaa, + 0x8d, 0x20, 0x43, 0x77, 0x61, 0xcd, 0xd4, 0x21, 0x23, 0xb6, 0xb8, 0x0e, 0x46, 0x74, 0x44, 0x35, + 0xdb, 0xac, 0x33, 0x93, 0xe0, 0xb4, 0x70, 0x59, 0x58, 0x1c, 0x59, 0xbe, 0xa2, 0x74, 0xce, 0x91, + 0xb2, 0xd6, 0x82, 0x16, 0x87, 0x1f, 0x1f, 0x64, 0x13, 0xbf, 0x1c, 0xef, 0x2e, 0x09, 0x6a, 0x98, + 0x42, 0x54, 0x01, 0xd0, 0x88, 0x65, 0x99, 0x94, 0x3a, 0x84, 0x49, 0x97, 0x70, 0xa1, 0x1b, 0xe1, + 0x6a, 0x80, 0x54, 0x21, 0x43, 0x34, 0x4c, 0x1a, 0x62, 0x11, 0xbf, 0x04, 0x53, 0x96, 0x89, 0xcb, + 0x14, 0xd5, 0xb6, 0xca, 0x3a, 0xaa, 0x21, 0x03, 0xba, 0xa7, 0x4d, 0x5d, 0x16, 0x16, 0x87, 0x8b, + 0x57, 0x1d, 0x9f, 0xa7, 0x07, 0xd9, 0x19, 0x6f, 0x0f, 0xaa, 0x6f, 0x2b, 0x26, 0xc9, 0x5b, 0x90, + 0x55, 0x95, 0x3b, 0x98, 0xed, 0xef, 0xe5, 0x00, 0xdf, 0xfc, 0x0e, 0x66, 0x1e, 0xf5, 0xa4, 0x65, + 0xe2, 0x0d, 0x54, 0xdb, 0x5a, 0x0b, 0xa8, 0xc4, 0xf7, 0xc1, 0x24, 0x27, 0x26, 0x76, 0x19, 0xea, + 0xba, 0x8d, 0x28, 0x4d, 0x9f, 0x71, 0xf9, 0xa5, 0xfd, 0xbd, 0xdc, 0x34, 0xa7, 0x58, 0xf1, 0x56, + 0x36, 0x98, 0x6d, 0x62, 0x23, 0x2d, 0xa8, 0x13, 0x81, 0x13, 0x5f, 0x11, 0x3f, 0x01, 0x93, 0x3b, + 0x7e, 0x76, 0x03, 0xa2, 0xb3, 0x2e, 0xd1, 0x2b, 0xfb, 0x7b, 0xb9, 0x4b, 0x9c, 0x28, 0x50, 0x20, + 0xc2, 0xa8, 0x4e, 0xec, 0xc4, 0xec, 0xe2, 0x6d, 0x30, 0x54, 0x6f, 0x54, 0xb6, 0x51, 0x33, 0x3d, + 0xe4, 0xa6, 0x72, 0x5a, 0xf1, 0x8a, 0x51, 0xf1, 0x8b, 0x51, 0x59, 0xc1, 0xcd, 0x62, 0xfa, 0xf7, + 0xd6, 0x19, 0x35, 0xbb, 0x59, 0x67, 0x44, 0x59, 0x6f, 0x54, 0x3e, 0x42, 0x4d, 0x95, 0x7b, 0x8b, + 0x05, 0x70, 0x76, 0x07, 0xd6, 0x1a, 0x28, 0x7d, 0xce, 0xa5, 0x99, 0xf5, 0x15, 0x71, 0x2a, 0x30, + 0x24, 0x87, 0x19, 0x11, 0xd6, 0x73, 0x29, 0xdc, 0xfc, 0xe6, 0x51, 0x36, 0xf1, 0xec, 0x51, 0x36, + 0xf1, 0xf5, 0xf1, 0xee, 0x52, 0x7b, 0x78, 0xdf, 0x1d, 0xef, 0x2e, 0xf1, 0xb8, 0x72, 0x54, 0xdf, + 0xce, 0xb7, 0x97, 0x99, 0x7c, 0x11, 0x48, 0xed, 0x56, 0x15, 0xd1, 0x3a, 0xc1, 0x14, 0xc9, 0x3f, + 0xa7, 0xc0, 0x44, 0x89, 0x1a, 0xb7, 0x74, 0x93, 0xbd, 0xc8, 0xca, 0xec, 0x28, 0x4d, 0xf2, 0xf4, + 0xd2, 0xdc, 0x05, 0xe3, 0xad, 0x1a, 0x2d, 0xdb, 0x90, 0x21, 0x5e, 0x91, 0xb9, 0xa7, 0x07, 0xd9, + 0xb9, 0xf6, 0x6a, 0xfc, 0x18, 0x19, 0x50, 0x6b, 0xae, 0x21, 0x2d, 0x54, 0x93, 0x6b, 0x48, 0x53, + 0xc7, 0xb4, 0xc8, 0x2d, 0x10, 0x3f, 0xeb, 0x5c, 0xed, 0x5e, 0x35, 0x2e, 0x0c, 0x58, 0xe9, 0x1d, + 0x8a, 0xbc, 0xf0, 0x5e, 0x7f, 0x1d, 0xe7, 0xa2, 0x3a, 0x46, 0x24, 0x91, 0x25, 0x90, 0x8e, 0xdb, + 0x02, 0x0d, 0x7f, 0x4c, 0x82, 0x91, 0x12, 0x35, 0xf8, 0x6e, 0x48, 0xbc, 0xd5, 0xe9, 0x42, 0x09, + 0x6e, 0x08, 0xe9, 0x6e, 0x17, 0x6a, 0xd0, 0xeb, 0xf4, 0x1f, 0x34, 0xbb, 0x01, 0x86, 0xa0, 0x45, + 0x1a, 0x98, 0xb9, 0x52, 0x0d, 0x7a, 0x0f, 0xb8, 0x4f, 0xe1, 0x9d, 0x48, 0x02, 0xdb, 0xe2, 0x73, + 0x12, 0x78, 0x3e, 0x9a, 0x40, 0x3f, 0x1f, 0xf2, 0x0c, 0x98, 0x0a, 0xfd, 0x19, 0xa4, 0xed, 0xdb, + 0x94, 0xdb, 0x96, 0x8b, 0xc8, 0x30, 0xb1, 0x8a, 0xf4, 0xe7, 0x9c, 0xbd, 0x4d, 0x30, 0xd3, 0xca, + 0x1e, 0xb5, 0xb5, 0x93, 0x67, 0x70, 0x2a, 0xf0, 0xdf, 0xb0, 0xb5, 0x8e, 0xb4, 0x3a, 0x65, 0x01, + 0x6d, 0xea, 0xe4, 0xb4, 0x6b, 0x94, 0xb5, 0x6b, 0x73, 0xe6, 0x14, 0xda, 0xdc, 0xec, 0xaf, 0x4d, + 0xac, 0x49, 0xc5, 0x92, 0x2e, 0xd7, 0xdd, 0x26, 0x15, 0xb3, 0xfa, 0x4a, 0x89, 0xaa, 0x7b, 0xdb, + 0xeb, 0x35, 0xe4, 0x5c, 0xa5, 0xb2, 0x33, 0x01, 0xf0, 0x9e, 0x24, 0xb5, 0x75, 0xe4, 0x4f, 0xfd, + 0xf1, 0xa0, 0x38, 0xea, 0x9c, 0xf3, 0xe1, 0x9f, 0x59, 0xc1, 0x3b, 0xeb, 0x58, 0x8b, 0xc1, 0xc1, + 0xc8, 0x3f, 0x25, 0xc1, 0x68, 0x89, 0x1a, 0x9b, 0x58, 0x7f, 0xa9, 0xaf, 0xcd, 0xbb, 0xfd, 0xa5, + 0x49, 0x47, 0xa5, 0x69, 0x65, 0x44, 0xfe, 0x55, 0x00, 0x33, 0x11, 0xcb, 0x8b, 0x54, 0x24, 0x14, + 0x68, 0xf2, 0xe4, 0x81, 0xca, 0xcf, 0x92, 0xe0, 0xa2, 0xf3, 0xce, 0x41, 0xac, 0xa1, 0xda, 0x26, + 0xae, 0x10, 0xac, 0x9b, 0xd8, 0x08, 0x8d, 0x19, 0x2f, 0xa3, 0xbc, 0xe2, 0x02, 0x18, 0xd7, 0x9c, + 0x97, 0xdd, 0x51, 0xa1, 0x8a, 0x4c, 0xa3, 0xea, 0x5d, 0xe0, 0x94, 0x3a, 0xe6, 0x9b, 0x3f, 0x70, + 0xad, 0x85, 0x0f, 0xfb, 0xd7, 0xc1, 0x42, 0x6c, 0x8e, 0xe8, 0x96, 0x49, 0xf9, 0x35, 0x30, 0xdf, + 0x6b, 0x3d, 0x68, 0xb0, 0xbf, 0x09, 0x60, 0xdc, 0x29, 0x9f, 0xba, 0x0e, 0x19, 0x5a, 0x87, 0x36, + 0xb4, 0xa8, 0xf8, 0x16, 0x18, 0x86, 0x0d, 0x56, 0x25, 0xb6, 0xc9, 0x9a, 0x7d, 0xb3, 0xdf, 0x82, + 0x8a, 0x2b, 0x60, 0xa8, 0xee, 0x32, 0xf0, 0xe2, 0xc8, 0x74, 0x9b, 0x46, 0xbc, 0x7d, 0x22, 0xb9, + 0xf2, 0x1c, 0x0b, 0x6f, 0x3b, 0xa1, 0xb7, 0x28, 0x9d, 0x90, 0xe7, 0x43, 0x21, 0x3f, 0x08, 0x26, + 0xfe, 0xd8, 0x99, 0xe5, 0x59, 0x70, 0x21, 0x66, 0x0a, 0x42, 0xfc, 0x5b, 0x70, 0xdf, 0x16, 0x95, + 0x30, 0xc8, 0xd0, 0x2a, 0xc1, 0xd4, 0x1b, 0xfd, 0x9e, 0x7b, 0x95, 0x94, 0x00, 0xc0, 0xe8, 0x7e, + 0x99, 0x8f, 0xa3, 0xa9, 0x53, 0x8d, 0xa3, 0xc3, 0x18, 0xdd, 0x5f, 0x77, 0x09, 0x0a, 0x2b, 0xfd, + 0xa7, 0x91, 0x4c, 0xb4, 0x1a, 0xe2, 0x11, 0xca, 0x97, 0xc0, 0x5c, 0x07, 0xb3, 0x9f, 0x98, 0xe5, + 0x1f, 0xce, 0x81, 0x54, 0x89, 0x1a, 0xe2, 0x3d, 0x30, 0x1e, 0xff, 0xbf, 0x67, 0xa9, 0x9b, 0x74, + 0xed, 0x63, 0xaa, 0xb4, 0x3c, 0x38, 0x36, 0xe8, 0x4d, 0xdb, 0x60, 0x34, 0x3a, 0xce, 0x2e, 0xf6, + 0x20, 0x89, 0x20, 0xa5, 0xab, 0x83, 0x22, 0x83, 0xcd, 0xbe, 0x00, 0xff, 0x0b, 0xe6, 0xae, 0x2b, + 0x3d, 0xbc, 0x7d, 0x90, 0xf4, 0xfa, 0x00, 0xa0, 0x80, 0xfd, 0x1e, 0x18, 0x8f, 0x8f, 0x27, 0xbd, + 0xb2, 0x17, 0xc3, 0xf6, 0xcc, 0x5e, 0xb7, 0xb7, 0xb6, 0x02, 0x40, 0xe8, 0x4d, 0x7c, 0xb5, 0x07, + 0x43, 0x0b, 0x26, 0xe5, 0x06, 0x82, 0x05, 0x7b, 0x7c, 0x2f, 0x80, 0xd9, 0xee, 0x8d, 0xfa, 0xcd, + 0x5e, 0x9a, 0x77, 0xf3, 0x92, 0x6e, 0x9c, 0xc6, 0x2b, 0x38, 0x51, 0x15, 0xfc, 0x3f, 0xd2, 0xa6, + 0x16, 0x7a, 0x05, 0x14, 0x02, 0x4a, 0xf9, 0x01, 0x81, 0xc1, 0x4e, 0x0c, 0x4c, 0xb4, 0x75, 0x8b, + 0x5e, 0x35, 0x11, 0x07, 0x4b, 0xd7, 0x4f, 0x00, 0xf6, 0x77, 0x95, 0xce, 0x7e, 0xe5, 0xb4, 0xc2, + 0xe2, 0xed, 0xc7, 0x87, 0x19, 0xe1, 0xc9, 0x61, 0x46, 0xf8, 0xeb, 0x30, 0x23, 0x3c, 0x3c, 0xca, + 0x24, 0x9e, 0x1c, 0x65, 0x12, 0x7f, 0x1c, 0x65, 0x12, 0x9f, 0xbf, 0x61, 0x98, 0xac, 0xda, 0xa8, + 0x28, 0x1a, 0xb1, 0xf8, 0xd7, 0x25, 0xf9, 0x8e, 0xbd, 0x91, 0x35, 0xeb, 0x88, 0x56, 0x86, 0xdc, + 0x96, 0x73, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x89, 0x9a, 0x5a, 0xa8, 0xf2, 0x11, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -778,6 +866,10 @@ type MsgClient interface { // parameters. // Since: cosmos-sdk 0.47 UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + // RotateConsPubKey defines an operation for rotating the consensus keys + // of a validator. + // Since: cosmos-sdk 0.48 + RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error) } type msgClient struct { @@ -851,6 +943,15 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts return out, nil } +func (c *msgClient) RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error) { + out := new(MsgRotateConsPubKeyResponse) + err := c.cc.Invoke(ctx, "/cosmos.staking.v1beta1.Msg/RotateConsPubKey", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // CreateValidator defines a method for creating a new validator. @@ -875,6 +976,10 @@ type MsgServer interface { // parameters. // Since: cosmos-sdk 0.47 UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + // RotateConsPubKey defines an operation for rotating the consensus keys + // of a validator. + // Since: cosmos-sdk 0.48 + RotateConsPubKey(context.Context, *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -902,6 +1007,9 @@ func (*UnimplementedMsgServer) CancelUnbondingDelegation(ctx context.Context, re func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") } +func (*UnimplementedMsgServer) RotateConsPubKey(ctx context.Context, req *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RotateConsPubKey not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -1033,6 +1141,24 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Msg_RotateConsPubKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRotateConsPubKey) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RotateConsPubKey(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cosmos.staking.v1beta1.Msg/RotateConsPubKey", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RotateConsPubKey(ctx, req.(*MsgRotateConsPubKey)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "cosmos.staking.v1beta1.Msg", HandlerType: (*MsgServer)(nil), @@ -1065,6 +1191,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateParams", Handler: _Msg_UpdateParams_Handler, }, + { + MethodName: "RotateConsPubKey", + Handler: _Msg_RotateConsPubKey_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cosmos/staking/v1beta1/tx.proto", @@ -1650,6 +1780,71 @@ func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *MsgRotateConsPubKey) 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 *MsgRotateConsPubKey) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRotateConsPubKey) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NewPubkey != nil { + { + size, err := m.NewPubkey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.ValidatorAddress) > 0 { + i -= len(m.ValidatorAddress) + copy(dAtA[i:], m.ValidatorAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.ValidatorAddress))) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + +func (m *MsgRotateConsPubKeyResponse) 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 *MsgRotateConsPubKeyResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRotateConsPubKeyResponse) 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 @@ -1880,6 +2075,32 @@ func (m *MsgUpdateParamsResponse) Size() (n int) { return n } +func (m *MsgRotateConsPubKey) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ValidatorAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.NewPubkey != nil { + l = m.NewPubkey.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgRotateConsPubKeyResponse) 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 } @@ -3559,6 +3780,174 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgRotateConsPubKey) 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: MsgRotateConsPubKey: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRotateConsPubKey: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", 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.ValidatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewPubkey", 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 m.NewPubkey == nil { + m.NewPubkey = &types.Any{} + } + if err := m.NewPubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgRotateConsPubKeyResponse) 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: MsgRotateConsPubKeyResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRotateConsPubKeyResponse: 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 diff --git a/x/tx/CHANGELOG.md b/x/tx/CHANGELOG.md index 0a6c6c6cc66c..44157179e329 100644 --- a/x/tx/CHANGELOG.md +++ b/x/tx/CHANGELOG.md @@ -31,6 +31,12 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## [Unreleased] +## v0.11.0 + +### Improvements + +* [#17787](https://github.com/cosmos/cosmos-sdk/pull/17787) Drop tip support. + ## v0.10.0 ### Features @@ -81,18 +87,18 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements * [#15871](https://github.com/cosmos/cosmos-sdk/pull/15871) - * `HandlerMap` now has a `DefaultMode()` getter method - * Textual types use `signing.ProtoFileResolver` instead of `protoregistry.Files` + * `HandlerMap` now has a `DefaultMode()` getter method + * Textual types use `signing.ProtoFileResolver` instead of `protoregistry.Files` ## v0.6.0 ### API Breaking * [#15709](https://github.com/cosmos/cosmos-sdk/pull/15709): - * `GetSignersContext` has been renamed to `signing.Context` - * `GetSigners` now returns `[][]byte` instead of `[]string` - * `GetSignersOptions` has been renamed to `signing.Options` and requires `address.Codec`s for account and validator addresses - * `GetSignersOptions.ProtoFiles` has been renamed to `signing.Options.FileResolver` + * `GetSignersContext` has been renamed to `signing.Context` + * `GetSigners` now returns `[][]byte` instead of `[]string` + * `GetSignersOptions` has been renamed to `signing.Options` and requires `address.Codec`s for account and validator addresses + * `GetSignersOptions.ProtoFiles` has been renamed to `signing.Options.FileResolver` ### Bug Fixes diff --git a/x/tx/go.mod b/x/tx/go.mod index 99d8d0ff8241..db308f3ccf16 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/tx go 1.21 require ( - cosmossdk.io/api v0.7.1 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.11.0 cosmossdk.io/errors v1.0.0 cosmossdk.io/math v1.1.3-rc.1 @@ -28,9 +28,9 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect - google.golang.org/grpc v1.58.3 // indirect + google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect + google.golang.org/grpc v1.59.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/x/tx/go.sum b/x/tx/go.sum index 3a7834e29ebf..d281f2503a0d 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -1,5 +1,5 @@ -cosmossdk.io/api v0.7.1 h1:PNQ1xN8+/0hj/sSD0ANqjkgfXFys+bZ5L8Hg7uzoUTU= -cosmossdk.io/api v0.7.1/go.mod h1:ure9edhcROIHsngavM6mBLilMGFnfjhV/AaYhEMUkdo= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= @@ -54,14 +54,14 @@ golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4ObdHoYNwuO24BEZjSzbh+zPaNWoiY8= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff --git a/x/upgrade/go.mod b/x/upgrade/go.mod index 1e3b4a1cba36..f189978a0e16 100644 --- a/x/upgrade/go.mod +++ b/x/upgrade/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/upgrade go 1.21 require ( - cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 + cosmossdk.io/api v0.7.2 cosmossdk.io/core v0.12.0 cosmossdk.io/depinject v1.0.0-alpha.4 cosmossdk.io/errors v1.0.0 @@ -23,7 +23,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/protobuf v1.31.0 ) @@ -35,7 +35,7 @@ require ( cloud.google.com/go/storage v1.33.0 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/math v1.1.3-rc.1 // indirect - cosmossdk.io/x/tx v0.10.0 // indirect + cosmossdk.io/x/tx v0.11.0 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -60,7 +60,7 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.13.1 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect @@ -81,7 +81,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect @@ -122,7 +122,7 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -154,8 +154,8 @@ require ( github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.7.0 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.2 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -171,7 +171,7 @@ require ( google.golang.org/api v0.147.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/x/upgrade/go.sum b/x/upgrade/go.sum index 0fec0db9d13b..e2ccbe6d58da 100644 --- a/x/upgrade/go.sum +++ b/x/upgrade/go.sum @@ -187,8 +187,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273 h1:rNTYK/OQQ5B8jNY0wGSOv+64Fwm7DG8Yke5eRmdTPqk= -cosmossdk.io/api v0.7.2-0.20230927090904-9dd34510e273/go.mod h1:RgzIuGUBiX4E4imKHFyxl+uSKU+qs2v0W2ymVoGoyQQ= +cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4= +cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU= @@ -205,8 +205,8 @@ cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 h1:XQJj9Dv9Gtze0l2TF79BU5lkP6MkUveTUuKICmxoz+o= cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190/go.mod h1:7WUGupOvmlHJoIMBz1JbObQxeo6/TDiuDBxmtod8HRg= -cosmossdk.io/x/tx v0.10.0 h1:LxWF/hksVDbeQmFj4voLM5ZCHyVZ1cCNIqKenfH9plc= -cosmossdk.io/x/tx v0.10.0/go.mod h1:MKo9/b5wsoL8dd9y9pvD2yOP1CMvzHIWYxi1l2oLPFo= +cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= +cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -358,8 +358,8 @@ github.com/cosmos/iavl v1.0.0-rc.1 h1:5+73BEWW1gZOIUJKlk/1fpD4lOqqeFBA8KuV+NpkCp github.com/cosmos/iavl v1.0.0-rc.1/go.mod h1:CmTGqMnRnucjxbjduneZXT+0vPgNElYvdefjX2q9tYc= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.13.1 h1:12ac9+GwBb9BjP7X5ygpFk09Itwzjzfmg6A2CWFjoVs= -github.com/cosmos/ledger-cosmos-go v0.13.1/go.mod h1:5tv2RVJEd2+Y38TIQN4CRjJeQGyqOEiKJDfqhk5UjqE= +github.com/cosmos/ledger-cosmos-go v0.13.2 h1:aY0KZSmUwNKbBm9OvbIjvf7Ozz2YzzpAbgvN2C8x2T0= +github.com/cosmos/ledger-cosmos-go v0.13.2/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -490,8 +490,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -766,8 +766,9 @@ github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -1022,10 +1023,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.2 h1:NDaba434N7JUVKg4P4nFv6TOjSkUosYb9sdiw3c61Zk= -github.com/zondax/ledger-go v0.14.2/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= @@ -1610,8 +1611,8 @@ google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a h1:fwgW9j3vHirt4Ob google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a h1:a2MQQVoTo96JC9PMGtGBymLp7+/RzpFc2yX/9WfFg1c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1653,8 +1654,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=