diff --git a/Makefile b/Makefile index a4999962..fa6a5b8f 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ proto-pulsar-gen: @$(protoImage) sh ./scripts/protocgen-pulsar.sh proto-format: - @$(protoImage) find ./proto -name "*.proto" -exec clang-format -i {} \; + @$(protoImage) find ./proto -name "*.proto" -exec buf format {} -w \; proto-lint: @$(protoImage) buf lint --error-format=json ./proto diff --git a/api/opinit/ophost/v1/auth.pulsar.go b/api/opinit/ophost/v1/auth.pulsar.go index 998d8c72..ae55d71e 100644 --- a/api/opinit/ophost/v1/auth.pulsar.go +++ b/api/opinit/ophost/v1/auth.pulsar.go @@ -506,10 +506,10 @@ var file_opinit_ophost_v1_auth_proto_rawDesc = []byte{ 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, - 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x79, 0x0a, 0x0d, 0x42, 0x72, 0x69, 0x64, + 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x79, 0x0a, 0x0d, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, diff --git a/api/opinit/ophost/v1/tx.pulsar.go b/api/opinit/ophost/v1/tx.pulsar.go index 88ace50f..bccaef9d 100644 --- a/api/opinit/ophost/v1/tx.pulsar.go +++ b/api/opinit/ophost/v1/tx.pulsar.go @@ -7182,76 +7182,30 @@ func (x *fastReflection_MsgUpdateProposerResponse) ProtoMethods() *protoiface.Me } } -var _ protoreflect.List = (*_MsgUpdateChallengers_3_list)(nil) - -type _MsgUpdateChallengers_3_list struct { - list *[]string -} - -func (x *_MsgUpdateChallengers_3_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_MsgUpdateChallengers_3_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfString((*x.list)[i]) -} - -func (x *_MsgUpdateChallengers_3_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - (*x.list)[i] = concreteValue -} - -func (x *_MsgUpdateChallengers_3_list) Append(value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - *x.list = append(*x.list, concreteValue) -} - -func (x *_MsgUpdateChallengers_3_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message MsgUpdateChallengers at list field NewChallengers as it is not of Message kind")) -} - -func (x *_MsgUpdateChallengers_3_list) Truncate(n int) { - *x.list = (*x.list)[:n] -} - -func (x *_MsgUpdateChallengers_3_list) NewElement() protoreflect.Value { - v := "" - return protoreflect.ValueOfString(v) -} - -func (x *_MsgUpdateChallengers_3_list) IsValid() bool { - return x.list != nil -} - var ( - md_MsgUpdateChallengers protoreflect.MessageDescriptor - fd_MsgUpdateChallengers_authority protoreflect.FieldDescriptor - fd_MsgUpdateChallengers_bridge_id protoreflect.FieldDescriptor - fd_MsgUpdateChallengers_new_challengers protoreflect.FieldDescriptor + md_MsgUpdateChallenger protoreflect.MessageDescriptor + fd_MsgUpdateChallenger_authority protoreflect.FieldDescriptor + fd_MsgUpdateChallenger_bridge_id protoreflect.FieldDescriptor + fd_MsgUpdateChallenger_challenger protoreflect.FieldDescriptor ) func init() { file_opinit_ophost_v1_tx_proto_init() - md_MsgUpdateChallengers = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgUpdateChallengers") - fd_MsgUpdateChallengers_authority = md_MsgUpdateChallengers.Fields().ByName("authority") - fd_MsgUpdateChallengers_bridge_id = md_MsgUpdateChallengers.Fields().ByName("bridge_id") - fd_MsgUpdateChallengers_new_challengers = md_MsgUpdateChallengers.Fields().ByName("new_challengers") + md_MsgUpdateChallenger = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgUpdateChallenger") + fd_MsgUpdateChallenger_authority = md_MsgUpdateChallenger.Fields().ByName("authority") + fd_MsgUpdateChallenger_bridge_id = md_MsgUpdateChallenger.Fields().ByName("bridge_id") + fd_MsgUpdateChallenger_challenger = md_MsgUpdateChallenger.Fields().ByName("challenger") } -var _ protoreflect.Message = (*fastReflection_MsgUpdateChallengers)(nil) +var _ protoreflect.Message = (*fastReflection_MsgUpdateChallenger)(nil) -type fastReflection_MsgUpdateChallengers MsgUpdateChallengers +type fastReflection_MsgUpdateChallenger MsgUpdateChallenger -func (x *MsgUpdateChallengers) ProtoReflect() protoreflect.Message { - return (*fastReflection_MsgUpdateChallengers)(x) +func (x *MsgUpdateChallenger) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgUpdateChallenger)(x) } -func (x *MsgUpdateChallengers) slowProtoReflect() protoreflect.Message { +func (x *MsgUpdateChallenger) slowProtoReflect() protoreflect.Message { mi := &file_opinit_ophost_v1_tx_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7263,43 +7217,43 @@ func (x *MsgUpdateChallengers) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_MsgUpdateChallengers_messageType fastReflection_MsgUpdateChallengers_messageType -var _ protoreflect.MessageType = fastReflection_MsgUpdateChallengers_messageType{} +var _fastReflection_MsgUpdateChallenger_messageType fastReflection_MsgUpdateChallenger_messageType +var _ protoreflect.MessageType = fastReflection_MsgUpdateChallenger_messageType{} -type fastReflection_MsgUpdateChallengers_messageType struct{} +type fastReflection_MsgUpdateChallenger_messageType struct{} -func (x fastReflection_MsgUpdateChallengers_messageType) Zero() protoreflect.Message { - return (*fastReflection_MsgUpdateChallengers)(nil) +func (x fastReflection_MsgUpdateChallenger_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgUpdateChallenger)(nil) } -func (x fastReflection_MsgUpdateChallengers_messageType) New() protoreflect.Message { - return new(fastReflection_MsgUpdateChallengers) +func (x fastReflection_MsgUpdateChallenger_messageType) New() protoreflect.Message { + return new(fastReflection_MsgUpdateChallenger) } -func (x fastReflection_MsgUpdateChallengers_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_MsgUpdateChallengers +func (x fastReflection_MsgUpdateChallenger_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateChallenger } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_MsgUpdateChallengers) Descriptor() protoreflect.MessageDescriptor { - return md_MsgUpdateChallengers +func (x *fastReflection_MsgUpdateChallenger) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateChallenger } // 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_MsgUpdateChallengers) Type() protoreflect.MessageType { - return _fastReflection_MsgUpdateChallengers_messageType +func (x *fastReflection_MsgUpdateChallenger) Type() protoreflect.MessageType { + return _fastReflection_MsgUpdateChallenger_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_MsgUpdateChallengers) New() protoreflect.Message { - return new(fastReflection_MsgUpdateChallengers) +func (x *fastReflection_MsgUpdateChallenger) New() protoreflect.Message { + return new(fastReflection_MsgUpdateChallenger) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_MsgUpdateChallengers) Interface() protoreflect.ProtoMessage { - return (*MsgUpdateChallengers)(x) +func (x *fastReflection_MsgUpdateChallenger) Interface() protoreflect.ProtoMessage { + return (*MsgUpdateChallenger)(x) } // Range iterates over every populated field in an undefined order, @@ -7307,22 +7261,22 @@ func (x *fastReflection_MsgUpdateChallengers) Interface() protoreflect.ProtoMess // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_MsgUpdateChallengers) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_MsgUpdateChallenger) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.Authority != "" { value := protoreflect.ValueOfString(x.Authority) - if !f(fd_MsgUpdateChallengers_authority, value) { + if !f(fd_MsgUpdateChallenger_authority, value) { return } } if x.BridgeId != uint64(0) { value := protoreflect.ValueOfUint64(x.BridgeId) - if !f(fd_MsgUpdateChallengers_bridge_id, value) { + if !f(fd_MsgUpdateChallenger_bridge_id, value) { return } } - if len(x.NewChallengers) != 0 { - value := protoreflect.ValueOfList(&_MsgUpdateChallengers_3_list{list: &x.NewChallengers}) - if !f(fd_MsgUpdateChallengers_new_challengers, value) { + if x.Challenger != "" { + value := protoreflect.ValueOfString(x.Challenger) + if !f(fd_MsgUpdateChallenger_challenger, value) { return } } @@ -7339,19 +7293,19 @@ func (x *fastReflection_MsgUpdateChallengers) Range(f func(protoreflect.FieldDes // 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_MsgUpdateChallengers) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_MsgUpdateChallenger) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengers.authority": + case "opinit.ophost.v1.MsgUpdateChallenger.authority": return x.Authority != "" - case "opinit.ophost.v1.MsgUpdateChallengers.bridge_id": + case "opinit.ophost.v1.MsgUpdateChallenger.bridge_id": return x.BridgeId != uint64(0) - case "opinit.ophost.v1.MsgUpdateChallengers.new_challengers": - return len(x.NewChallengers) != 0 + case "opinit.ophost.v1.MsgUpdateChallenger.challenger": + return x.Challenger != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengers")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallenger")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengers does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallenger does not contain field %s", fd.FullName())) } } @@ -7361,19 +7315,19 @@ func (x *fastReflection_MsgUpdateChallengers) Has(fd protoreflect.FieldDescripto // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengers) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_MsgUpdateChallenger) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengers.authority": + case "opinit.ophost.v1.MsgUpdateChallenger.authority": x.Authority = "" - case "opinit.ophost.v1.MsgUpdateChallengers.bridge_id": + case "opinit.ophost.v1.MsgUpdateChallenger.bridge_id": x.BridgeId = uint64(0) - case "opinit.ophost.v1.MsgUpdateChallengers.new_challengers": - x.NewChallengers = nil + case "opinit.ophost.v1.MsgUpdateChallenger.challenger": + x.Challenger = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengers")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallenger")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengers does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallenger does not contain field %s", fd.FullName())) } } @@ -7383,25 +7337,22 @@ func (x *fastReflection_MsgUpdateChallengers) Clear(fd protoreflect.FieldDescrip // 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_MsgUpdateChallengers) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_MsgUpdateChallenger) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengers.authority": + case "opinit.ophost.v1.MsgUpdateChallenger.authority": value := x.Authority return protoreflect.ValueOfString(value) - case "opinit.ophost.v1.MsgUpdateChallengers.bridge_id": + case "opinit.ophost.v1.MsgUpdateChallenger.bridge_id": value := x.BridgeId return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.MsgUpdateChallengers.new_challengers": - if len(x.NewChallengers) == 0 { - return protoreflect.ValueOfList(&_MsgUpdateChallengers_3_list{}) - } - listValue := &_MsgUpdateChallengers_3_list{list: &x.NewChallengers} - return protoreflect.ValueOfList(listValue) + case "opinit.ophost.v1.MsgUpdateChallenger.challenger": + value := x.Challenger + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengers")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallenger")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengers does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallenger does not contain field %s", descriptor.FullName())) } } @@ -7415,21 +7366,19 @@ func (x *fastReflection_MsgUpdateChallengers) Get(descriptor protoreflect.FieldD // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengers) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_MsgUpdateChallenger) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengers.authority": + case "opinit.ophost.v1.MsgUpdateChallenger.authority": x.Authority = value.Interface().(string) - case "opinit.ophost.v1.MsgUpdateChallengers.bridge_id": + case "opinit.ophost.v1.MsgUpdateChallenger.bridge_id": x.BridgeId = value.Uint() - case "opinit.ophost.v1.MsgUpdateChallengers.new_challengers": - lv := value.List() - clv := lv.(*_MsgUpdateChallengers_3_list) - x.NewChallengers = *clv.list + case "opinit.ophost.v1.MsgUpdateChallenger.challenger": + x.Challenger = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengers")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallenger")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengers does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallenger does not contain field %s", fd.FullName())) } } @@ -7443,53 +7392,48 @@ func (x *fastReflection_MsgUpdateChallengers) Set(fd protoreflect.FieldDescripto // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengers) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_MsgUpdateChallenger) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengers.new_challengers": - if x.NewChallengers == nil { - x.NewChallengers = []string{} - } - value := &_MsgUpdateChallengers_3_list{list: &x.NewChallengers} - return protoreflect.ValueOfList(value) - case "opinit.ophost.v1.MsgUpdateChallengers.authority": - panic(fmt.Errorf("field authority of message opinit.ophost.v1.MsgUpdateChallengers is not mutable")) - case "opinit.ophost.v1.MsgUpdateChallengers.bridge_id": - panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.MsgUpdateChallengers is not mutable")) + case "opinit.ophost.v1.MsgUpdateChallenger.authority": + panic(fmt.Errorf("field authority of message opinit.ophost.v1.MsgUpdateChallenger is not mutable")) + case "opinit.ophost.v1.MsgUpdateChallenger.bridge_id": + panic(fmt.Errorf("field bridge_id of message opinit.ophost.v1.MsgUpdateChallenger is not mutable")) + case "opinit.ophost.v1.MsgUpdateChallenger.challenger": + panic(fmt.Errorf("field challenger of message opinit.ophost.v1.MsgUpdateChallenger is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengers")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallenger")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengers does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallenger 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_MsgUpdateChallengers) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_MsgUpdateChallenger) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengers.authority": + case "opinit.ophost.v1.MsgUpdateChallenger.authority": return protoreflect.ValueOfString("") - case "opinit.ophost.v1.MsgUpdateChallengers.bridge_id": + case "opinit.ophost.v1.MsgUpdateChallenger.bridge_id": return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.MsgUpdateChallengers.new_challengers": - list := []string{} - return protoreflect.ValueOfList(&_MsgUpdateChallengers_3_list{list: &list}) + case "opinit.ophost.v1.MsgUpdateChallenger.challenger": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengers")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallenger")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengers does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallenger 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_MsgUpdateChallengers) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_MsgUpdateChallenger) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.MsgUpdateChallengers", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.MsgUpdateChallenger", d.FullName())) } panic("unreachable") } @@ -7497,7 +7441,7 @@ func (x *fastReflection_MsgUpdateChallengers) WhichOneof(d protoreflect.OneofDes // 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_MsgUpdateChallengers) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_MsgUpdateChallenger) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -7508,7 +7452,7 @@ func (x *fastReflection_MsgUpdateChallengers) GetUnknown() protoreflect.RawField // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengers) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_MsgUpdateChallenger) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -7520,7 +7464,7 @@ func (x *fastReflection_MsgUpdateChallengers) SetUnknown(fields protoreflect.Raw // 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_MsgUpdateChallengers) IsValid() bool { +func (x *fastReflection_MsgUpdateChallenger) IsValid() bool { return x != nil } @@ -7530,9 +7474,9 @@ func (x *fastReflection_MsgUpdateChallengers) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_MsgUpdateChallenger) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*MsgUpdateChallengers) + x := input.Message.Interface().(*MsgUpdateChallenger) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7551,11 +7495,9 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods if x.BridgeId != 0 { n += 1 + runtime.Sov(uint64(x.BridgeId)) } - if len(x.NewChallengers) > 0 { - for _, s := range x.NewChallengers { - l = len(s) - n += 1 + l + runtime.Sov(uint64(l)) - } + l = len(x.Challenger) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) } if x.unknownFields != nil { n += len(x.unknownFields) @@ -7567,7 +7509,7 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*MsgUpdateChallengers) + x := input.Message.Interface().(*MsgUpdateChallenger) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7586,14 +7528,12 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.NewChallengers) > 0 { - for iNdEx := len(x.NewChallengers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.NewChallengers[iNdEx]) - copy(dAtA[i:], x.NewChallengers[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.NewChallengers[iNdEx]))) - i-- - dAtA[i] = 0x1a - } + if len(x.Challenger) > 0 { + i -= len(x.Challenger) + copy(dAtA[i:], x.Challenger) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Challenger))) + i-- + dAtA[i] = 0x1a } if x.BridgeId != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.BridgeId)) @@ -7618,7 +7558,7 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*MsgUpdateChallengers) + x := input.Message.Interface().(*MsgUpdateChallenger) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -7650,10 +7590,10 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallengers: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallenger: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallengers: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallenger: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -7709,7 +7649,7 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods } case 3: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewChallengers", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Challenger", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7737,7 +7677,7 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.NewChallengers = append(x.NewChallengers, string(dAtA[iNdEx:postIndex])) + x.Challenger = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -7775,27 +7715,27 @@ func (x *fastReflection_MsgUpdateChallengers) ProtoMethods() *protoiface.Methods } var ( - md_MsgUpdateChallengersResponse protoreflect.MessageDescriptor - fd_MsgUpdateChallengersResponse_output_index protoreflect.FieldDescriptor - fd_MsgUpdateChallengersResponse_l2_block_number protoreflect.FieldDescriptor + md_MsgUpdateChallengerResponse protoreflect.MessageDescriptor + fd_MsgUpdateChallengerResponse_output_index protoreflect.FieldDescriptor + fd_MsgUpdateChallengerResponse_l2_block_number protoreflect.FieldDescriptor ) func init() { file_opinit_ophost_v1_tx_proto_init() - md_MsgUpdateChallengersResponse = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgUpdateChallengersResponse") - fd_MsgUpdateChallengersResponse_output_index = md_MsgUpdateChallengersResponse.Fields().ByName("output_index") - fd_MsgUpdateChallengersResponse_l2_block_number = md_MsgUpdateChallengersResponse.Fields().ByName("l2_block_number") + md_MsgUpdateChallengerResponse = File_opinit_ophost_v1_tx_proto.Messages().ByName("MsgUpdateChallengerResponse") + fd_MsgUpdateChallengerResponse_output_index = md_MsgUpdateChallengerResponse.Fields().ByName("output_index") + fd_MsgUpdateChallengerResponse_l2_block_number = md_MsgUpdateChallengerResponse.Fields().ByName("l2_block_number") } -var _ protoreflect.Message = (*fastReflection_MsgUpdateChallengersResponse)(nil) +var _ protoreflect.Message = (*fastReflection_MsgUpdateChallengerResponse)(nil) -type fastReflection_MsgUpdateChallengersResponse MsgUpdateChallengersResponse +type fastReflection_MsgUpdateChallengerResponse MsgUpdateChallengerResponse -func (x *MsgUpdateChallengersResponse) ProtoReflect() protoreflect.Message { - return (*fastReflection_MsgUpdateChallengersResponse)(x) +func (x *MsgUpdateChallengerResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgUpdateChallengerResponse)(x) } -func (x *MsgUpdateChallengersResponse) slowProtoReflect() protoreflect.Message { +func (x *MsgUpdateChallengerResponse) slowProtoReflect() protoreflect.Message { mi := &file_opinit_ophost_v1_tx_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -7807,43 +7747,43 @@ func (x *MsgUpdateChallengersResponse) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_MsgUpdateChallengersResponse_messageType fastReflection_MsgUpdateChallengersResponse_messageType -var _ protoreflect.MessageType = fastReflection_MsgUpdateChallengersResponse_messageType{} +var _fastReflection_MsgUpdateChallengerResponse_messageType fastReflection_MsgUpdateChallengerResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgUpdateChallengerResponse_messageType{} -type fastReflection_MsgUpdateChallengersResponse_messageType struct{} +type fastReflection_MsgUpdateChallengerResponse_messageType struct{} -func (x fastReflection_MsgUpdateChallengersResponse_messageType) Zero() protoreflect.Message { - return (*fastReflection_MsgUpdateChallengersResponse)(nil) +func (x fastReflection_MsgUpdateChallengerResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgUpdateChallengerResponse)(nil) } -func (x fastReflection_MsgUpdateChallengersResponse_messageType) New() protoreflect.Message { - return new(fastReflection_MsgUpdateChallengersResponse) +func (x fastReflection_MsgUpdateChallengerResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgUpdateChallengerResponse) } -func (x fastReflection_MsgUpdateChallengersResponse_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_MsgUpdateChallengersResponse +func (x fastReflection_MsgUpdateChallengerResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateChallengerResponse } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_MsgUpdateChallengersResponse) Descriptor() protoreflect.MessageDescriptor { - return md_MsgUpdateChallengersResponse +func (x *fastReflection_MsgUpdateChallengerResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateChallengerResponse } // 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_MsgUpdateChallengersResponse) Type() protoreflect.MessageType { - return _fastReflection_MsgUpdateChallengersResponse_messageType +func (x *fastReflection_MsgUpdateChallengerResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgUpdateChallengerResponse_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_MsgUpdateChallengersResponse) New() protoreflect.Message { - return new(fastReflection_MsgUpdateChallengersResponse) +func (x *fastReflection_MsgUpdateChallengerResponse) New() protoreflect.Message { + return new(fastReflection_MsgUpdateChallengerResponse) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_MsgUpdateChallengersResponse) Interface() protoreflect.ProtoMessage { - return (*MsgUpdateChallengersResponse)(x) +func (x *fastReflection_MsgUpdateChallengerResponse) Interface() protoreflect.ProtoMessage { + return (*MsgUpdateChallengerResponse)(x) } // Range iterates over every populated field in an undefined order, @@ -7851,16 +7791,16 @@ func (x *fastReflection_MsgUpdateChallengersResponse) Interface() protoreflect.P // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_MsgUpdateChallengersResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_MsgUpdateChallengerResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.OutputIndex != uint64(0) { value := protoreflect.ValueOfUint64(x.OutputIndex) - if !f(fd_MsgUpdateChallengersResponse_output_index, value) { + if !f(fd_MsgUpdateChallengerResponse_output_index, value) { return } } if x.L2BlockNumber != uint64(0) { value := protoreflect.ValueOfUint64(x.L2BlockNumber) - if !f(fd_MsgUpdateChallengersResponse_l2_block_number, value) { + if !f(fd_MsgUpdateChallengerResponse_l2_block_number, value) { return } } @@ -7877,17 +7817,17 @@ func (x *fastReflection_MsgUpdateChallengersResponse) Range(f func(protoreflect. // 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_MsgUpdateChallengersResponse) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_MsgUpdateChallengerResponse) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengersResponse.output_index": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.output_index": return x.OutputIndex != uint64(0) - case "opinit.ophost.v1.MsgUpdateChallengersResponse.l2_block_number": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.l2_block_number": return x.L2BlockNumber != uint64(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengersResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengerResponse")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengersResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengerResponse does not contain field %s", fd.FullName())) } } @@ -7897,17 +7837,17 @@ func (x *fastReflection_MsgUpdateChallengersResponse) Has(fd protoreflect.FieldD // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengersResponse) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_MsgUpdateChallengerResponse) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengersResponse.output_index": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.output_index": x.OutputIndex = uint64(0) - case "opinit.ophost.v1.MsgUpdateChallengersResponse.l2_block_number": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.l2_block_number": x.L2BlockNumber = uint64(0) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengersResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengerResponse")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengersResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengerResponse does not contain field %s", fd.FullName())) } } @@ -7917,19 +7857,19 @@ func (x *fastReflection_MsgUpdateChallengersResponse) Clear(fd protoreflect.Fiel // 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_MsgUpdateChallengersResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_MsgUpdateChallengerResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengersResponse.output_index": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.output_index": value := x.OutputIndex return protoreflect.ValueOfUint64(value) - case "opinit.ophost.v1.MsgUpdateChallengersResponse.l2_block_number": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.l2_block_number": value := x.L2BlockNumber return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengersResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengerResponse")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengersResponse does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengerResponse does not contain field %s", descriptor.FullName())) } } @@ -7943,17 +7883,17 @@ func (x *fastReflection_MsgUpdateChallengersResponse) Get(descriptor protoreflec // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengersResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_MsgUpdateChallengerResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengersResponse.output_index": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.output_index": x.OutputIndex = value.Uint() - case "opinit.ophost.v1.MsgUpdateChallengersResponse.l2_block_number": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.l2_block_number": x.L2BlockNumber = value.Uint() default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengersResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengerResponse")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengersResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengerResponse does not contain field %s", fd.FullName())) } } @@ -7967,44 +7907,44 @@ func (x *fastReflection_MsgUpdateChallengersResponse) Set(fd protoreflect.FieldD // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengersResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_MsgUpdateChallengerResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengersResponse.output_index": - panic(fmt.Errorf("field output_index of message opinit.ophost.v1.MsgUpdateChallengersResponse is not mutable")) - case "opinit.ophost.v1.MsgUpdateChallengersResponse.l2_block_number": - panic(fmt.Errorf("field l2_block_number of message opinit.ophost.v1.MsgUpdateChallengersResponse is not mutable")) + case "opinit.ophost.v1.MsgUpdateChallengerResponse.output_index": + panic(fmt.Errorf("field output_index of message opinit.ophost.v1.MsgUpdateChallengerResponse is not mutable")) + case "opinit.ophost.v1.MsgUpdateChallengerResponse.l2_block_number": + panic(fmt.Errorf("field l2_block_number of message opinit.ophost.v1.MsgUpdateChallengerResponse is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengersResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengerResponse")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengersResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengerResponse 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_MsgUpdateChallengersResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_MsgUpdateChallengerResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.ophost.v1.MsgUpdateChallengersResponse.output_index": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.output_index": return protoreflect.ValueOfUint64(uint64(0)) - case "opinit.ophost.v1.MsgUpdateChallengersResponse.l2_block_number": + case "opinit.ophost.v1.MsgUpdateChallengerResponse.l2_block_number": return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengersResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: opinit.ophost.v1.MsgUpdateChallengerResponse")) } - panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengersResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message opinit.ophost.v1.MsgUpdateChallengerResponse 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_MsgUpdateChallengersResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_MsgUpdateChallengerResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.MsgUpdateChallengersResponse", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in opinit.ophost.v1.MsgUpdateChallengerResponse", d.FullName())) } panic("unreachable") } @@ -8012,7 +7952,7 @@ func (x *fastReflection_MsgUpdateChallengersResponse) WhichOneof(d protoreflect. // 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_MsgUpdateChallengersResponse) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_MsgUpdateChallengerResponse) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -8023,7 +7963,7 @@ func (x *fastReflection_MsgUpdateChallengersResponse) GetUnknown() protoreflect. // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_MsgUpdateChallengersResponse) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_MsgUpdateChallengerResponse) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -8035,7 +7975,7 @@ func (x *fastReflection_MsgUpdateChallengersResponse) SetUnknown(fields protoref // 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_MsgUpdateChallengersResponse) IsValid() bool { +func (x *fastReflection_MsgUpdateChallengerResponse) IsValid() bool { return x != nil } @@ -8045,9 +7985,9 @@ func (x *fastReflection_MsgUpdateChallengersResponse) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_MsgUpdateChallengersResponse) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_MsgUpdateChallengerResponse) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*MsgUpdateChallengersResponse) + x := input.Message.Interface().(*MsgUpdateChallengerResponse) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -8075,7 +8015,7 @@ func (x *fastReflection_MsgUpdateChallengersResponse) ProtoMethods() *protoiface } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*MsgUpdateChallengersResponse) + x := input.Message.Interface().(*MsgUpdateChallengerResponse) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -8115,7 +8055,7 @@ func (x *fastReflection_MsgUpdateChallengersResponse) ProtoMethods() *protoiface }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*MsgUpdateChallengersResponse) + x := input.Message.Interface().(*MsgUpdateChallengerResponse) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -8147,10 +8087,10 @@ func (x *fastReflection_MsgUpdateChallengersResponse) ProtoMethods() *protoiface fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallengersResponse: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallengerResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallengersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateChallengerResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -12642,7 +12582,7 @@ func (x *MsgUpdateProposerResponse) GetL2BlockNumber() uint64 { } // MsgUpdateChallenger is a message to change a challenger -type MsgUpdateChallengers struct { +type MsgUpdateChallenger struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -12651,13 +12591,13 @@ type MsgUpdateChallengers struct { // or the current challenger address. // // If the given authority is a challenger address, it has the ability to replace itself with another address. - Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` - NewChallengers []string `protobuf:"bytes,3,rep,name=new_challengers,json=newChallengers,proto3" json:"new_challengers,omitempty"` + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty"` + Challenger string `protobuf:"bytes,3,opt,name=challenger,proto3" json:"challenger,omitempty"` } -func (x *MsgUpdateChallengers) Reset() { - *x = MsgUpdateChallengers{} +func (x *MsgUpdateChallenger) Reset() { + *x = MsgUpdateChallenger{} if protoimpl.UnsafeEnabled { mi := &file_opinit_ophost_v1_tx_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12665,40 +12605,40 @@ func (x *MsgUpdateChallengers) Reset() { } } -func (x *MsgUpdateChallengers) String() string { +func (x *MsgUpdateChallenger) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MsgUpdateChallengers) ProtoMessage() {} +func (*MsgUpdateChallenger) ProtoMessage() {} -// Deprecated: Use MsgUpdateChallengers.ProtoReflect.Descriptor instead. -func (*MsgUpdateChallengers) Descriptor() ([]byte, []int) { +// Deprecated: Use MsgUpdateChallenger.ProtoReflect.Descriptor instead. +func (*MsgUpdateChallenger) Descriptor() ([]byte, []int) { return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{14} } -func (x *MsgUpdateChallengers) GetAuthority() string { +func (x *MsgUpdateChallenger) GetAuthority() string { if x != nil { return x.Authority } return "" } -func (x *MsgUpdateChallengers) GetBridgeId() uint64 { +func (x *MsgUpdateChallenger) GetBridgeId() uint64 { if x != nil { return x.BridgeId } return 0 } -func (x *MsgUpdateChallengers) GetNewChallengers() []string { +func (x *MsgUpdateChallenger) GetChallenger() string { if x != nil { - return x.NewChallengers + return x.Challenger } - return nil + return "" } -// MsgUpdateChallengersResponse returns a message handle result. -type MsgUpdateChallengersResponse struct { +// MsgUpdateChallengerResponse returns a message handle result. +type MsgUpdateChallengerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -12709,8 +12649,8 @@ type MsgUpdateChallengersResponse struct { L2BlockNumber uint64 `protobuf:"varint,2,opt,name=l2_block_number,json=l2BlockNumber,proto3" json:"l2_block_number,omitempty"` } -func (x *MsgUpdateChallengersResponse) Reset() { - *x = MsgUpdateChallengersResponse{} +func (x *MsgUpdateChallengerResponse) Reset() { + *x = MsgUpdateChallengerResponse{} if protoimpl.UnsafeEnabled { mi := &file_opinit_ophost_v1_tx_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -12718,25 +12658,25 @@ func (x *MsgUpdateChallengersResponse) Reset() { } } -func (x *MsgUpdateChallengersResponse) String() string { +func (x *MsgUpdateChallengerResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MsgUpdateChallengersResponse) ProtoMessage() {} +func (*MsgUpdateChallengerResponse) ProtoMessage() {} -// Deprecated: Use MsgUpdateChallengersResponse.ProtoReflect.Descriptor instead. -func (*MsgUpdateChallengersResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use MsgUpdateChallengerResponse.ProtoReflect.Descriptor instead. +func (*MsgUpdateChallengerResponse) Descriptor() ([]byte, []int) { return file_opinit_ophost_v1_tx_proto_rawDescGZIP(), []int{15} } -func (x *MsgUpdateChallengersResponse) GetOutputIndex() uint64 { +func (x *MsgUpdateChallengerResponse) GetOutputIndex() uint64 { if x != nil { return x.OutputIndex } return 0 } -func (x *MsgUpdateChallengersResponse) GetL2BlockNumber() uint64 { +func (x *MsgUpdateChallengerResponse) GetL2BlockNumber() uint64 { if x != nil { return x.L2BlockNumber } @@ -13290,203 +13230,202 @@ var file_opinit_ophost_v1_tx_proto_rawDesc = []byte{ 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0xa2, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, - 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x92, 0x02, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, + 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, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xf2, 0xde, 0x1f, 0x11, + 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, - 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x32, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, - 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x22, 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, 0x0e, 0x6e, 0x65, 0x77, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x72, 0x73, 0x3a, 0x2e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x72, 0x73, 0x22, 0x69, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0xa8, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, - 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, - 0x6e, 0x65, 0x77, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x2c, 0x82, 0xe7, - 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, - 0x19, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x67, 0x0a, 0x1a, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, - 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, - 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0e, - 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x52, - 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x2f, - 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, - 0xb0, 0x2a, 0x1c, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, - 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xf0, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, - 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x0f, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x11, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, - 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x3a, 0x29, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0xe3, 0x09, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x59, - 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, - 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x6f, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6c, 0x6c, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x2d, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa8, + 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x49, 0x64, 0x12, 0x65, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x22, 0xc8, 0xde, 0x1f, 0x00, 0xf2, + 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x6e, + 0x65, 0x77, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x2c, 0x82, 0xe7, 0xb0, + 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x67, 0x0a, 0x1a, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x22, 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, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, + 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x6f, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x19, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x52, 0x0d, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x2f, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1c, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1f, + 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xf0, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x52, 0x08, 0x62, 0x72, 0x69, 0x64, + 0x67, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x13, 0xf2, 0xde, 0x1f, 0x0f, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x2b, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, + 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x66, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x32, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2c, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 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, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x69, + 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x42, 0x11, 0xf2, 0xde, 0x1f, 0x0d, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, + 0x29, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, + 0xe7, 0xb0, 0x2a, 0x16, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 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, 0xe0, 0x09, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x59, 0x0a, + 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, - 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x14, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x29, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x17, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x23, 0x2e, - 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, - 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x2e, 0x6f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0f, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x1a, 0x29, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x2e, + 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x14, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x49, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x17, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, + 0x72, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, + 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x72, 0x12, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x1a, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x6f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x1a, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x62, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 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, 0xc2, 0x01, 0xc8, - 0xe1, 0x1e, 0x00, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, - 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, - 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x4f, 0x70, 0x69, - 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, - 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x4f, - 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, + 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, + 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 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, 0xc2, 0x01, 0xc8, 0xe1, 0x1e, 0x00, 0x0a, + 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, + 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, + 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -13517,8 +13456,8 @@ var file_opinit_ophost_v1_tx_proto_goTypes = []interface{}{ (*MsgFinalizeTokenWithdrawalResponse)(nil), // 11: opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse (*MsgUpdateProposer)(nil), // 12: opinit.ophost.v1.MsgUpdateProposer (*MsgUpdateProposerResponse)(nil), // 13: opinit.ophost.v1.MsgUpdateProposerResponse - (*MsgUpdateChallengers)(nil), // 14: opinit.ophost.v1.MsgUpdateChallengers - (*MsgUpdateChallengersResponse)(nil), // 15: opinit.ophost.v1.MsgUpdateChallengersResponse + (*MsgUpdateChallenger)(nil), // 14: opinit.ophost.v1.MsgUpdateChallenger + (*MsgUpdateChallengerResponse)(nil), // 15: opinit.ophost.v1.MsgUpdateChallengerResponse (*MsgUpdateBatchInfo)(nil), // 16: opinit.ophost.v1.MsgUpdateBatchInfo (*MsgUpdateBatchInfoResponse)(nil), // 17: opinit.ophost.v1.MsgUpdateBatchInfoResponse (*MsgUpdateOracleConfig)(nil), // 18: opinit.ophost.v1.MsgUpdateOracleConfig @@ -13545,7 +13484,7 @@ var file_opinit_ophost_v1_tx_proto_depIdxs = []int32{ 8, // 9: opinit.ophost.v1.Msg.InitiateTokenDeposit:input_type -> opinit.ophost.v1.MsgInitiateTokenDeposit 10, // 10: opinit.ophost.v1.Msg.FinalizeTokenWithdrawal:input_type -> opinit.ophost.v1.MsgFinalizeTokenWithdrawal 12, // 11: opinit.ophost.v1.Msg.UpdateProposer:input_type -> opinit.ophost.v1.MsgUpdateProposer - 14, // 12: opinit.ophost.v1.Msg.UpdateChallengers:input_type -> opinit.ophost.v1.MsgUpdateChallengers + 14, // 12: opinit.ophost.v1.Msg.UpdateChallenger:input_type -> opinit.ophost.v1.MsgUpdateChallenger 16, // 13: opinit.ophost.v1.Msg.UpdateBatchInfo:input_type -> opinit.ophost.v1.MsgUpdateBatchInfo 20, // 14: opinit.ophost.v1.Msg.UpdateMetadata:input_type -> opinit.ophost.v1.MsgUpdateMetadata 18, // 15: opinit.ophost.v1.Msg.UpdateOracleConfig:input_type -> opinit.ophost.v1.MsgUpdateOracleConfig @@ -13557,7 +13496,7 @@ var file_opinit_ophost_v1_tx_proto_depIdxs = []int32{ 9, // 21: opinit.ophost.v1.Msg.InitiateTokenDeposit:output_type -> opinit.ophost.v1.MsgInitiateTokenDepositResponse 11, // 22: opinit.ophost.v1.Msg.FinalizeTokenWithdrawal:output_type -> opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse 13, // 23: opinit.ophost.v1.Msg.UpdateProposer:output_type -> opinit.ophost.v1.MsgUpdateProposerResponse - 15, // 24: opinit.ophost.v1.Msg.UpdateChallengers:output_type -> opinit.ophost.v1.MsgUpdateChallengersResponse + 15, // 24: opinit.ophost.v1.Msg.UpdateChallenger:output_type -> opinit.ophost.v1.MsgUpdateChallengerResponse 17, // 25: opinit.ophost.v1.Msg.UpdateBatchInfo:output_type -> opinit.ophost.v1.MsgUpdateBatchInfoResponse 21, // 26: opinit.ophost.v1.Msg.UpdateMetadata:output_type -> opinit.ophost.v1.MsgUpdateMetadataResponse 19, // 27: opinit.ophost.v1.Msg.UpdateOracleConfig:output_type -> opinit.ophost.v1.MsgUpdateOracleConfigResponse @@ -13745,7 +13684,7 @@ func file_opinit_ophost_v1_tx_proto_init() { } } file_opinit_ophost_v1_tx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgUpdateChallengers); i { + switch v := v.(*MsgUpdateChallenger); i { case 0: return &v.state case 1: @@ -13757,7 +13696,7 @@ func file_opinit_ophost_v1_tx_proto_init() { } } file_opinit_ophost_v1_tx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgUpdateChallengersResponse); i { + switch v := v.(*MsgUpdateChallengerResponse); i { case 0: return &v.state case 1: diff --git a/api/opinit/ophost/v1/tx_grpc.pb.go b/api/opinit/ophost/v1/tx_grpc.pb.go index 7cfe7566..b0a0453d 100644 --- a/api/opinit/ophost/v1/tx_grpc.pb.go +++ b/api/opinit/ophost/v1/tx_grpc.pb.go @@ -26,7 +26,7 @@ const ( Msg_InitiateTokenDeposit_FullMethodName = "/opinit.ophost.v1.Msg/InitiateTokenDeposit" Msg_FinalizeTokenWithdrawal_FullMethodName = "/opinit.ophost.v1.Msg/FinalizeTokenWithdrawal" Msg_UpdateProposer_FullMethodName = "/opinit.ophost.v1.Msg/UpdateProposer" - Msg_UpdateChallengers_FullMethodName = "/opinit.ophost.v1.Msg/UpdateChallengers" + Msg_UpdateChallenger_FullMethodName = "/opinit.ophost.v1.Msg/UpdateChallenger" Msg_UpdateBatchInfo_FullMethodName = "/opinit.ophost.v1.Msg/UpdateBatchInfo" Msg_UpdateMetadata_FullMethodName = "/opinit.ophost.v1.Msg/UpdateMetadata" Msg_UpdateOracleConfig_FullMethodName = "/opinit.ophost.v1.Msg/UpdateOracleConfig" @@ -51,8 +51,8 @@ type MsgClient interface { FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalizeTokenWithdrawal, opts ...grpc.CallOption) (*MsgFinalizeTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) - // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. - UpdateChallengers(ctx context.Context, in *MsgUpdateChallengers, opts ...grpc.CallOption) (*MsgUpdateChallengersResponse, error) + // UpdateChallenger defines a rpc handler method for MsgUpdateChallenger. + UpdateChallenger(ctx context.Context, in *MsgUpdateChallenger, opts ...grpc.CallOption) (*MsgUpdateChallengerResponse, error) // UpdateBatchInfo defines a rpc handler method for MsgUpdateBatchInfo. UpdateBatchInfo(ctx context.Context, in *MsgUpdateBatchInfo, opts ...grpc.CallOption) (*MsgUpdateBatchInfoResponse, error) // UpdateMetadata defines a rpc handler method for MsgUpdateMetadata. @@ -135,9 +135,9 @@ func (c *msgClient) UpdateProposer(ctx context.Context, in *MsgUpdateProposer, o return out, nil } -func (c *msgClient) UpdateChallengers(ctx context.Context, in *MsgUpdateChallengers, opts ...grpc.CallOption) (*MsgUpdateChallengersResponse, error) { - out := new(MsgUpdateChallengersResponse) - err := c.cc.Invoke(ctx, Msg_UpdateChallengers_FullMethodName, in, out, opts...) +func (c *msgClient) UpdateChallenger(ctx context.Context, in *MsgUpdateChallenger, opts ...grpc.CallOption) (*MsgUpdateChallengerResponse, error) { + out := new(MsgUpdateChallengerResponse) + err := c.cc.Invoke(ctx, Msg_UpdateChallenger_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -198,8 +198,8 @@ type MsgServer interface { FinalizeTokenWithdrawal(context.Context, *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) - // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. - UpdateChallengers(context.Context, *MsgUpdateChallengers) (*MsgUpdateChallengersResponse, error) + // UpdateChallenger defines a rpc handler method for MsgUpdateChallenger. + UpdateChallenger(context.Context, *MsgUpdateChallenger) (*MsgUpdateChallengerResponse, error) // UpdateBatchInfo defines a rpc handler method for MsgUpdateBatchInfo. UpdateBatchInfo(context.Context, *MsgUpdateBatchInfo) (*MsgUpdateBatchInfoResponse, error) // UpdateMetadata defines a rpc handler method for MsgUpdateMetadata. @@ -237,8 +237,8 @@ func (UnimplementedMsgServer) FinalizeTokenWithdrawal(context.Context, *MsgFinal func (UnimplementedMsgServer) UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProposer not implemented") } -func (UnimplementedMsgServer) UpdateChallengers(context.Context, *MsgUpdateChallengers) (*MsgUpdateChallengersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateChallengers not implemented") +func (UnimplementedMsgServer) UpdateChallenger(context.Context, *MsgUpdateChallenger) (*MsgUpdateChallengerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateChallenger not implemented") } func (UnimplementedMsgServer) UpdateBatchInfo(context.Context, *MsgUpdateBatchInfo) (*MsgUpdateBatchInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateBatchInfo not implemented") @@ -391,20 +391,20 @@ func _Msg_UpdateProposer_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _Msg_UpdateChallengers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgUpdateChallengers) +func _Msg_UpdateChallenger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateChallenger) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).UpdateChallengers(ctx, in) + return srv.(MsgServer).UpdateChallenger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Msg_UpdateChallengers_FullMethodName, + FullMethod: Msg_UpdateChallenger_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).UpdateChallengers(ctx, req.(*MsgUpdateChallengers)) + return srv.(MsgServer).UpdateChallenger(ctx, req.(*MsgUpdateChallenger)) } return interceptor(ctx, in, info, handler) } @@ -517,8 +517,8 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ Handler: _Msg_UpdateProposer_Handler, }, { - MethodName: "UpdateChallengers", - Handler: _Msg_UpdateChallengers_Handler, + MethodName: "UpdateChallenger", + Handler: _Msg_UpdateChallenger_Handler, }, { MethodName: "UpdateBatchInfo", diff --git a/api/opinit/ophost/v1/types.pulsar.go b/api/opinit/ophost/v1/types.pulsar.go index 0cf9cbf3..182e0555 100644 --- a/api/opinit/ophost/v1/types.pulsar.go +++ b/api/opinit/ophost/v1/types.pulsar.go @@ -512,55 +512,9 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } } -var _ protoreflect.List = (*_BridgeConfig_1_list)(nil) - -type _BridgeConfig_1_list struct { - list *[]string -} - -func (x *_BridgeConfig_1_list) Len() int { - if x.list == nil { - return 0 - } - return len(*x.list) -} - -func (x *_BridgeConfig_1_list) Get(i int) protoreflect.Value { - return protoreflect.ValueOfString((*x.list)[i]) -} - -func (x *_BridgeConfig_1_list) Set(i int, value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - (*x.list)[i] = concreteValue -} - -func (x *_BridgeConfig_1_list) Append(value protoreflect.Value) { - valueUnwrapped := value.String() - concreteValue := valueUnwrapped - *x.list = append(*x.list, concreteValue) -} - -func (x *_BridgeConfig_1_list) AppendMutable() protoreflect.Value { - panic(fmt.Errorf("AppendMutable can not be called on message BridgeConfig at list field Challengers as it is not of Message kind")) -} - -func (x *_BridgeConfig_1_list) Truncate(n int) { - *x.list = (*x.list)[:n] -} - -func (x *_BridgeConfig_1_list) NewElement() protoreflect.Value { - v := "" - return protoreflect.ValueOfString(v) -} - -func (x *_BridgeConfig_1_list) IsValid() bool { - return x.list != nil -} - var ( md_BridgeConfig protoreflect.MessageDescriptor - fd_BridgeConfig_challengers protoreflect.FieldDescriptor + fd_BridgeConfig_challenger protoreflect.FieldDescriptor fd_BridgeConfig_proposer protoreflect.FieldDescriptor fd_BridgeConfig_batch_info protoreflect.FieldDescriptor fd_BridgeConfig_submission_interval protoreflect.FieldDescriptor @@ -573,7 +527,7 @@ var ( func init() { file_opinit_ophost_v1_types_proto_init() md_BridgeConfig = File_opinit_ophost_v1_types_proto.Messages().ByName("BridgeConfig") - fd_BridgeConfig_challengers = md_BridgeConfig.Fields().ByName("challengers") + fd_BridgeConfig_challenger = md_BridgeConfig.Fields().ByName("challenger") fd_BridgeConfig_proposer = md_BridgeConfig.Fields().ByName("proposer") fd_BridgeConfig_batch_info = md_BridgeConfig.Fields().ByName("batch_info") fd_BridgeConfig_submission_interval = md_BridgeConfig.Fields().ByName("submission_interval") @@ -648,9 +602,9 @@ func (x *fastReflection_BridgeConfig) Interface() protoreflect.ProtoMessage { // While iterating, mutating operations may only be performed // on the current field descriptor. func (x *fastReflection_BridgeConfig) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if len(x.Challengers) != 0 { - value := protoreflect.ValueOfList(&_BridgeConfig_1_list{list: &x.Challengers}) - if !f(fd_BridgeConfig_challengers, value) { + if x.Challenger != "" { + value := protoreflect.ValueOfString(x.Challenger) + if !f(fd_BridgeConfig_challenger, value) { return } } @@ -711,8 +665,8 @@ func (x *fastReflection_BridgeConfig) Range(f func(protoreflect.FieldDescriptor, // a repeated field is populated if it is non-empty. func (x *fastReflection_BridgeConfig) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "opinit.ophost.v1.BridgeConfig.challengers": - return len(x.Challengers) != 0 + case "opinit.ophost.v1.BridgeConfig.challenger": + return x.Challenger != "" case "opinit.ophost.v1.BridgeConfig.proposer": return x.Proposer != "" case "opinit.ophost.v1.BridgeConfig.batch_info": @@ -743,8 +697,8 @@ func (x *fastReflection_BridgeConfig) Has(fd protoreflect.FieldDescriptor) bool // Clear is a mutating operation and unsafe for concurrent use. func (x *fastReflection_BridgeConfig) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "opinit.ophost.v1.BridgeConfig.challengers": - x.Challengers = nil + case "opinit.ophost.v1.BridgeConfig.challenger": + x.Challenger = "" case "opinit.ophost.v1.BridgeConfig.proposer": x.Proposer = "" case "opinit.ophost.v1.BridgeConfig.batch_info": @@ -775,12 +729,9 @@ func (x *fastReflection_BridgeConfig) Clear(fd protoreflect.FieldDescriptor) { // of the value; to obtain a mutable reference, use Mutable. func (x *fastReflection_BridgeConfig) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "opinit.ophost.v1.BridgeConfig.challengers": - if len(x.Challengers) == 0 { - return protoreflect.ValueOfList(&_BridgeConfig_1_list{}) - } - listValue := &_BridgeConfig_1_list{list: &x.Challengers} - return protoreflect.ValueOfList(listValue) + case "opinit.ophost.v1.BridgeConfig.challenger": + value := x.Challenger + return protoreflect.ValueOfString(value) case "opinit.ophost.v1.BridgeConfig.proposer": value := x.Proposer return protoreflect.ValueOfString(value) @@ -822,10 +773,8 @@ func (x *fastReflection_BridgeConfig) Get(descriptor protoreflect.FieldDescripto // Set is a mutating operation and unsafe for concurrent use. func (x *fastReflection_BridgeConfig) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "opinit.ophost.v1.BridgeConfig.challengers": - lv := value.List() - clv := lv.(*_BridgeConfig_1_list) - x.Challengers = *clv.list + case "opinit.ophost.v1.BridgeConfig.challenger": + x.Challenger = value.Interface().(string) case "opinit.ophost.v1.BridgeConfig.proposer": x.Proposer = value.Interface().(string) case "opinit.ophost.v1.BridgeConfig.batch_info": @@ -860,12 +809,6 @@ func (x *fastReflection_BridgeConfig) Set(fd protoreflect.FieldDescriptor, value // Mutable is a mutating operation and unsafe for concurrent use. func (x *fastReflection_BridgeConfig) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.ophost.v1.BridgeConfig.challengers": - if x.Challengers == nil { - x.Challengers = []string{} - } - value := &_BridgeConfig_1_list{list: &x.Challengers} - return protoreflect.ValueOfList(value) case "opinit.ophost.v1.BridgeConfig.batch_info": if x.BatchInfo == nil { x.BatchInfo = new(BatchInfo) @@ -881,6 +824,8 @@ func (x *fastReflection_BridgeConfig) Mutable(fd protoreflect.FieldDescriptor) p x.FinalizationPeriod = new(durationpb.Duration) } return protoreflect.ValueOfMessage(x.FinalizationPeriod.ProtoReflect()) + case "opinit.ophost.v1.BridgeConfig.challenger": + panic(fmt.Errorf("field challenger of message opinit.ophost.v1.BridgeConfig is not mutable")) case "opinit.ophost.v1.BridgeConfig.proposer": panic(fmt.Errorf("field proposer of message opinit.ophost.v1.BridgeConfig is not mutable")) case "opinit.ophost.v1.BridgeConfig.submission_start_height": @@ -902,9 +847,8 @@ func (x *fastReflection_BridgeConfig) Mutable(fd protoreflect.FieldDescriptor) p // For lists, maps, and messages, this returns a new, empty, mutable value. func (x *fastReflection_BridgeConfig) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "opinit.ophost.v1.BridgeConfig.challengers": - list := []string{} - return protoreflect.ValueOfList(&_BridgeConfig_1_list{list: &list}) + case "opinit.ophost.v1.BridgeConfig.challenger": + return protoreflect.ValueOfString("") case "opinit.ophost.v1.BridgeConfig.proposer": return protoreflect.ValueOfString("") case "opinit.ophost.v1.BridgeConfig.batch_info": @@ -991,11 +935,9 @@ func (x *fastReflection_BridgeConfig) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - if len(x.Challengers) > 0 { - for _, s := range x.Challengers { - l = len(s) - n += 1 + l + runtime.Sov(uint64(l)) - } + l = len(x.Challenger) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) } l = len(x.Proposer) if l > 0 { @@ -1123,14 +1065,12 @@ func (x *fastReflection_BridgeConfig) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x12 } - if len(x.Challengers) > 0 { - for iNdEx := len(x.Challengers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.Challengers[iNdEx]) - copy(dAtA[i:], x.Challengers[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Challengers[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(x.Challenger) > 0 { + i -= len(x.Challenger) + copy(dAtA[i:], x.Challenger) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Challenger))) + i-- + dAtA[i] = 0xa } if input.Buf != nil { input.Buf = append(input.Buf, dAtA...) @@ -1183,7 +1123,7 @@ func (x *fastReflection_BridgeConfig) ProtoMethods() *protoiface.Methods { switch fieldNum { case 1: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Challengers", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Challenger", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1211,7 +1151,7 @@ func (x *fastReflection_BridgeConfig) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Challengers = append(x.Challengers, string(dAtA[iNdEx:postIndex])) + x.Challenger = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -3634,7 +3574,7 @@ type BridgeConfig struct { unknownFields protoimpl.UnknownFields // The address of the challenger. - Challengers []string `protobuf:"bytes,1,rep,name=challengers,proto3" json:"challengers,omitempty"` + Challenger string `protobuf:"bytes,1,opt,name=challenger,proto3" json:"challenger,omitempty"` // The address of the proposer. Proposer string `protobuf:"bytes,2,opt,name=proposer,proto3" json:"proposer,omitempty"` // The information about batch submission. @@ -3672,11 +3612,11 @@ func (*BridgeConfig) Descriptor() ([]byte, []int) { return file_opinit_ophost_v1_types_proto_rawDescGZIP(), []int{1} } -func (x *BridgeConfig) GetChallengers() []string { +func (x *BridgeConfig) GetChallenger() string { if x != nil { - return x.Challengers + return x.Challenger } - return nil + return "" } func (x *BridgeConfig) GetProposer() string { @@ -3952,95 +3892,95 @@ var file_opinit_ophost_v1_types_proto_rawDesc = []byte{ 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x3a, 0x1a, 0x98, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x0d, 0x6f, 0x70, 0x68, 0x6f, - 0x73, 0x74, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xba, 0x04, 0x0a, 0x0c, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x72, 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, 0x0b, 0x63, 0x68, 0x61, 0x6c, 0x6c, - 0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x72, 0x18, 0x02, 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, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x09, 0xc8, - 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x7a, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2e, 0xc8, 0xde, 0x1f, - 0x00, 0xea, 0xde, 0x1f, 0x1d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x12, 0x73, 0x75, 0x62, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, - 0x7a, 0x0a, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2e, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, - 0x1d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x98, 0xdf, - 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x73, 0x75, - 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, - 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x57, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x49, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x45, 0x4c, 0x45, 0x53, 0x54, 0x49, 0x41, 0x10, - 0x02, 0x22, 0x41, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, - 0x0a, 0x08, 0x6c, 0x31, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x32, 0x5f, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x32, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0xc8, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x74, - 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x31, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0d, 0x6c, 0x31, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, - 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x6c, 0x31, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0x99, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, - 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, - 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x73, 0x74, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xb8, 0x04, 0x0a, 0x0c, 0x42, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 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, 0x0a, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x18, 0x02, 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, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0xc9, 0x01, 0xc8, 0xe1, - 0x1e, 0x00, 0xa8, 0xe2, 0x1e, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, - 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, - 0x62, 0x73, 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, - 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x6f, - 0x70, 0x68, 0x6f, 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x10, - 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x56, 0x31, - 0xca, 0x02, 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, - 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, - 0x6f, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x68, - 0x6f, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x09, 0xc8, 0xde, 0x1f, + 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x7a, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2e, 0xc8, 0xde, 0x1f, 0x00, 0xea, + 0xde, 0x1f, 0x1d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x12, 0x73, 0x75, 0x62, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x7a, 0x0a, + 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2e, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x1d, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x98, 0xdf, 0x1f, 0x01, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, 0x62, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, + 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xc8, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x12, 0x44, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, + 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x57, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, + 0x49, 0x54, 0x49, 0x41, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x45, 0x4c, 0x45, 0x53, 0x54, 0x49, 0x41, 0x10, 0x02, 0x22, + 0x41, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x6c, 0x31, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6c, 0x31, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x32, 0x5f, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x32, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x22, 0xc8, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1f, 0x0a, + 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x26, + 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x31, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0d, 0x6c, 0x31, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, + 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x6c, 0x31, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x6c, 0x32, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x99, 0x01, + 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x70, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0xc9, 0x01, 0xc8, 0xe1, 0x1e, 0x00, + 0xa8, 0xe2, 0x1e, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x69, 0x6e, 0x69, 0x74, + 0x2e, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x73, + 0x2f, 0x4f, 0x50, 0x69, 0x6e, 0x69, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6f, 0x70, 0x69, 0x6e, + 0x69, 0x74, 0x2f, 0x6f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x68, + 0x6f, 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x4f, 0x58, 0xaa, 0x02, 0x10, 0x4f, 0x70, + 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x10, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, 0x74, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x1c, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x5c, 0x4f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x12, 0x4f, 0x70, 0x69, 0x6e, 0x69, 0x74, 0x3a, 0x3a, 0x4f, 0x70, 0x68, 0x6f, 0x73, + 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/contrib/launchtools/steps/opbridge.go b/contrib/launchtools/steps/opbridge.go index 09eaf708..99dd0c94 100644 --- a/contrib/launchtools/steps/opbridge.go +++ b/contrib/launchtools/steps/opbridge.go @@ -136,8 +136,8 @@ func createOpBridge( return ophosttypes.NewMsgCreateBridge( executorAddress, ophosttypes.BridgeConfig{ - Challengers: []string{challengerAddress}, - Proposer: outputAddress, + Challenger: challengerAddress, + Proposer: outputAddress, BatchInfo: ophosttypes.BatchInfo{ Submitter: submitterAddress, ChainType: submitTarget, diff --git a/proto/opinit/opchild/module/v1/module.proto b/proto/opinit/opchild/module/v1/module.proto index c5c91c55..d3f66e57 100644 --- a/proto/opinit/opchild/module/v1/module.proto +++ b/proto/opinit/opchild/module/v1/module.proto @@ -6,9 +6,7 @@ import "cosmos/app/v1alpha1/module.proto"; // Module is the config object of the builder module. message Module { - option (cosmos.app.v1alpha1.module) = { - go_import: "github.com/initia-labs/OPinit/x/opchild" - }; + option (cosmos.app.v1alpha1.module) = {go_import: "github.com/initia-labs/OPinit/x/opchild"}; // Authority defines the custom module authority. // If not set, defaults to the governance module. diff --git a/proto/opinit/opchild/v1/genesis.proto b/proto/opinit/opchild/v1/genesis.proto index c035073c..ab2870ad 100644 --- a/proto/opinit/opchild/v1/genesis.proto +++ b/proto/opinit/opchild/v1/genesis.proto @@ -11,26 +11,38 @@ option go_package = "github.com/initia-labs/OPinit/x/opchild/types"; // GenesisState defines the rollup module's genesis state. message GenesisState { // params defines all the parameters of related to deposit. - Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + Params params = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // last_validator_powers is a special index that provides a historical list // of the last-block's bonded validators. - repeated LastValidatorPower last_validator_powers = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated LastValidatorPower last_validator_powers = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // delegations defines the validator set at genesis. - repeated Validator validators = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - - uint64 next_l2_sequence = 4; - uint64 next_l1_sequence = 5; - BridgeInfo bridge_info = 6; - bool exported = 7; - - repeated DenomPair denom_pairs = 8 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated Validator validators = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + + uint64 next_l2_sequence = 4; + uint64 next_l1_sequence = 5; + BridgeInfo bridge_info = 6; + bool exported = 7; + + repeated DenomPair denom_pairs = 8 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // LastValidatorPower required for validator set update logic. message LastValidatorPower { - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; // address is the address of the validator. diff --git a/proto/opinit/opchild/v1/query.proto b/proto/opinit/opchild/v1/query.proto index a8af664e..f6780096 100644 --- a/proto/opinit/opchild/v1/query.proto +++ b/proto/opinit/opchild/v1/query.proto @@ -19,42 +19,42 @@ service Query { // gas if the pagination field is incorrectly set. rpc Validators(QueryValidatorsRequest) returns (QueryValidatorsResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/validators"; + option (google.api.http).get = "/opinit/opchild/v1/validators"; } // Validator queries validator info for given validator address. rpc Validator(QueryValidatorRequest) returns (QueryValidatorResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/validator/{validator_addr}"; + option (google.api.http).get = "/opinit/opchild/v1/validator/{validator_addr}"; } // BridgeInfo queries the bridge information. rpc BridgeInfo(QueryBridgeInfoRequest) returns (QueryBridgeInfoResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/bridge_info"; + option (google.api.http).get = "/opinit/opchild/v1/bridge_info"; } // Parameters queries the rollup parameters. rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/params"; + option (google.api.http).get = "/opinit/opchild/v1/params"; } // NextL1Sequence queries the next l1 sequence number. rpc NextL1Sequence(QueryNextL1SequenceRequest) returns (QueryNextL1SequenceResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/next_l1_sequence"; + option (google.api.http).get = "/opinit/opchild/v1/next_l1_sequence"; } // NextL2Sequence queries the next l2 sequence number. rpc NextL2Sequence(QueryNextL2SequenceRequest) returns (QueryNextL2SequenceResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/next_l2_sequence"; + option (google.api.http).get = "/opinit/opchild/v1/next_l2_sequence"; } rpc BaseDenom(QueryBaseDenomRequest) returns (QueryBaseDenomResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/opchild/v1/base_denom/{denom}"; + option (google.api.http).get = "/opinit/opchild/v1/base_denom/{denom}"; } } @@ -67,7 +67,10 @@ message QueryValidatorsRequest { // QueryValidatorsResponse is response type for the Query/Validators RPC method message QueryValidatorsResponse { // validators contains all the queried validators. - repeated Validator validators = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated Validator validators = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; @@ -82,7 +85,10 @@ message QueryValidatorRequest { // QueryValidatorResponse is response type for the Query/Validator RPC method message QueryValidatorResponse { // validator defines the validator info. - Validator validator = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + Validator validator = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryBridgeInfoRequest is request type for the Query/BridgeInfo RPC method. @@ -91,7 +97,10 @@ message QueryBridgeInfoRequest {} // QueryBridgeInfoResponse is response type for the Query/BridgeInfo RPC method. message QueryBridgeInfoResponse { // bridge_info holds all the information about the bridge. - BridgeInfo bridge_info = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + BridgeInfo bridge_info = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryParamsRequest is request type for the Query/Params RPC method. @@ -100,7 +109,10 @@ message QueryParamsRequest {} // QueryParamsResponse is response type for the Query/Params RPC method. message QueryParamsResponse { // params holds all the parameters of this module. - Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + Params params = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryNextL1SequenceRequest is request type for the Query/NextL1Sequence RPC method. diff --git a/proto/opinit/opchild/v1/tx.proto b/proto/opinit/opchild/v1/tx.proto index 62955e10..eba7e373 100644 --- a/proto/opinit/opchild/v1/tx.proto +++ b/proto/opinit/opchild/v1/tx.proto @@ -9,7 +9,7 @@ import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "opinit/opchild/v1/types.proto"; -option go_package = "github.com/initia-labs/OPinit/x/opchild/types"; +option go_package = "github.com/initia-labs/OPinit/x/opchild/types"; option (gogoproto.goproto_getters_all) = false; // Msg defines the rollup Msg service. @@ -64,7 +64,7 @@ service Msg { // authority messages with validator permission. message MsgExecuteMessages { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "opchild/MsgExecuteMessages"; + option (amino.name) = "opchild/MsgExecuteMessages"; // Sender is the that actor that signed a messages string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -82,13 +82,19 @@ message MsgExecuteMessagesResponse {} // MsgSetBridgeInfo is a message to set the registered bridge information. message MsgSetBridgeInfo { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "opchild/MsgSetBridgeInfo"; + option (amino.name) = "opchild/MsgSetBridgeInfo"; // the sender address - string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string sender = 1 [ + (gogoproto.moretags) = "yaml:\"sender\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // bridge_info is the bridge information to be set. - BridgeInfo bridge_info = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + BridgeInfo bridge_info = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // MsgSetBridgeInfoResponse returns set bridge info result data @@ -97,10 +103,13 @@ message MsgSetBridgeInfoResponse {} // MsgFinalizeTokenDeposit is a message to submit deposit funds from upper layer message MsgFinalizeTokenDeposit { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "opchild/MsgFinalizeTokenDeposit"; + option (amino.name) = "opchild/MsgFinalizeTokenDeposit"; // the sender address - string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string sender = 1 [ + (gogoproto.moretags) = "yaml:\"sender\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // from is l1 sender address string from = 2; @@ -109,8 +118,11 @@ message MsgFinalizeTokenDeposit { string to = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // amount is the coin amount to deposit. - cosmos.base.v1beta1.Coin amount = 4 - [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + cosmos.base.v1beta1.Coin amount = 4 [ + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // sequence is the sequence number of l1 bridge uint64 sequence = 5; @@ -122,7 +134,10 @@ message MsgFinalizeTokenDeposit { string base_denom = 7; /// data is a extra bytes for hooks. - bytes data = 8 [(gogoproto.nullable) = true, (amino.dont_omitempty) = true]; + bytes data = 8 [ + (gogoproto.nullable) = true, + (amino.dont_omitempty) = true + ]; } // MsgFinalizeTokenDepositResponse returns deposit result data @@ -133,7 +148,7 @@ message MsgFinalizeTokenDepositResponse { // MsgInitiateTokenWithdrawal is a message to withdraw a new token from L2 to L1. message MsgInitiateTokenWithdrawal { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "opchild/MsgInitiateTokenWithdrawal"; + option (amino.name) = "opchild/MsgInitiateTokenWithdrawal"; // the l2 sender address string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -142,8 +157,11 @@ message MsgInitiateTokenWithdrawal { string to = 2; // amount is the coin amount to withdraw. - cosmos.base.v1beta1.Coin amount = 4 - [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + cosmos.base.v1beta1.Coin amount = 4 [ + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // MsgInitiateTokenWithdrawalResponse returns create token result data @@ -158,18 +176,21 @@ message MsgInitiateTokenWithdrawalResponse { // MsgAddValidator defines a SDK message for adding a new validator. message MsgAddValidator { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "opchild/MsgAddValidator"; + option (amino.name) = "opchild/MsgAddValidator"; - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; // authority is the address that controls the module // (defaults to x/opchild unless overwritten). - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; - string moniker = 2; - string validator_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - google.protobuf.Any pubkey = 4 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; + string moniker = 2; + string validator_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + google.protobuf.Any pubkey = 4 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; } // MsgAddValidatorResponse returns add result data @@ -178,11 +199,14 @@ message MsgAddValidatorResponse {} // MsgAddValidator is a message to remove a validator from designated list message MsgRemoveValidator { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "opchild/MsgRemoveValidator"; + option (amino.name) = "opchild/MsgRemoveValidator"; // authority is the address that controls the module // (defaults to x/opchild unless overwritten). - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // validator is the validator to remove. string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -194,11 +218,14 @@ message MsgRemoveValidatorResponse {} // MsgUpdateParams is a message to update parameters message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "opchild/MsgUpdateParams"; + option (amino.name) = "opchild/MsgUpdateParams"; // authority is the address that controls the module // (defaults to x/opchild unless overwritten). - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // params are the arbitrary parameters to be updated. Params params = 2; @@ -211,20 +238,23 @@ message MsgUpdateParamsResponse {} // account to the recipient address. message MsgSpendFeePool { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "opchild/MsgSpendFeePool"; + option (amino.name) = "opchild/MsgSpendFeePool"; // authority is the address that controls the module // (defaults to x/opchild unless overwritten). - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // recipient is address to receive the coins. string recipient = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // the coin amount to spend. repeated cosmos.base.v1beta1.Coin amount = 3 [ - (gogoproto.moretags) = "yaml:\"amount\"", - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true, + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -235,16 +265,22 @@ message MsgSpendFeePoolResponse {} // MsgUpdateOracle is a message to update oracle prices which contains L1 extended commits for oracle. message MsgUpdateOracle { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "opchild/MsgUpdateOracle"; + option (amino.name) = "opchild/MsgUpdateOracle"; // the sender address - string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string sender = 1 [ + (gogoproto.moretags) = "yaml:\"sender\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // height is the height of l1 which is including the oracle message uint64 height = 2 [(amino.dont_omitempty) = true]; /// data is oracle votes bytes. - bytes data = 3 [(gogoproto.nullable) = true, (amino.dont_omitempty) = true]; + bytes data = 3 [ + (gogoproto.nullable) = true, + (amino.dont_omitempty) = true + ]; } // MsgUpdateOracleResponse returns oracle update result data diff --git a/proto/opinit/opchild/v1/types.proto b/proto/opinit/opchild/v1/types.proto index 554d1aa1..94ba8cd7 100644 --- a/proto/opinit/opchild/v1/types.proto +++ b/proto/opinit/opchild/v1/types.proto @@ -9,43 +9,43 @@ import "google/protobuf/any.proto"; import "opinit/ophost/v1/types.proto"; import "tendermint/abci/types.proto"; -option go_package = "github.com/initia-labs/OPinit/x/opchild/types"; -option (gogoproto.equal_all) = true; +option go_package = "github.com/initia-labs/OPinit/x/opchild/types"; +option (gogoproto.equal_all) = true; option (gogoproto.goproto_getters_all) = false; // Params defines the set of opchild parameters. message Params { - option (amino.name) = "opchild/Params"; - option (gogoproto.equal) = true; + option (amino.name) = "opchild/Params"; + option (gogoproto.equal) = true; option (gogoproto.goproto_stringer) = false; // max_validators is the maximum number of validators. uint32 max_validators = 1 [(gogoproto.moretags) = "yaml:\"max_validators\""]; // historical_entries is the number of historical entries to persist. - uint32 historical_entries = 2 [(gogoproto.moretags) = "yaml:\"historical_entries\""]; + uint32 historical_entries = 2 [(gogoproto.moretags) = "yaml:\"historical_entries\""]; repeated cosmos.base.v1beta1.DecCoin min_gas_prices = 3 [ - (gogoproto.moretags) = "yaml:\"min_gas_price\"", - (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"min_gas_price\"", + (gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins" ]; // the account address of bridge executor who can execute permissioned bridge // messages. repeated string bridge_executors = 4 [ - (cosmos_proto.scalar) = "cosmos.AddressString", + (cosmos_proto.scalar) = "cosmos.AddressString", (amino.dont_omitempty) = true, - (gogoproto.moretags) = "yaml:\"bridge_executors\"" + (gogoproto.moretags) = "yaml:\"bridge_executors\"" ]; // the account address of admin who can execute permissioned cosmos messages. string admin = 5 [ - (cosmos_proto.scalar) = "cosmos.AddressString", + (cosmos_proto.scalar) = "cosmos.AddressString", (amino.dont_omitempty) = true, - (gogoproto.moretags) = "yaml:\"admin\"" + (gogoproto.moretags) = "yaml:\"admin\"" ]; // the list of addresses that are allowed to pay zero fee. repeated string fee_whitelist = 6 [ - (cosmos_proto.scalar) = "cosmos.AddressString", + (cosmos_proto.scalar) = "cosmos.AddressString", (amino.dont_omitempty) = true, - (gogoproto.moretags) = "yaml:\"fee_whitelist\"" + (gogoproto.moretags) = "yaml:\"fee_whitelist\"" ]; } @@ -58,9 +58,9 @@ message Params { // exchange rate. Voting power can be calculated as total bonded shares // multiplied by exchange rate. message Validator { - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_stringer) = false; - option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_getters) = false; string moniker = 1 [(gogoproto.moretags) = "yaml:\"moniker\""]; // operator_address defines the address of the validator's operator; @@ -68,8 +68,10 @@ message Validator { string operator_address = 2 [(gogoproto.moretags) = "yaml:\"operator_address\""]; // consensus_pubkey is the consensus public key of the validator, // as a Protobuf Any. - google.protobuf.Any consensus_pubkey = 3 - [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", (gogoproto.moretags) = "yaml:\"consensus_pubkey\""]; + google.protobuf.Any consensus_pubkey = 3 [ + (cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", + (gogoproto.moretags) = "yaml:\"consensus_pubkey\"" + ]; int64 cons_power = 4 [(gogoproto.moretags) = "yaml:\"cons_power\""]; } @@ -79,7 +81,10 @@ message Validator { message ValidatorUpdates { option (gogoproto.equal) = false; - repeated tendermint.abci.ValidatorUpdate updates = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated tendermint.abci.ValidatorUpdate updates = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // BridgeInfo defines the information of the bridge. @@ -98,14 +103,17 @@ message BridgeInfo { string l1_client_id = 4; // bridge_config is the configuration of the bridge. - opinit.ophost.v1.BridgeConfig bridge_config = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + opinit.ophost.v1.BridgeConfig bridge_config = 5 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // CoinsWrapper defines the set of coins. message CoinsWrapper { repeated cosmos.base.v1beta1.Coin coins = 1 [ - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true, + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -123,6 +131,6 @@ enum ResponseResultType { } message DenomPair { - string denom = 1; + string denom = 1; string base_denom = 2; } diff --git a/proto/opinit/ophost/module/v1/module.proto b/proto/opinit/ophost/module/v1/module.proto index 07cc2746..9b096fb7 100644 --- a/proto/opinit/ophost/module/v1/module.proto +++ b/proto/opinit/ophost/module/v1/module.proto @@ -6,9 +6,7 @@ import "cosmos/app/v1alpha1/module.proto"; // Module is the config object of the builder module. message Module { - option (cosmos.app.v1alpha1.module) = { - go_import: "github.com/initia-labs/OPinit/x/ophost" - }; + option (cosmos.app.v1alpha1.module) = {go_import: "github.com/initia-labs/OPinit/x/ophost"}; // Authority defines the custom module authority. // If not set, defaults to the governance module. diff --git a/proto/opinit/ophost/v1/auth.proto b/proto/opinit/ophost/v1/auth.proto index 197ee64e..b3c74733 100644 --- a/proto/opinit/ophost/v1/auth.proto +++ b/proto/opinit/ophost/v1/auth.proto @@ -2,14 +2,14 @@ syntax = "proto3"; package opinit.ophost.v1; import "amino/amino.proto"; -import "gogoproto/gogo.proto"; import "cosmos/auth/v1beta1/auth.proto"; +import "gogoproto/gogo.proto"; option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; // BridgeAccount defines an account for bridge that holds coins without pubkey. message BridgeAccount { - option (amino.name) = "ophost/BridgeAccount"; + option (amino.name) = "ophost/BridgeAccount"; option (gogoproto.goproto_getters) = false; cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true]; diff --git a/proto/opinit/ophost/v1/genesis.proto b/proto/opinit/ophost/v1/genesis.proto index 1a2275ee..fdaf1077 100644 --- a/proto/opinit/ophost/v1/genesis.proto +++ b/proto/opinit/ophost/v1/genesis.proto @@ -10,10 +10,16 @@ option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; // GenesisState defines the rollup module's genesis state. message GenesisState { // params defines all the parameters of related to deposit. - Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + Params params = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // bridges defines the registered bridges. - repeated Bridge bridges = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated Bridge bridges = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // the id will be asisgned to a new bridge. uint64 next_bridge_id = 3; @@ -27,19 +33,34 @@ message Bridge { // next output index. uint64 next_output_index = 3; // a bridge config. - BridgeConfig bridge_config = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + BridgeConfig bridge_config = 4 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // a list of (l1, l2) token pairs - repeated TokenPair token_pairs = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated TokenPair token_pairs = 5 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // a list of l2 output proposals, which has been proven. repeated bytes proven_withdrawals = 6; // a list of l2 output proposals. - repeated WrappedOutput proposals = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated WrappedOutput proposals = 7 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // a list of batch infos. - repeated BatchInfoWithOutput batch_infos = 8 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated BatchInfoWithOutput batch_infos = 8 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // WrappedOutput defines a wrapped output containing its index and proposal. message WrappedOutput { - uint64 output_index = 1; - Output output_proposal = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; -} \ No newline at end of file + uint64 output_index = 1; + Output output_proposal = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} diff --git a/proto/opinit/ophost/v1/query.proto b/proto/opinit/ophost/v1/query.proto index 7b46d000..110ffcf0 100644 --- a/proto/opinit/ophost/v1/query.proto +++ b/proto/opinit/ophost/v1/query.proto @@ -16,79 +16,79 @@ service Query { // Bridge queries bridge info. rpc Bridge(QueryBridgeRequest) returns (QueryBridgeResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}"; } // Bridges queries bridge infos. rpc Bridges(QueryBridgesRequest) returns (QueryBridgesResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges"; + option (google.api.http).get = "/opinit/ophost/v1/bridges"; } // TokenPairByL1Denom queries token pair by l1 denom. rpc TokenPairByL1Denom(QueryTokenPairByL1DenomRequest) returns (QueryTokenPairByL1DenomResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs/by_l1_denom"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs/by_l1_denom"; } // TokenPairByL2Denom queries token pair by l2 denom. rpc TokenPairByL2Denom(QueryTokenPairByL2DenomRequest) returns (QueryTokenPairByL2DenomResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs/by_l2_denom"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs/by_l2_denom"; } // TokenPairs queries all (l1 denom, l2 denom) pair. rpc TokenPairs(QueryTokenPairsRequest) returns (QueryTokenPairsResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/token_pairs"; } // LastFinalizedOutput queries last finalized output. rpc LastFinalizedOutput(QueryLastFinalizedOutputRequest) returns (QueryLastFinalizedOutputResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/last_finalized_output"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/last_finalized_output"; } // OutputProposal queries output proposal by output index. rpc OutputProposal(QueryOutputProposalRequest) returns (QueryOutputProposalResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/outputs/{output_index}"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/outputs/{output_index}"; } // OutputProposals queries all output proposals. rpc OutputProposals(QueryOutputProposalsRequest) returns (QueryOutputProposalsResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/outputs"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/outputs"; } // Parameters queries the rollup parameters. rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/params"; + option (google.api.http).get = "/opinit/ophost/v1/params"; } // Claimed queries whether the output is claimed. rpc Claimed(QueryClaimedRequest) returns (QueryClaimedResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/withdrawals/claimed/by_hash"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/withdrawals/claimed/by_hash"; } // NextL1Sequence queries the next l1 sequence. rpc NextL1Sequence(QueryNextL1SequenceRequest) returns (QueryNextL1SequenceResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/next_l1_sequence"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/next_l1_sequence"; } // BatchInfos queries all batch infos. rpc BatchInfos(QueryBatchInfosRequest) returns (QueryBatchInfosResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/batch_infos"; + option (google.api.http).get = "/opinit/ophost/v1/bridges/{bridge_id}/batch_infos"; } } // QueryBridgeRequest is request type for Query/Bridge RPC method. message QueryBridgeRequest { - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; uint64 bridge_id = 1; @@ -96,14 +96,17 @@ message QueryBridgeRequest { // QueryBridgeResponse is response type for the Query/Bridge RPC method message QueryBridgeResponse { - uint64 bridge_id = 1; - string bridge_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - BridgeConfig bridge_config = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + uint64 bridge_id = 1; + string bridge_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + BridgeConfig bridge_config = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryBridgesRequest is request type for Query/Bridges RPC method. message QueryBridgesRequest { - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; // pagination defines the pagination in the request. @@ -112,7 +115,10 @@ message QueryBridgesRequest { // QueryBridgesResponse is response type for the Query/Bridges RPC method message QueryBridgesResponse { - repeated QueryBridgeResponse bridges = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated QueryBridgeResponse bridges = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; @@ -121,23 +127,29 @@ message QueryBridgesResponse { // QueryTokenPairByL1DenomRequest is response type for the Query/TokenPairByL1Denom RPC method message QueryTokenPairByL1DenomRequest { uint64 bridge_id = 1; - string l1_denom = 2; + string l1_denom = 2; } // QueryTokenPairByL1DenomResponse is response type for the Query/TokenPairByL1Denom RPC method message QueryTokenPairByL1DenomResponse { - TokenPair token_pair = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + TokenPair token_pair = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryTokenPairByL2DenomRequest is response type for the Query/TokenPairByL2Denom RPC method message QueryTokenPairByL2DenomRequest { uint64 bridge_id = 1; - string l2_denom = 2; + string l2_denom = 2; } // QueryTokenPairByL2DenomResponse is response type for the Query/TokenPairByL2Denom RPC method message QueryTokenPairByL2DenomResponse { - TokenPair token_pair = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + TokenPair token_pair = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryTokenPairsRequest is response type for the Query/TokenPairs RPC method @@ -150,7 +162,10 @@ message QueryTokenPairsRequest { // QueryTokenPairsResponse is response type for the Query/TokenPairs RPC method message QueryTokenPairsResponse { - repeated TokenPair token_pairs = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated TokenPair token_pairs = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; @@ -163,21 +178,27 @@ message QueryLastFinalizedOutputRequest { // QueryLastFinalizedOutputResponse is response type for the Query/LastFinalizedOutput RPC method message QueryLastFinalizedOutputResponse { - uint64 output_index = 1; - Output output_proposal = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + uint64 output_index = 1; + Output output_proposal = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryOutputProposalRequest is response type for the Query/OutputProposal RPC method message QueryOutputProposalRequest { - uint64 bridge_id = 1; + uint64 bridge_id = 1; uint64 output_index = 2; } // QueryOutputProposalResponse is response type for the Query/OutputProposal RPC method message QueryOutputProposalResponse { - uint64 bridge_id = 1; - uint64 output_index = 2; - Output output_proposal = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + uint64 bridge_id = 1; + uint64 output_index = 2; + Output output_proposal = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryOutputProposalsRequest is response type for the Query/OutputProposals RPC method @@ -189,8 +210,10 @@ message QueryOutputProposalsRequest { // QueryOutputProposalsResponse is response type for the Query/OutputProposals RPC method message QueryOutputProposalsResponse { - repeated QueryOutputProposalResponse output_proposals = 1 - [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated QueryOutputProposalResponse output_proposals = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } @@ -201,13 +224,16 @@ message QueryParamsRequest {} // QueryParamsResponse is response type for the Query/Params RPC method. message QueryParamsResponse { // params holds all the parameters of this module. - Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + Params params = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // QueryClaimedRequest is request type for the Query/Claimed RPC method. message QueryClaimedRequest { - uint64 bridge_id = 1; - bytes withdrawal_hash = 2; + uint64 bridge_id = 1; + bytes withdrawal_hash = 2; } // QueryClaimedResponse is response type for the Query/Claimed RPC method @@ -227,13 +253,16 @@ message QueryNextL1SequenceResponse { // QueryBatchInfosRequest is request type for Query/BatchInfos RPC method. message QueryBatchInfosRequest { - uint64 bridge_id = 1; + uint64 bridge_id = 1; cosmos.base.query.v1beta1.PageRequest pagination = 2; } // QueryBatchInfosResponse is response type for Query/BatchInfos RPC method. message QueryBatchInfosResponse { - repeated BatchInfoWithOutput batch_infos = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated BatchInfoWithOutput batch_infos = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } diff --git a/proto/opinit/ophost/v1/tx.proto b/proto/opinit/ophost/v1/tx.proto index 954dda13..e841c955 100644 --- a/proto/opinit/ophost/v1/tx.proto +++ b/proto/opinit/ophost/v1/tx.proto @@ -8,7 +8,7 @@ import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "opinit/ophost/v1/types.proto"; -option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; +option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; option (gogoproto.goproto_getters_all) = false; // Msg defines the rollup Msg service. @@ -54,8 +54,8 @@ service Msg { // UpdateProposer defines a rpc handler method for MsgUpdateProposer. rpc UpdateProposer(MsgUpdateProposer) returns (MsgUpdateProposerResponse); - // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. - rpc UpdateChallengers(MsgUpdateChallengers) returns (MsgUpdateChallengersResponse); + // UpdateChallenger defines a rpc handler method for MsgUpdateChallenger. + rpc UpdateChallenger(MsgUpdateChallenger) returns (MsgUpdateChallengerResponse); // UpdateBatchInfo defines a rpc handler method for MsgUpdateBatchInfo. rpc UpdateBatchInfo(MsgUpdateBatchInfo) returns (MsgUpdateBatchInfoResponse); @@ -77,11 +77,14 @@ service Msg { // MsgRecordBatch is no_op message, which is only for tx indexing. message MsgRecordBatch { option (cosmos.msg.v1.signer) = "submitter"; - option (amino.name) = "ophost/MsgRecordBatch"; + option (amino.name) = "ophost/MsgRecordBatch"; - string submitter = 1 [(gogoproto.moretags) = "yaml:\"submitter\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - bytes batch_bytes = 3 [(gogoproto.moretags) = "yaml:\"batch_bytes\""]; + string submitter = 1 [ + (gogoproto.moretags) = "yaml:\"submitter\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + bytes batch_bytes = 3 [(gogoproto.moretags) = "yaml:\"batch_bytes\""]; } // MsgRecordBatchResponse returns MsgRecordBatch message result data @@ -94,11 +97,17 @@ message MsgRecordBatchResponse {} // new bridge id. message MsgCreateBridge { option (cosmos.msg.v1.signer) = "creator"; - option (amino.name) = "ophost/MsgCreateBridge"; - - string creator = 1 [(gogoproto.moretags) = "yaml:\"creator\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - BridgeConfig config = 2 - [(gogoproto.moretags) = "yaml:\"config\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + option (amino.name) = "ophost/MsgCreateBridge"; + + string creator = 1 [ + (gogoproto.moretags) = "yaml:\"creator\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + BridgeConfig config = 2 [ + (gogoproto.moretags) = "yaml:\"config\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // MsgCreateBridgeResponse returns MsgCreateBridge message @@ -113,13 +122,16 @@ message MsgCreateBridgeResponse { // MsgProposeOutput is a message to submit l2 block proposal. message MsgProposeOutput { option (cosmos.msg.v1.signer) = "proposer"; - option (amino.name) = "ophost/MsgProposeOutput"; + option (amino.name) = "ophost/MsgProposeOutput"; - string proposer = 1 [(gogoproto.moretags) = "yaml:\"proposer\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + string proposer = 1 [ + (gogoproto.moretags) = "yaml:\"proposer\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; uint64 l2_block_number = 4 [(gogoproto.moretags) = "yaml:\"l2_block_number\""]; - bytes output_root = 5 [(gogoproto.moretags) = "yaml:\"output_root\""]; + bytes output_root = 5 [(gogoproto.moretags) = "yaml:\"output_root\""]; } // MsgProposeOutputResponse returns deposit result data @@ -132,10 +144,13 @@ message MsgProposeOutputResponse {} // in [outputIndex, nextOutputIndex) range. message MsgDeleteOutput { option (cosmos.msg.v1.signer) = "challenger"; - option (amino.name) = "ophost/MsgDeleteOutput"; + option (amino.name) = "ophost/MsgDeleteOutput"; - string challenger = 1 [(gogoproto.moretags) = "yaml:\"challenger\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + string challenger = 1 [ + (gogoproto.moretags) = "yaml:\"challenger\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; } @@ -148,17 +163,27 @@ message MsgDeleteOutputResponse {} // MsgInitiateTokenDeposit is a message to deposit a new token from L1 to L2. message MsgInitiateTokenDeposit { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "ophost/MsgInitiateTokenDeposit"; + option (amino.name) = "ophost/MsgInitiateTokenDeposit"; - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; - string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string sender = 1 [ + (gogoproto.moretags) = "yaml:\"sender\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - string to = 3 [(gogoproto.moretags) = "yaml:\"to\""]; - cosmos.base.v1beta1.Coin amount = 4 - [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - bytes data = 5 [(gogoproto.moretags) = "yaml:\"data\"", (gogoproto.nullable) = true, (amino.dont_omitempty) = false]; + string to = 3 [(gogoproto.moretags) = "yaml:\"to\""]; + cosmos.base.v1beta1.Coin amount = 4 [ + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + bytes data = 5 [ + (gogoproto.moretags) = "yaml:\"data\"", + (gogoproto.nullable) = true, + (amino.dont_omitempty) = false + ]; } // MsgInitiateTokenDepositResponse returns a message handle result. @@ -169,28 +194,40 @@ message MsgInitiateTokenDepositResponse { // MsgFinalizeTokenWithdrawal is a message finalizing funds withdrawal from L2. message MsgFinalizeTokenWithdrawal { option (cosmos.msg.v1.signer) = "sender"; - option (amino.name) = "ophost/MsgFinalizeTokenWithdrawal"; + option (amino.name) = "ophost/MsgFinalizeTokenWithdrawal"; // address of the sender of the transaction - string sender = 1 [(gogoproto.moretags) = "yaml:\"sender\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; - repeated bytes withdrawal_proofs = 4 [(gogoproto.nullable) = true, (amino.dont_omitempty) = false]; + string sender = 1 [ + (gogoproto.moretags) = "yaml:\"sender\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + uint64 output_index = 3 [(gogoproto.moretags) = "yaml:\"output_index\""]; + repeated bytes withdrawal_proofs = 4 [ + (gogoproto.nullable) = true, + (amino.dont_omitempty) = false + ]; // withdraw tx data - string from = 5 [(gogoproto.moretags) = "yaml:\"from\""]; - string to = 6 [(gogoproto.moretags) = "yaml:\"to\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string from = 5 [(gogoproto.moretags) = "yaml:\"from\""]; + string to = 6 [ + (gogoproto.moretags) = "yaml:\"to\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; uint64 sequence = 7 [(gogoproto.moretags) = "yaml:\"sequence\""]; - cosmos.base.v1beta1.Coin amount = 8 - [(gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + cosmos.base.v1beta1.Coin amount = 8 [ + (gogoproto.moretags) = "yaml:\"amount\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // output root proofs // version of the output root - bytes version = 9 [(gogoproto.moretags) = "yaml:\"version\""]; - bytes storage_root = 10 [(gogoproto.moretags) = "yaml:\"storage_root\""]; + bytes version = 9 [(gogoproto.moretags) = "yaml:\"version\""]; + bytes storage_root = 10 [(gogoproto.moretags) = "yaml:\"storage_root\""]; bytes last_block_hash = 11 [(gogoproto.moretags) = "yaml:\"last_block_hash\""]; } @@ -203,14 +240,19 @@ message MsgFinalizeTokenWithdrawalResponse {} // MsgUpdateProposer is a message to change a proposer message MsgUpdateProposer { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "ophost/MsgUpdateProposer"; + option (amino.name) = "ophost/MsgUpdateProposer"; // authority is the address that controls the module (defaults to x/gov unless overwritten) // or the current proposer address. - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - string new_proposer = 3 - [(gogoproto.moretags) = "yaml:\"new_proposer\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + string new_proposer = 3 [ + (gogoproto.moretags) = "yaml:\"new_proposer\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; } // MsgUpdateProposerResponse returns a message handle result. @@ -222,22 +264,27 @@ message MsgUpdateProposerResponse { } // MsgUpdateChallenger is a message to change a challenger -message MsgUpdateChallengers { +message MsgUpdateChallenger { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "ophost/MsgUpdateChallengers"; + option (amino.name) = "ophost/MsgUpdateChallenger"; // authority is the address that controls the module (defaults to x/gov unless overwritten) // or the current challenger address. // // If the given authority is a challenger address, it has the ability to replace itself with another address. - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - repeated string new_challengers = 3 - [(gogoproto.moretags) = "yaml:\"new_challengers\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string challenger = 3 [ + (gogoproto.moretags) = "yaml:\"challenger\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; } -// MsgUpdateChallengersResponse returns a message handle result. -message MsgUpdateChallengersResponse { +// MsgUpdateChallengerResponse returns a message handle result. +message MsgUpdateChallengerResponse { // last finalized output index uint64 output_index = 1; // last finalized l2 block number @@ -247,14 +294,20 @@ message MsgUpdateChallengersResponse { // MsgUpdateBatchInfo is a message to change a batch info message MsgUpdateBatchInfo { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "ophost/MsgUpdateBatchInfo"; + option (amino.name) = "ophost/MsgUpdateBatchInfo"; // authority is the address that controls the module (defaults to x/gov unless overwritten) // or the current proposer address. - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; - uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - BatchInfo new_batch_info = 3 - [(gogoproto.moretags) = "yaml:\"new_batch_info\"", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; + BatchInfo new_batch_info = 3 [ + (gogoproto.moretags) = "yaml:\"new_batch_info\"", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } // MsgUpdateBatchInfoResponse returns a message handle result. @@ -268,13 +321,16 @@ message MsgUpdateBatchInfoResponse { // MsgUpdateOracleFlag is a message to change oracle config message MsgUpdateOracleConfig { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "ophost/MsgUpdateOracleConfig"; + option (amino.name) = "ophost/MsgUpdateOracleConfig"; // authority is the address that controls the module (defaults to x/gov unless overwritten) // or the current proposer address. - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - bool oracle_enabled = 3 [(gogoproto.moretags) = "yaml:\"oracle_enabled\""]; + bool oracle_enabled = 3 [(gogoproto.moretags) = "yaml:\"oracle_enabled\""]; } // MsgUpdateOracleFlagResponse returns a message handle result. @@ -283,16 +339,19 @@ message MsgUpdateOracleConfigResponse {} // MsgUpdateMetadata is a message to change metadata message MsgUpdateMetadata { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "ophost/MsgUpdateMetadata"; + option (amino.name) = "ophost/MsgUpdateMetadata"; // authority is the address that controls the module (defaults to x/gov unless overwritten) // or the current challenger address. // // If the given authority is a challenger address, it has the ability to replace oneself to another address or remove // oneself. - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; uint64 bridge_id = 2 [(gogoproto.moretags) = "yaml:\"bridge_id\""]; - bytes metadata = 3 [(gogoproto.moretags) = "yaml:\"metadata\""]; + bytes metadata = 3 [(gogoproto.moretags) = "yaml:\"metadata\""]; } // MsgUpdateMetadataResponse returns a message handle result. @@ -306,11 +365,14 @@ message MsgUpdateMetadataResponse { // MsgUpdateParams is a message to update parameters message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "ophost/MsgUpdateParams"; + option (amino.name) = "ophost/MsgUpdateParams"; // authority is the address that controls the module // (defaults to x/gov unless overwritten). - string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; + string authority = 1 [ + (gogoproto.moretags) = "yaml:\"authority\"", + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; // params are the arbitrary parameters to be updated. Params params = 2 [(gogoproto.moretags) = "yaml:\"params\""]; diff --git a/proto/opinit/ophost/v1/types.proto b/proto/opinit/ophost/v1/types.proto index b67fddff..affeee1b 100644 --- a/proto/opinit/ophost/v1/types.proto +++ b/proto/opinit/ophost/v1/types.proto @@ -8,20 +8,20 @@ import "gogoproto/gogo.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; -option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; -option (gogoproto.equal_all) = true; +option go_package = "github.com/initia-labs/OPinit/x/ophost/types"; +option (gogoproto.equal_all) = true; option (gogoproto.goproto_getters_all) = false; // Params defines the set of ophost parameters. message Params { - option (amino.name) = "ophost/Params"; - option (gogoproto.equal) = true; + option (amino.name) = "ophost/Params"; + option (gogoproto.equal) = true; option (gogoproto.goproto_stringer) = false; // The amount to be paid by l2 creator. repeated cosmos.base.v1beta1.Coin registration_fee = 1 [ - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true, + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -29,25 +29,28 @@ message Params { // BridgeConfig defines the set of bridge config. message BridgeConfig { // The address of the challenger. - repeated string challengers = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string challenger = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // The address of the proposer. string proposer = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // The information about batch submission. - BatchInfo batch_info = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + BatchInfo batch_info = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // The time interval at which checkpoints must be submitted. // NOTE: this param is currently not used, but will be used for challenge in future. google.protobuf.Duration submission_interval = 4 [ (gogoproto.stdduration) = true, - (gogoproto.jsontag) = "submission_interval,omitempty", - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true + (gogoproto.jsontag) = "submission_interval,omitempty", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // The minium time duration that must elapse before a withdrawal can be finalized. google.protobuf.Duration finalization_period = 5 [ (gogoproto.stdduration) = true, - (gogoproto.jsontag) = "finalization_period,omitempty", - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true + (gogoproto.jsontag) = "finalization_period,omitempty", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // The the first l2 block will be recorded on l1. uint64 submission_start_height = 6; @@ -91,14 +94,23 @@ message Output { // The l1 block number that the output root was submitted in. uint64 l1_block_number = 2; // Timestamp of the l1 block that the output root was submitted in. - google.protobuf.Timestamp l1_block_time = 3 - [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + google.protobuf.Timestamp l1_block_time = 3 [ + (gogoproto.stdtime) = true, + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; // The l2 block number that the output root was submitted in. uint64 l2_block_number = 4; } // BatchInfoWithOutput defines the batch information with output. message BatchInfoWithOutput { - BatchInfo batch_info = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; - Output output = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + BatchInfo batch_info = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + Output output = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; } diff --git a/x/opchild/client/cli/tx.go b/x/opchild/client/cli/tx.go index b97e4aa8..2ffe8043 100644 --- a/x/opchild/client/cli/tx.go +++ b/x/opchild/client/cli/tx.go @@ -321,7 +321,7 @@ func NewSetBridgeInfoCmd(ac address.Codec) *cobra.Command { } bridgeConfig := ophosttypes.BridgeConfig{ - Challengers: origConfig.Challengers, + Challenger: origConfig.Challenger, Proposer: origConfig.Proposer, SubmissionInterval: submissionInterval, FinalizationPeriod: finalizationPeriod, diff --git a/x/opchild/client/cli/tx_test.go b/x/opchild/client/cli/tx_test.go index 0fbdda51..f3f14e34 100644 --- a/x/opchild/client/cli/tx_test.go +++ b/x/opchild/client/cli/tx_test.go @@ -430,7 +430,7 @@ func (s *CLITestSuite) TestNewSetBridgeInfo() { _, err = invalidConfig.WriteString(`{}`) s.NoError(err) _, err = validConfig.WriteString(`{ - "challengers": ["init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g"], + "challenger": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", "proposer": "init1k2svyvm60r8rhnzr9vemk5f6fksvm6tyeujp3c", "submission_interval": "100s", "finalization_period": "1000s", diff --git a/x/opchild/keeper/genesis_test.go b/x/opchild/keeper/genesis_test.go index 878d6135..bdf6ec45 100644 --- a/x/opchild/keeper/genesis_test.go +++ b/x/opchild/keeper/genesis_test.go @@ -37,8 +37,8 @@ func Test_GenesisImportExport(t *testing.T) { BridgeId: 1, BridgeAddr: addrsStr[1], BridgeConfig: ophosttypes.BridgeConfig{ - Challengers: []string{addrsStr[2]}, - Proposer: addrsStr[3], + Challenger: addrsStr[2], + Proposer: addrsStr[3], BatchInfo: ophosttypes.BatchInfo{ Submitter: addrsStr[4], ChainType: ophosttypes.BatchInfo_CHAIN_TYPE_INITIA, diff --git a/x/opchild/keeper/msg_server_test.go b/x/opchild/keeper/msg_server_test.go index c6824195..3d616e1c 100644 --- a/x/opchild/keeper/msg_server_test.go +++ b/x/opchild/keeper/msg_server_test.go @@ -287,8 +287,8 @@ func Test_MsgServer_Withdraw(t *testing.T) { L1ChainId: "test-chain-id", L1ClientId: "test-client-id", BridgeConfig: ophosttypes.BridgeConfig{ - Challengers: []string{addrsStr[2]}, - Proposer: addrsStr[3], + Challenger: addrsStr[2], + Proposer: addrsStr[3], BatchInfo: ophosttypes.BatchInfo{ Submitter: addrsStr[4], ChainType: ophosttypes.BatchInfo_CHAIN_TYPE_INITIA, @@ -339,8 +339,8 @@ func Test_MsgServer_SetBridgeInfo(t *testing.T) { L1ChainId: "test-chain-id", L1ClientId: "test-client-id", BridgeConfig: ophosttypes.BridgeConfig{ - Challengers: []string{addrsStr[2]}, - Proposer: addrsStr[3], + Challenger: addrsStr[2], + Proposer: addrsStr[3], BatchInfo: ophosttypes.BatchInfo{ Submitter: addrsStr[4], ChainType: ophosttypes.BatchInfo_CHAIN_TYPE_INITIA, diff --git a/x/opchild/keeper/querier_test.go b/x/opchild/keeper/querier_test.go index 34666d33..5ddebe7e 100644 --- a/x/opchild/keeper/querier_test.go +++ b/x/opchild/keeper/querier_test.go @@ -56,8 +56,8 @@ func Test_QuerySetBridgeInfo(t *testing.T) { BridgeId: 1, BridgeAddr: addrsStr[1], BridgeConfig: ophosttypes.BridgeConfig{ - Challengers: []string{addrsStr[2]}, - Proposer: addrsStr[3], + Challenger: addrsStr[2], + Proposer: addrsStr[3], BatchInfo: ophosttypes.BatchInfo{ Submitter: addrsStr[4], ChainType: ophosttypes.BatchInfo_CHAIN_TYPE_INITIA, diff --git a/x/ophost/client/cli/tx.go b/x/ophost/client/cli/tx.go index 8f3ff673..990e11fd 100644 --- a/x/ophost/client/cli/tx.go +++ b/x/ophost/client/cli/tx.go @@ -97,7 +97,7 @@ func NewCreateBridge(ac address.Codec) *cobra.Command { Where bridge-config.json contains: { - "challengers": ["bech32-address"], + "challenger": "bech32-address", "proposer": "bech32-addresss", "submission_interval": "duration", "finalization_period": "duration", @@ -142,7 +142,7 @@ func NewCreateBridge(ac address.Codec) *cobra.Command { } config := types.BridgeConfig{ - Challengers: origConfig.Challengers, // Ensure Challenger is properly assigned + Challenger: origConfig.Challenger, Proposer: origConfig.Proposer, SubmissionInterval: submissionInterval, FinalizationPeriod: finalizationPeriod, diff --git a/x/ophost/client/cli/tx_test.go b/x/ophost/client/cli/tx_test.go index 5b411727..0501a45e 100644 --- a/x/ophost/client/cli/tx_test.go +++ b/x/ophost/client/cli/tx_test.go @@ -166,7 +166,7 @@ func (s *CLITestSuite) TestNewCreateBridge() { _, err = invalidConfig.WriteString(`{}`) s.NoError(err) _, err = validConfig.WriteString(`{ - "challengers": ["init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g"], + "challenger": "init1q6jhwnarkw2j5qqgx3qlu20k8nrdglft5ksr0g", "proposer": "init1k2svyvm60r8rhnzr9vemk5f6fksvm6tyeujp3c", "submission_interval": "100s", "finalization_period": "1000s", diff --git a/x/ophost/client/cli/types.go b/x/ophost/client/cli/types.go index 132a3b50..b2551d8c 100644 --- a/x/ophost/client/cli/types.go +++ b/x/ophost/client/cli/types.go @@ -7,7 +7,7 @@ import ( // BridgeConfig defines the set of bridge config. // NOTE: it is a modified BridgeConfig from x/ophost/types/types.go to make unmarshal easier type BridgeCliConfig struct { - Challengers []string `json:"challengers"` + Challenger string `json:"challenger"` Proposer string `json:"proposer"` SubmissionInterval string `json:"submission_interval"` FinalizationPeriod string `json:"finalization_period"` diff --git a/x/ophost/keeper/bridge_test.go b/x/ophost/keeper/bridge_test.go index a9c6b820..52b80751 100644 --- a/x/ophost/keeper/bridge_test.go +++ b/x/ophost/keeper/bridge_test.go @@ -11,7 +11,7 @@ import ( func Test_BridgeConfig(t *testing.T) { ctx, input := createDefaultTestInput(t) config := types.BridgeConfig{ - Challengers: []string{addrs[0].String()}, + Challenger: addrs[0].String(), Proposer: addrs[1].String(), SubmissionInterval: time.Second * 100, FinalizationPeriod: time.Second * 10, @@ -28,7 +28,7 @@ func Test_BridgeConfig(t *testing.T) { func Test_IterateBridgeConfig(t *testing.T) { ctx, input := createDefaultTestInput(t) config1 := types.BridgeConfig{ - Challengers: []string{addrs[0].String()}, + Challenger: addrs[0].String(), Proposer: addrs[1].String(), SubmissionInterval: time.Second * 100, FinalizationPeriod: time.Second * 10, @@ -37,7 +37,7 @@ func Test_IterateBridgeConfig(t *testing.T) { BatchInfo: types.BatchInfo{Submitter: addrsStr[0], ChainType: types.BatchInfo_CHAIN_TYPE_INITIA}, } config2 := types.BridgeConfig{ - Challengers: []string{addrs[2].String()}, + Challenger: addrs[2].String(), Proposer: addrs[3].String(), SubmissionInterval: time.Second * 100, FinalizationPeriod: time.Second * 10, diff --git a/x/ophost/keeper/common_test.go b/x/ophost/keeper/common_test.go index 19845fd4..18d36c2c 100644 --- a/x/ophost/keeper/common_test.go +++ b/x/ophost/keeper/common_test.go @@ -320,11 +320,11 @@ func _createTestInput( } type bridgeHook struct { - proposer string - challengers []string - batchInfo ophosttypes.BatchInfo - metadata []byte - err error + proposer string + challenger string + batchInfo ophosttypes.BatchInfo + metadata []byte + err error } func (h *bridgeHook) BridgeCreated( @@ -338,11 +338,11 @@ func (h *bridgeHook) BridgeCreated( h.metadata = bridgeConfig.Metadata h.proposer = bridgeConfig.Proposer - h.challengers = bridgeConfig.Challengers + h.challenger = bridgeConfig.Challenger return nil } -func (h *bridgeHook) BridgeChallengersUpdated( +func (h *bridgeHook) BridgeChallengerUpdated( ctx context.Context, bridgeId uint64, bridgeConfig ophosttypes.BridgeConfig, @@ -351,7 +351,7 @@ func (h *bridgeHook) BridgeChallengersUpdated( return h.err } - h.challengers = bridgeConfig.Challengers + h.challenger = bridgeConfig.Challenger return nil } diff --git a/x/ophost/keeper/genesis_test.go b/x/ophost/keeper/genesis_test.go index be91964f..4e7360ce 100644 --- a/x/ophost/keeper/genesis_test.go +++ b/x/ophost/keeper/genesis_test.go @@ -13,7 +13,7 @@ func Test_GenesisExport(t *testing.T) { params := input.OPHostKeeper.GetParams(ctx) config1 := types.BridgeConfig{ - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], Proposer: addrsStr[0], SubmissionInterval: 100, FinalizationPeriod: 100, @@ -22,7 +22,7 @@ func Test_GenesisExport(t *testing.T) { BatchInfo: types.BatchInfo{Submitter: addrsStr[0], ChainType: types.BatchInfo_CHAIN_TYPE_INITIA}, } config2 := types.BridgeConfig{ - Challengers: []string{addrsStr[2]}, + Challenger: addrsStr[2], Proposer: addrsStr[3], SubmissionInterval: 200, FinalizationPeriod: 200, @@ -111,7 +111,7 @@ func Test_GenesisImportExport(t *testing.T) { ctx, input := createDefaultTestInput(t) params := input.OPHostKeeper.GetParams(ctx) config1 := types.BridgeConfig{ - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], Proposer: addrsStr[0], SubmissionInterval: 100, FinalizationPeriod: 100, diff --git a/x/ophost/keeper/msg_server.go b/x/ophost/keeper/msg_server.go index 167d01a7..3f67d64a 100644 --- a/x/ophost/keeper/msg_server.go +++ b/x/ophost/keeper/msg_server.go @@ -4,9 +4,7 @@ import ( "bytes" "context" "encoding/hex" - "slices" "strconv" - "strings" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/errors" @@ -91,7 +89,7 @@ func (ms MsgServer) CreateBridge(ctx context.Context, req *types.MsgCreateBridge types.EventTypeCreateBridge, sdk.NewAttribute(types.AttributeKeyCreator, req.Creator), sdk.NewAttribute(types.AttributeKeyProposer, req.Config.Proposer), - sdk.NewAttribute(types.AttributeKeyChallenger, strings.Join(req.Config.Challengers, ",")), + sdk.NewAttribute(types.AttributeKeyChallenger, req.Config.Challenger), sdk.NewAttribute(types.AttributeKeyBatchChainType, req.Config.BatchInfo.ChainType.StringWithoutPrefix()), sdk.NewAttribute(types.AttributeKeyBatchSubmitter, req.Config.BatchInfo.Submitter), sdk.NewAttribute(types.AttributeKeyBridgeId, strconv.FormatUint(bridgeId, 10)), @@ -186,7 +184,7 @@ func (ms MsgServer) DeleteOutput(ctx context.Context, req *types.MsgDeleteOutput } // permission check - if !slices.Contains(bridgeConfig.Challengers, challenger) { + if bridgeConfig.Challenger != challenger { return nil, errors.ErrUnauthorized.Wrap("invalid challenger") } @@ -393,7 +391,7 @@ func (ms MsgServer) UpdateProposer(ctx context.Context, req *types.MsgUpdateProp }, nil } -func (ms MsgServer) UpdateChallengers(ctx context.Context, req *types.MsgUpdateChallengers) (*types.MsgUpdateChallengersResponse, error) { +func (ms MsgServer) UpdateChallenger(ctx context.Context, req *types.MsgUpdateChallenger) (*types.MsgUpdateChallengerResponse, error) { if err := req.Validate(ms.authKeeper.AddressCodec()); err != nil { return nil, err } @@ -405,29 +403,13 @@ func (ms MsgServer) UpdateChallengers(ctx context.Context, req *types.MsgUpdateC } // permission check - if req.Authority == ms.authority { - config.Challengers = req.NewChallengers - } else if idx := slices.Index(config.Challengers, req.Authority); idx >= 0 { - removedChallengers := []string{} - for _, challenger := range config.Challengers { - if found := slices.Contains(req.NewChallengers, challenger); !found { - removedChallengers = append(removedChallengers, challenger) - } - } - - originChallengersLen := len(config.Challengers) - newChallengersLen := len(req.NewChallengers) - removedChallengersLen := len(removedChallengers) - if removedChallengersLen != 1 || removedChallengers[0] != req.Authority || originChallengersLen-newChallengersLen < 0 { - return nil, types.ErrInvalidChallengerUpdate.Wrap("a challenger can replace only oneself or remove oneself") - } - config.Challengers = req.NewChallengers - } else { - return nil, govtypes.ErrInvalidSigner.Wrapf("invalid authority; expected %s or one in [%s], but got %s", ms.authority, strings.Join(config.Challengers, ","), req.Authority) + if req.Authority != ms.authority && config.Challenger != req.Authority { + return nil, govtypes.ErrInvalidSigner.Wrapf("invalid authority; expected %s or %s, but got %s", ms.authority, config.Challenger, req.Authority) } - if err := ms.Keeper.bridgeHook.BridgeChallengersUpdated(ctx, bridgeId, config); err != nil { + config.Challenger = req.Challenger + if err := ms.Keeper.bridgeHook.BridgeChallengerUpdated(ctx, bridgeId, config); err != nil { return nil, err } @@ -442,12 +424,12 @@ func (ms MsgServer) UpdateChallengers(ctx context.Context, req *types.MsgUpdateC sdk.UnwrapSDKContext(ctx).EventManager().EmitEvent(sdk.NewEvent( types.EventTypeUpdateChallenger, sdk.NewAttribute(types.AttributeKeyBridgeId, strconv.FormatUint(bridgeId, 10)), - sdk.NewAttribute(types.AttributeKeyChallenger, strings.Join(config.Challengers, ",")), + sdk.NewAttribute(types.AttributeKeyChallenger, config.Challenger), sdk.NewAttribute(types.AttributeKeyFinalizedOutputIndex, strconv.FormatUint(finalizedOutputIndex, 10)), sdk.NewAttribute(types.AttributeKeyFinalizedL2BlockNumber, strconv.FormatUint(finalizedOutput.L2BlockNumber, 10)), )) - return &types.MsgUpdateChallengersResponse{ + return &types.MsgUpdateChallengerResponse{ OutputIndex: finalizedOutputIndex, L2BlockNumber: finalizedOutput.L2BlockNumber, }, nil diff --git a/x/ophost/keeper/msg_server_test.go b/x/ophost/keeper/msg_server_test.go index 44e064c3..ba1943cd 100644 --- a/x/ophost/keeper/msg_server_test.go +++ b/x/ophost/keeper/msg_server_test.go @@ -33,7 +33,7 @@ func Test_CreateBridge(t *testing.T) { ms := keeper.NewMsgServerImpl(input.OPHostKeeper) config := types.BridgeConfig{ - Challengers: []string{addrsStr[0]}, + Challenger: addrsStr[0], Proposer: addrsStr[0], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, @@ -58,7 +58,7 @@ func Test_ProposeOutput(t *testing.T) { ms := keeper.NewMsgServerImpl(input.OPHostKeeper) config := types.BridgeConfig{ - Challengers: []string{addrsStr[0]}, + Challenger: addrsStr[0], Proposer: addrsStr[0], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, @@ -97,7 +97,7 @@ func Test_DeleteOutput(t *testing.T) { ms := keeper.NewMsgServerImpl(input.OPHostKeeper) config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -148,7 +148,7 @@ func Test_InitiateTokenDeposit(t *testing.T) { ms := keeper.NewMsgServerImpl(input.OPHostKeeper) config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -176,7 +176,7 @@ func Test_FinalizeTokenWithdrawal(t *testing.T) { ms := keeper.NewMsgServerImpl(input.OPHostKeeper) config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -248,7 +248,7 @@ func Test_UpdateProposal(t *testing.T) { config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -292,13 +292,13 @@ func Test_UpdateProposal(t *testing.T) { require.Error(t, err) } -func Test_UpdateChallengers(t *testing.T) { +func Test_UpdateChallenger(t *testing.T) { ctx, input := createDefaultTestInput(t) ms := keeper.NewMsgServerImpl(input.OPHostKeeper) config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1], addrsStr[2], addrsStr[3]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -312,74 +312,31 @@ func Test_UpdateChallengers(t *testing.T) { // gov signer govAddr, err := input.AccountKeeper.AddressCodec().BytesToString(authtypes.NewModuleAddress("gov")) require.NoError(t, err) - msg := types.NewMsgUpdateChallengers(govAddr, 1, []string{addrsStr[2], addrsStr[3]}) - _, err = ms.UpdateChallengers(ctx, msg) + msg := types.NewMsgUpdateChallenger(govAddr, 1, addrsStr[2]) + _, err = ms.UpdateChallenger(ctx, msg) require.NoError(t, err) _config, err := ms.GetBridgeConfig(ctx, 1) require.NoError(t, err) - require.Equal(t, []string{addrsStr[2], addrsStr[3]}, _config.Challengers) - require.Equal(t, input.BridgeHook.challengers, _config.Challengers) + require.Equal(t, addrsStr[2], _config.Challenger) + require.Equal(t, input.BridgeHook.challenger, _config.Challenger) // current challenger - // case 1. replace oneself - msg = types.NewMsgUpdateChallengers(addrsStr[2], 1, []string{addrsStr[3], addrsStr[4]}) - _, err = ms.UpdateChallengers(ctx, msg) - require.NoError(t, err) - _config, err = ms.GetBridgeConfig(ctx, 1) - require.NoError(t, err) - require.Equal(t, []string{addrsStr[3], addrsStr[4]}, _config.Challengers) - require.Equal(t, input.BridgeHook.challengers, _config.Challengers) - - // case 2. try to remove other challenger - msg = types.NewMsgUpdateChallengers(addrsStr[4], 1, []string{addrsStr[4]}) - _, err = ms.UpdateChallengers(ctx, msg) - require.Error(t, err) - - // case 2. try to replace other challenger - msg = types.NewMsgUpdateChallengers(addrsStr[4], 1, []string{addrsStr[2], addrsStr[4]}) - _, err = ms.UpdateChallengers(ctx, msg) - require.Error(t, err) - - // case 3. remove oneself - msg = types.NewMsgUpdateChallengers(addrsStr[3], 1, []string{addrsStr[4]}) - _, err = ms.UpdateChallengers(ctx, msg) - require.NoError(t, err) - _config, err = ms.GetBridgeConfig(ctx, 1) - require.NoError(t, err) - require.Equal(t, []string{addrsStr[4]}, _config.Challengers) - require.Equal(t, input.BridgeHook.challengers, _config.Challengers) - - // case 4. try to add more challenger - msg = types.NewMsgUpdateChallengers(addrsStr[4], 1, []string{addrsStr[3], addrsStr[4]}) - _, err = ms.UpdateChallengers(ctx, msg) - require.Error(t, err) - - // case 5. try to add more challenger with replace - msg = types.NewMsgUpdateChallengers(addrsStr[4], 1, []string{addrsStr[2], addrsStr[3]}) - _, err = ms.UpdateChallengers(ctx, msg) - require.Error(t, err) - - // case 6. remove all challengers - msg = types.NewMsgUpdateChallengers(addrsStr[4], 1, []string{}) - _, err = ms.UpdateChallengers(ctx, msg) - require.Error(t, err) - // invalid signer invalidAddr, err := input.AccountKeeper.AddressCodec().BytesToString(authtypes.NewModuleAddress(types.ModuleName)) require.NoError(t, err) - msg = types.NewMsgUpdateChallengers(invalidAddr, 1, []string{addrsStr[1]}) + msg = types.NewMsgUpdateChallenger(invalidAddr, 1, addrsStr[1]) require.NoError(t, err) - _, err = ms.UpdateChallengers( + _, err = ms.UpdateChallenger( ctx, msg, ) require.Error(t, err) // invalid case - msg = types.NewMsgUpdateChallengers(govAddr, 1, []string{}) - _, err = ms.UpdateChallengers(ctx, msg) + msg = types.NewMsgUpdateChallenger(govAddr, 1, "") + _, err = ms.UpdateChallenger(ctx, msg) require.Error(t, err) } @@ -389,7 +346,7 @@ func Test_UpdateBatchInfo(t *testing.T) { config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -453,7 +410,7 @@ func Test_UpdateOracleConfig(t *testing.T) { config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, @@ -498,7 +455,7 @@ func Test_UpdateMetadata(t *testing.T) { config := types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, SubmissionStartHeight: 1, diff --git a/x/ophost/keeper/output_test.go b/x/ophost/keeper/output_test.go index 318d84c9..da5b5073 100644 --- a/x/ophost/keeper/output_test.go +++ b/x/ophost/keeper/output_test.go @@ -85,7 +85,7 @@ func Test_IsFinalized(t *testing.T) { ctx, input := createDefaultTestInput(t) err := input.OPHostKeeper.SetBridgeConfig(ctx, 1, types.BridgeConfig{ - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], Proposer: addrsStr[0], SubmissionInterval: 100, FinalizationPeriod: time.Second * 10, @@ -145,7 +145,7 @@ func Test_GetLastFinalizedOutput(t *testing.T) { err := input.OPHostKeeper.SetBridgeConfig(ctx, 1, types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: 100, FinalizationPeriod: time.Second * 10, SubmissionStartHeight: 1, @@ -192,7 +192,7 @@ func Test_DeleteOutputProposal(t *testing.T) { err = input.OPHostKeeper.SetBridgeConfig(ctx, 1, types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: 100, FinalizationPeriod: time.Second * 10, SubmissionStartHeight: 1, diff --git a/x/ophost/keeper/querier_test.go b/x/ophost/keeper/querier_test.go index cab7794c..a4de7da7 100644 --- a/x/ophost/keeper/querier_test.go +++ b/x/ophost/keeper/querier_test.go @@ -13,7 +13,7 @@ import ( func Test_QueryBridge(t *testing.T) { ctx, input := createDefaultTestInput(t) config := types.BridgeConfig{ - Challengers: []string{addrs[0].String()}, + Challenger: addrs[0].String(), Proposer: addrs[0].String(), SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, @@ -40,7 +40,7 @@ func Test_QueryBridge(t *testing.T) { func Test_QueryBridges(t *testing.T) { ctx, input := createDefaultTestInput(t) config1 := types.BridgeConfig{ - Challengers: []string{addrs[0].String()}, + Challenger: addrs[0].String(), Proposer: addrs[0].String(), SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, @@ -49,7 +49,7 @@ func Test_QueryBridges(t *testing.T) { BatchInfo: types.BatchInfo{Submitter: addrsStr[0], ChainType: types.BatchInfo_CHAIN_TYPE_INITIA}, } config2 := types.BridgeConfig{ - Challengers: []string{addrs[1].String()}, + Challenger: addrs[1].String(), Proposer: addrs[0].String(), SubmissionInterval: time.Second * 10, FinalizationPeriod: time.Second * 60, @@ -185,7 +185,7 @@ func Test_QueryLastFinalizedOutput(t *testing.T) { err := input.OPHostKeeper.SetBridgeConfig(ctx, 1, types.BridgeConfig{ Proposer: addrsStr[0], - Challengers: []string{addrsStr[1]}, + Challenger: addrsStr[1], SubmissionInterval: 100, FinalizationPeriod: time.Second * 10, SubmissionStartHeight: 1, diff --git a/x/ophost/types/auth.pb.go b/x/ophost/types/auth.pb.go index 6d83f35e..dc991a1a 100644 --- a/x/ophost/types/auth.pb.go +++ b/x/ophost/types/auth.pb.go @@ -70,23 +70,23 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/auth.proto", fileDescriptor_084ed3a8e4776b6d) } var fileDescriptor_084ed3a8e4776b6d = []byte{ - // 252 bytes of a gzipped FileDescriptorProto + // 253 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xce, 0x2f, 0xc8, 0xcc, 0xcb, 0x2c, 0xd1, 0xcf, 0x2f, 0xc8, 0xc8, 0x2f, 0x2e, 0xd1, 0x2f, 0x33, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x80, 0x48, 0xea, 0x41, 0x24, 0xf5, 0xca, - 0x0c, 0xa5, 0x04, 0x13, 0x73, 0x33, 0xf3, 0xf2, 0xf5, 0xc1, 0x24, 0x44, 0x91, 0x94, 0x48, 0x7a, - 0x7e, 0x7a, 0x3e, 0x98, 0xa9, 0x0f, 0x62, 0x41, 0x45, 0xe5, 0x92, 0xf3, 0x8b, 0x73, 0xf3, 0x8b, - 0xc1, 0xa6, 0xe9, 0x97, 0x19, 0x26, 0xa5, 0x96, 0x24, 0x22, 0x1b, 0xad, 0x54, 0xc9, 0xc5, 0xeb, - 0x54, 0x94, 0x99, 0x92, 0x9e, 0xea, 0x98, 0x9c, 0x9c, 0x5f, 0x9a, 0x57, 0x22, 0xe4, 0xc9, 0xc5, - 0x93, 0x94, 0x58, 0x9c, 0x1a, 0x9f, 0x08, 0xe1, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x29, - 0xe8, 0x41, 0xcc, 0xd1, 0x03, 0x6b, 0x85, 0x9a, 0xa3, 0xe7, 0x94, 0x58, 0x0c, 0xd3, 0xe7, 0xc4, - 0x72, 0xe1, 0x9e, 0x3c, 0x63, 0x10, 0x77, 0x12, 0x42, 0xc8, 0x4a, 0xb6, 0x63, 0x81, 0x3c, 0x43, - 0xd7, 0xf3, 0x0d, 0x5a, 0x22, 0x50, 0x5f, 0xa1, 0xd8, 0xe4, 0xe4, 0x76, 0xe2, 0x91, 0x1c, 0xe3, - 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, - 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x3a, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, - 0xb9, 0xfa, 0x20, 0x8f, 0x67, 0x26, 0xea, 0xe6, 0x24, 0x26, 0x15, 0xeb, 0xfb, 0x07, 0x80, 0xc3, - 0xa8, 0x02, 0x16, 0x4a, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x49, 0x6c, 0x60, 0x9f, 0x18, 0x03, 0x02, - 0x00, 0x00, 0xff, 0xff, 0x57, 0x79, 0xa1, 0xb3, 0x43, 0x01, 0x00, 0x00, + 0x0c, 0xa5, 0x04, 0x13, 0x73, 0x33, 0xf3, 0xf2, 0xf5, 0xc1, 0x24, 0x44, 0x91, 0x94, 0x5c, 0x72, + 0x7e, 0x71, 0x6e, 0x7e, 0x31, 0x58, 0x9f, 0x7e, 0x99, 0x61, 0x52, 0x6a, 0x49, 0x22, 0xb2, 0x21, + 0x52, 0x22, 0xe9, 0xf9, 0xe9, 0xf9, 0x60, 0xa6, 0x3e, 0x88, 0x05, 0x11, 0x55, 0xaa, 0xe4, 0xe2, + 0x75, 0x2a, 0xca, 0x4c, 0x49, 0x4f, 0x75, 0x4c, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0x11, 0xf2, 0xe4, + 0xe2, 0x49, 0x4a, 0x2c, 0x4e, 0x8d, 0x4f, 0x84, 0xf0, 0x25, 0x18, 0x15, 0x18, 0x35, 0xb8, 0x8d, + 0x14, 0xf4, 0x20, 0xa6, 0xeb, 0x81, 0x0d, 0x84, 0x9a, 0xae, 0xe7, 0x94, 0x58, 0x0c, 0xd3, 0xe7, + 0xc4, 0x72, 0xe1, 0x9e, 0x3c, 0x63, 0x10, 0x77, 0x12, 0x42, 0xc8, 0x4a, 0xb6, 0x63, 0x81, 0x3c, + 0x43, 0xd7, 0xf3, 0x0d, 0x5a, 0x22, 0x50, 0x5f, 0xa1, 0xd8, 0xe4, 0xe4, 0x76, 0xe2, 0x91, 0x1c, + 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, + 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x3a, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, + 0xf9, 0xb9, 0xfa, 0x20, 0x8f, 0x67, 0x26, 0xea, 0xe6, 0x24, 0x26, 0x15, 0xeb, 0xfb, 0x07, 0x80, + 0xc3, 0xa8, 0x02, 0x16, 0x4a, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x49, 0x6c, 0x60, 0x9f, 0x18, 0x03, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x66, 0xdd, 0x30, 0x80, 0x43, 0x01, 0x00, 0x00, } func (m *BridgeAccount) Marshal() (dAtA []byte, err error) { diff --git a/x/ophost/types/bridge_config.go b/x/ophost/types/bridge_config.go index f62b00ae..42e6f99f 100644 --- a/x/ophost/types/bridge_config.go +++ b/x/ophost/types/bridge_config.go @@ -2,7 +2,6 @@ package types import ( "encoding/json" - "slices" "strings" time "time" @@ -12,17 +11,8 @@ import ( ) func (config BridgeConfig) Validate(ac address.Codec) error { - challengerDupMap := make(map[string]bool, len(config.Challengers)) - for _, challenger := range config.Challengers { - if _, err := ac.StringToBytes(challenger); err != nil { - return err - } - - if _, ok := challengerDupMap[challenger]; ok { - return errors.Wrapf(sdkerrors.ErrInvalidRequest, "challengers must be unique") - } - - challengerDupMap[challenger] = true + if _, err := ac.StringToBytes(config.Challenger); err != nil { + return err } if _, err := ac.StringToBytes(config.Proposer); err != nil { @@ -37,10 +27,6 @@ func (config BridgeConfig) Validate(ac address.Codec) error { return errors.Wrapf(sdkerrors.ErrInvalidRequest, "batch submitter must be set") } - if !config.isValidChallengers() { - return errors.Wrapf(sdkerrors.ErrInvalidRequest, "challengers must be non-empty array") - } - if config.FinalizationPeriod == time.Duration(0) { return errors.Wrapf(sdkerrors.ErrInvalidRequest, "finalization period must be greater than 0") } @@ -61,8 +47,8 @@ func (config BridgeConfig) ValidateWithNoAddrValidation() error { return errors.Wrapf(sdkerrors.ErrInvalidRequest, "proposer must be set") } - if !config.isValidChallengers() { - return errors.Wrapf(sdkerrors.ErrInvalidRequest, "challengers must be non-empty array") + if len(config.Challenger) == 0 { + return errors.Wrapf(sdkerrors.ErrInvalidRequest, "challenger must be set") } if config.BatchInfo.ChainType == BatchInfo_CHAIN_TYPE_UNSPECIFIED { @@ -90,18 +76,6 @@ func (config BridgeConfig) ValidateWithNoAddrValidation() error { return nil } -func (config BridgeConfig) isValidChallengers() bool { - if len(config.Challengers) == 0 { - return false - } - - if slices.Contains(config.Challengers, "") { - return false - } - - return true -} - // prefix for chain type enum const chainTypePrefix = "CHAIN_TYPE_" diff --git a/x/ophost/types/bridge_config_test.go b/x/ophost/types/bridge_config_test.go index 0d4e3eb0..ea022793 100644 --- a/x/ophost/types/bridge_config_test.go +++ b/x/ophost/types/bridge_config_test.go @@ -26,7 +26,7 @@ func Test_JSONMarshalUnmarshal(t *testing.T) { func Test_ValidateBridgeConfig(t *testing.T) { config := BridgeConfig{ Proposer: "proposer", - Challengers: []string{"challenger1", "challenger2"}, + Challenger: "challenger", SubmissionInterval: 100, FinalizationPeriod: 100, SubmissionStartHeight: 1, diff --git a/x/ophost/types/codec.go b/x/ophost/types/codec.go index 37927aa8..a3b07ce3 100644 --- a/x/ophost/types/codec.go +++ b/x/ophost/types/codec.go @@ -18,7 +18,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { legacy.RegisterAminoMsg(cdc, &MsgInitiateTokenDeposit{}, "ophost/MsgInitiateTokenDeposit") legacy.RegisterAminoMsg(cdc, &MsgFinalizeTokenWithdrawal{}, "ophost/MsgFinalizeTokenWithdrawal") legacy.RegisterAminoMsg(cdc, &MsgUpdateProposer{}, "ophost/MsgUpdateProposer") - legacy.RegisterAminoMsg(cdc, &MsgUpdateChallengers{}, "ophost/MsgUpdateChallengers") + legacy.RegisterAminoMsg(cdc, &MsgUpdateChallenger{}, "ophost/MsgUpdateChallenger") legacy.RegisterAminoMsg(cdc, &MsgUpdateBatchInfo{}, "ophost/MsgUpdateBatchInfo") legacy.RegisterAminoMsg(cdc, &MsgUpdateParams{}, "ophost/MsgUpdateParams") legacy.RegisterAminoMsg(cdc, &MsgUpdateMetadata{}, "ophost/MsgUpdateMetadata") @@ -38,7 +38,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { &MsgInitiateTokenDeposit{}, &MsgFinalizeTokenWithdrawal{}, &MsgUpdateProposer{}, - &MsgUpdateChallengers{}, + &MsgUpdateChallenger{}, &MsgUpdateBatchInfo{}, &MsgUpdateParams{}, &MsgUpdateMetadata{}, diff --git a/x/ophost/types/hook/bridge_hook.go b/x/ophost/types/hook/bridge_hook.go index 5f17d51e..3183cedb 100644 --- a/x/ophost/types/hook/bridge_hook.go +++ b/x/ophost/types/hook/bridge_hook.go @@ -24,9 +24,10 @@ type ChannelKeeper interface { } type PermKeeper interface { - HasPermission(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) (bool, error) - SetPermissionedRelayers(ctx context.Context, portID, channelID string, relayers []sdk.AccAddress) error - GetPermissionedRelayers(ctx context.Context, portID, channelID string) ([]sdk.AccAddress, error) + IsTaken(ctx context.Context, portID, channelID string) (bool, error) + + SetAdmin(ctx context.Context, portID, channelID string, admin sdk.AccAddress) error + HasAdminPermission(ctx context.Context, portID, channelID string, admin sdk.AccAddress) (bool, error) } func NewBridgeHook(channelKeeper ChannelKeeper, permKeeper PermKeeper, ac address.Codec) BridgeHook { @@ -43,34 +44,17 @@ func (h BridgeHook) BridgeCreated( return nil } - challengers := make([]sdk.AccAddress, len(bridgeConfig.Challengers)) - for i, challenger := range bridgeConfig.Challengers { - challengerAddr, err := h.ac.StringToBytes(challenger) - if err != nil { - return err - } - - challengers[i] = challengerAddr + challenger, err := h.ac.StringToBytes(bridgeConfig.Challenger) + if err != nil { + return err } sdkCtx := sdk.UnwrapSDKContext(ctx) for _, permChannel := range metadata.PermChannels { portID, channelID := permChannel.PortID, permChannel.ChannelID - if seq, ok := h.IBCChannelKeeper.GetNextSequenceSend(sdkCtx, portID, channelID); !ok { - return channeltypes.ErrChannelNotFound.Wrap("failed to get next sequence send") - } else if seq != 1 { - return channeltypes.ErrChannelExists.Wrap("cannot register permissioned relayers for the channel in use") - } - - // check if the channel has a permissioned relayer - if relayers, err := h.IBCPermKeeper.GetPermissionedRelayers(ctx, portID, channelID); err != nil { - return err - } else if len(relayers) > 0 { - return channeltypes.ErrChannelExists.Wrap("cannot register permissioned relayers for the channel in use") - } - // register challengers as channel relayer - if err := h.IBCPermKeeper.SetPermissionedRelayers(sdkCtx, portID, channelID, challengers); err != nil { + // register challenger as channel admin + if err := h.registerChannelAdmin(sdkCtx, portID, channelID, challenger); err != nil { return err } } @@ -78,7 +62,7 @@ func (h BridgeHook) BridgeCreated( return nil } -func (h BridgeHook) BridgeChallengersUpdated( +func (h BridgeHook) BridgeChallengerUpdated( ctx context.Context, bridgeId uint64, bridgeConfig ophosttypes.BridgeConfig, @@ -88,21 +72,17 @@ func (h BridgeHook) BridgeChallengersUpdated( return nil } - challengers := make([]sdk.AccAddress, len(bridgeConfig.Challengers)) - for i, challenger := range bridgeConfig.Challengers { - challengerAddr, err := h.ac.StringToBytes(challenger) - if err != nil { - return err - } - - challengers[i] = challengerAddr + challenger, err := h.ac.StringToBytes(bridgeConfig.Challenger) + if err != nil { + return err } sdkCtx := sdk.UnwrapSDKContext(ctx) for _, permChannel := range metadata.PermChannels { portID, channelID := permChannel.PortID, permChannel.ChannelID - // register challengers as channel relayers - if err := h.IBCPermKeeper.SetPermissionedRelayers(sdkCtx, portID, channelID, challengers); err != nil { + + // update channel admin to the new challenger + if err := h.IBCPermKeeper.SetAdmin(sdkCtx, portID, channelID, challenger); err != nil { return err } } @@ -137,47 +117,53 @@ func (h BridgeHook) BridgeMetadataUpdated( return nil } - challengers := make([]sdk.AccAddress, len(bridgeConfig.Challengers)) - for i, challenger := range bridgeConfig.Challengers { - challengerAddr, err := h.ac.StringToBytes(challenger) - if err != nil { - return err - } - - challengers[i] = challengerAddr + challenger, err := h.ac.StringToBytes(bridgeConfig.Challenger) + if err != nil { + return err } sdkCtx := sdk.UnwrapSDKContext(ctx) for _, permChannel := range metadata.PermChannels { portID, channelID := permChannel.PortID, permChannel.ChannelID - hasPermission := true - - // check if the challengers are already registered as a permissioned relayers - for _, challenger := range challengers { - if hasPerm, err := h.IBCPermKeeper.HasPermission(ctx, portID, channelID, challenger); err != nil { - return err - } else if !hasPerm { - hasPermission = false - break - } - } - - if hasPermission { + // check if the challenger is already registered as a channel admin + if hasPerm, err := h.IBCPermKeeper.HasAdminPermission(ctx, portID, channelID, challenger); err != nil { + return err + } else if hasPerm { continue } - if seq, ok := h.IBCChannelKeeper.GetNextSequenceSend(sdkCtx, portID, channelID); !ok { - return channeltypes.ErrChannelNotFound.Wrap("failed to register permissioned relayer") - } else if seq != 1 { - return channeltypes.ErrChannelExists.Wrap("cannot register permissioned relayer for the channel in use") - } - - // register challengers as channel relayers - if err := h.IBCPermKeeper.SetPermissionedRelayers(sdkCtx, portID, channelID, challengers); err != nil { + // register challenger as channel admin + if err := h.registerChannelAdmin(sdkCtx, portID, channelID, challenger); err != nil { return err } } return nil } + +func (h BridgeHook) registerChannelAdmin( + ctx sdk.Context, + portID, channelID string, + admin sdk.AccAddress, +) error { + if seq, ok := h.IBCChannelKeeper.GetNextSequenceSend(ctx, portID, channelID); !ok { + return channeltypes.ErrChannelNotFound.Wrap("failed to register ibcperm admin") + } else if seq != 1 { + return channeltypes.ErrChannelExists.Wrap("cannot register ibcperm admin for the channel in use") + } + + // check if the channel has a admin already + if taken, err := h.IBCPermKeeper.IsTaken(ctx, portID, channelID); err != nil { + return err + } else if taken { + return channeltypes.ErrChannelExists.Wrap("cannot register ibcperm admin for the channel in use") + } + + // register challenger as channel admin + if err := h.IBCPermKeeper.SetAdmin(ctx, portID, channelID, admin); err != nil { + return err + } + + return nil +} diff --git a/x/ophost/types/hook/bridge_hook_test.go b/x/ophost/types/hook/bridge_hook_test.go index fc3210ac..8eb31e8d 100644 --- a/x/ophost/types/hook/bridge_hook_test.go +++ b/x/ophost/types/hook/bridge_hook_test.go @@ -61,23 +61,21 @@ func (l MockPermRelayerList) Equals(relayer sdk.AccAddress) bool { } type MockPermKeeper struct { - perms map[string]MockPermRelayerList + perms map[string]sdk.AccAddress } -func (k MockPermKeeper) HasPermission(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) (bool, error) { - return k.perms[portID+"/"+channelID].Equals(relayer), nil +func (k MockPermKeeper) IsTaken(ctx context.Context, portID, channelID string) (bool, error) { + _, ok := k.perms[portID+"/"+channelID] + return ok, nil } -func (k MockPermKeeper) SetPermissionedRelayers(ctx context.Context, portID, channelID string, relayers []sdk.AccAddress) error { - k.perms[portID+"/"+channelID] = MockPermRelayerList{Relayers: relayers} +func (k MockPermKeeper) SetAdmin(ctx context.Context, portID, channelID string, admin sdk.AccAddress) error { + k.perms[portID+"/"+channelID] = admin return nil } -func (k MockPermKeeper) GetPermissionedRelayers(ctx context.Context, portID, channelID string) ([]sdk.AccAddress, error) { - if _, ok := k.perms[portID+"/"+channelID]; !ok { - return []sdk.AccAddress{}, nil - } - return k.perms[portID+"/"+channelID].Relayers, nil +func (k MockPermKeeper) HasAdminPermission(ctx context.Context, portID, channelID string, admin sdk.AccAddress) (bool, error) { + return k.perms[portID+"/"+channelID].Equals(admin), nil } func setup() (context.Context, hook.BridgeHook) { @@ -88,7 +86,7 @@ func setup() (context.Context, hook.BridgeHook) { "transfer/channel-2": 1, }, }, MockPermKeeper{ - perms: make(map[string]MockPermRelayerList), + perms: make(map[string]sdk.AccAddress), }, address.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix())) ms := store.NewCommitMultiStore(dbm.NewMemDB(), log.NewNopLogger(), metrics.NewNoOpMetrics()) @@ -129,37 +127,37 @@ func Test_BridgeHook_BridgeCreated(t *testing.T) { addr := acc_addr() err = h.BridgeCreated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String()}, - Metadata: metadata, + Challenger: addr[0].String(), + Metadata: metadata, }) require.NoError(t, err) // can't create bridge with already taken channel err = h.BridgeCreated(ctx, 2, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String()}, - Metadata: metadata, + Challenger: addr[0].String(), + Metadata: metadata, }) require.ErrorIs(t, err, channeltypes.ErrChannelExists) // cannot take non-1 sequence channel err = h.BridgeCreated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String()}, - Metadata: metadata2, + Challenger: addr[0].String(), + Metadata: metadata2, }) require.ErrorIs(t, err, channeltypes.ErrChannelExists) // check permission is applied - ok, err := h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-0", addr[0]) + ok, err := h.IBCPermKeeper.HasAdminPermission(ctx, "transfer", "channel-0", addr[0]) require.NoError(t, err) require.True(t, ok) // check permission is applied - ok, err = h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-0", addr[1]) + ok, err = h.IBCPermKeeper.HasAdminPermission(ctx, "transfer", "channel-0", addr[1]) require.NoError(t, err) require.False(t, ok) } -func Test_BridgeHook_ChallengersUpdated(t *testing.T) { +func Test_BridgeHook_ChallengerUpdated(t *testing.T) { ctx, h := setup() metadata, err := json.Marshal(hook.PermsMetadata{ @@ -174,28 +172,24 @@ func Test_BridgeHook_ChallengersUpdated(t *testing.T) { addr := acc_addr() err = h.BridgeCreated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String()}, - Metadata: metadata, + Challenger: addr[0].String(), + Metadata: metadata, }) require.NoError(t, err) newAddr := acc_addr() - err = h.BridgeChallengersUpdated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{newAddr[0].String(), newAddr[1].String()}, - Metadata: metadata, + err = h.BridgeChallengerUpdated(ctx, 1, ophosttypes.BridgeConfig{ + Challenger: newAddr[0].String(), + Metadata: metadata, }) require.NoError(t, err) // check permission is applied - ok, err := h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-0", newAddr[0]) - require.NoError(t, err) - require.True(t, ok) - - ok, err = h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-0", newAddr[1]) + ok, err := h.IBCPermKeeper.HasAdminPermission(ctx, "transfer", "channel-0", newAddr[0]) require.NoError(t, err) require.True(t, ok) - ok, err = h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-0", addr[0]) + ok, err = h.IBCPermKeeper.HasAdminPermission(ctx, "transfer", "channel-0", addr[0]) require.NoError(t, err) require.False(t, ok) } @@ -215,8 +209,8 @@ func Test_BridgeHook_MetadataUpdated(t *testing.T) { addr := acc_addr() err = h.BridgeCreated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String()}, - Metadata: metadata, + Challenger: addr[0].String(), + Metadata: metadata, }) require.NoError(t, err) @@ -237,8 +231,8 @@ func Test_BridgeHook_MetadataUpdated(t *testing.T) { // cannot take non-1 sequence channel err = h.BridgeMetadataUpdated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String(), addr[1].String()}, - Metadata: metadata, + Challenger: addr[0].String(), + Metadata: metadata, }) require.Error(t, err) @@ -258,17 +252,17 @@ func Test_BridgeHook_MetadataUpdated(t *testing.T) { require.NoError(t, err) err = h.BridgeMetadataUpdated(ctx, 1, ophosttypes.BridgeConfig{ - Challengers: []string{addr[0].String(), addr[1].String()}, - Metadata: metadata, + Challenger: addr[0].String(), + Metadata: metadata, }) require.NoError(t, err) // check permission is applied - ok, err := h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-2", addr[0]) + ok, err := h.IBCPermKeeper.HasAdminPermission(ctx, "transfer", "channel-2", addr[0]) require.NoError(t, err) require.True(t, ok) - ok, err = h.IBCPermKeeper.HasPermission(ctx, "transfer", "channel-1", addr[0]) + ok, err = h.IBCPermKeeper.HasAdminPermission(ctx, "transfer", "channel-1", addr[0]) require.NoError(t, err) require.False(t, ok) } diff --git a/x/ophost/types/hooks.go b/x/ophost/types/hooks.go index d774b934..17e84b03 100644 --- a/x/ophost/types/hooks.go +++ b/x/ophost/types/hooks.go @@ -8,7 +8,7 @@ type BridgeHook interface { bridgeId uint64, bridgeConfig BridgeConfig, ) error - BridgeChallengersUpdated( + BridgeChallengerUpdated( ctx context.Context, bridgeId uint64, bridgeConfig BridgeConfig, @@ -52,13 +52,13 @@ func (hooks BridgeHooks) BridgeCreated( return nil } -func (hooks BridgeHooks) BridgeChallengersUpdated( +func (hooks BridgeHooks) BridgeChallengerUpdated( ctx context.Context, bridgeId uint64, bridgeConfig BridgeConfig, ) error { for _, h := range hooks { - if err := h.BridgeChallengersUpdated(ctx, bridgeId, bridgeConfig); err != nil { + if err := h.BridgeChallengerUpdated(ctx, bridgeId, bridgeConfig); err != nil { return err } } diff --git a/x/ophost/types/tx.go b/x/ophost/types/tx.go index 996c60fe..7a4536ab 100644 --- a/x/ophost/types/tx.go +++ b/x/ophost/types/tx.go @@ -14,7 +14,7 @@ var ( _ sdk.Msg = &MsgFinalizeTokenWithdrawal{} _ sdk.Msg = &MsgInitiateTokenDeposit{} _ sdk.Msg = &MsgUpdateProposer{} - _ sdk.Msg = &MsgUpdateChallengers{} + _ sdk.Msg = &MsgUpdateChallenger{} _ sdk.Msg = &MsgUpdateBatchInfo{} _ sdk.Msg = &MsgUpdateMetadata{} _ sdk.Msg = &MsgUpdateParams{} @@ -313,23 +313,23 @@ func (msg MsgUpdateProposer) Validate(ac address.Codec) error { return nil } -/* MsgUpdateChallengers */ +/* MsgUpdateChallenger */ -// NewMsgUpdateChallengers creates a new MsgUpdateChallengers instance. -func NewMsgUpdateChallengers( +// NewMsgUpdateChallenger creates a new MsgUpdateChallenger instance. +func NewMsgUpdateChallenger( authority string, bridgeId uint64, - newChallengers []string, -) *MsgUpdateChallengers { - return &MsgUpdateChallengers{ - Authority: authority, - BridgeId: bridgeId, - NewChallengers: newChallengers, + challenger string, +) *MsgUpdateChallenger { + return &MsgUpdateChallenger{ + Authority: authority, + BridgeId: bridgeId, + Challenger: challenger, } } -// Validate performs basic MsgUpdateChallengers message validation. -func (msg MsgUpdateChallengers) Validate(ac address.Codec) error { +// Validate performs basic MsgUpdateChallenger message validation. +func (msg MsgUpdateChallenger) Validate(ac address.Codec) error { if _, err := ac.StringToBytes(msg.Authority); err != nil { return err } @@ -338,22 +338,9 @@ func (msg MsgUpdateChallengers) Validate(ac address.Codec) error { return ErrInvalidBridgeId } - dupCheckMap := make(map[string]bool) - for _, challenger := range msg.NewChallengers { - _, err := ac.StringToBytes(challenger) - if err != nil { - return err - } - - if _, found := dupCheckMap[challenger]; found { - return ErrInvalidChallengerUpdate.Wrap("duplicate challenger") - } - - dupCheckMap[challenger] = true - } - - if len(msg.NewChallengers) == 0 { - return ErrInvalidChallengerUpdate.Wrap("at least one new challenger is required") + _, err := ac.StringToBytes(msg.Challenger) + if err != nil { + return err } return nil diff --git a/x/ophost/types/tx.pb.go b/x/ophost/types/tx.pb.go index ef7690d4..ff68e2ec 100644 --- a/x/ophost/types/tx.pb.go +++ b/x/ophost/types/tx.pb.go @@ -595,28 +595,28 @@ func (m *MsgUpdateProposerResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateProposerResponse proto.InternalMessageInfo // MsgUpdateChallenger is a message to change a challenger -type MsgUpdateChallengers struct { +type MsgUpdateChallenger struct { // authority is the address that controls the module (defaults to x/gov unless overwritten) // or the current challenger address. // // If the given authority is a challenger address, it has the ability to replace itself with another address. - Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty" yaml:"authority"` - BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` - NewChallengers []string `protobuf:"bytes,3,rep,name=new_challengers,json=newChallengers,proto3" json:"new_challengers,omitempty" yaml:"new_challengers"` + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty" yaml:"authority"` + BridgeId uint64 `protobuf:"varint,2,opt,name=bridge_id,json=bridgeId,proto3" json:"bridge_id,omitempty" yaml:"bridge_id"` + Challenger string `protobuf:"bytes,3,opt,name=challenger,proto3" json:"challenger,omitempty" yaml:"challenger"` } -func (m *MsgUpdateChallengers) Reset() { *m = MsgUpdateChallengers{} } -func (m *MsgUpdateChallengers) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateChallengers) ProtoMessage() {} -func (*MsgUpdateChallengers) Descriptor() ([]byte, []int) { +func (m *MsgUpdateChallenger) Reset() { *m = MsgUpdateChallenger{} } +func (m *MsgUpdateChallenger) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateChallenger) ProtoMessage() {} +func (*MsgUpdateChallenger) Descriptor() ([]byte, []int) { return fileDescriptor_d16af6eaf4088d05, []int{14} } -func (m *MsgUpdateChallengers) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateChallenger) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgUpdateChallengers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateChallenger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgUpdateChallengers.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateChallenger.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -626,38 +626,38 @@ func (m *MsgUpdateChallengers) XXX_Marshal(b []byte, deterministic bool) ([]byte return b[:n], nil } } -func (m *MsgUpdateChallengers) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateChallengers.Merge(m, src) +func (m *MsgUpdateChallenger) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateChallenger.Merge(m, src) } -func (m *MsgUpdateChallengers) XXX_Size() int { +func (m *MsgUpdateChallenger) XXX_Size() int { return m.Size() } -func (m *MsgUpdateChallengers) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateChallengers.DiscardUnknown(m) +func (m *MsgUpdateChallenger) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateChallenger.DiscardUnknown(m) } -var xxx_messageInfo_MsgUpdateChallengers proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateChallenger proto.InternalMessageInfo -// MsgUpdateChallengersResponse returns a message handle result. -type MsgUpdateChallengersResponse struct { +// MsgUpdateChallengerResponse returns a message handle result. +type MsgUpdateChallengerResponse struct { // last finalized output index OutputIndex uint64 `protobuf:"varint,1,opt,name=output_index,json=outputIndex,proto3" json:"output_index,omitempty"` // last finalized l2 block number L2BlockNumber uint64 `protobuf:"varint,2,opt,name=l2_block_number,json=l2BlockNumber,proto3" json:"l2_block_number,omitempty"` } -func (m *MsgUpdateChallengersResponse) Reset() { *m = MsgUpdateChallengersResponse{} } -func (m *MsgUpdateChallengersResponse) String() string { return proto.CompactTextString(m) } -func (*MsgUpdateChallengersResponse) ProtoMessage() {} -func (*MsgUpdateChallengersResponse) Descriptor() ([]byte, []int) { +func (m *MsgUpdateChallengerResponse) Reset() { *m = MsgUpdateChallengerResponse{} } +func (m *MsgUpdateChallengerResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateChallengerResponse) ProtoMessage() {} +func (*MsgUpdateChallengerResponse) Descriptor() ([]byte, []int) { return fileDescriptor_d16af6eaf4088d05, []int{15} } -func (m *MsgUpdateChallengersResponse) XXX_Unmarshal(b []byte) error { +func (m *MsgUpdateChallengerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgUpdateChallengersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgUpdateChallengerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgUpdateChallengersResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgUpdateChallengerResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -667,17 +667,17 @@ func (m *MsgUpdateChallengersResponse) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *MsgUpdateChallengersResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgUpdateChallengersResponse.Merge(m, src) +func (m *MsgUpdateChallengerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateChallengerResponse.Merge(m, src) } -func (m *MsgUpdateChallengersResponse) XXX_Size() int { +func (m *MsgUpdateChallengerResponse) XXX_Size() int { return m.Size() } -func (m *MsgUpdateChallengersResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgUpdateChallengersResponse.DiscardUnknown(m) +func (m *MsgUpdateChallengerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateChallengerResponse.DiscardUnknown(m) } -var xxx_messageInfo_MsgUpdateChallengersResponse proto.InternalMessageInfo +var xxx_messageInfo_MsgUpdateChallengerResponse proto.InternalMessageInfo // MsgUpdateBatchInfo is a message to change a batch info type MsgUpdateBatchInfo struct { @@ -1021,8 +1021,8 @@ func init() { proto.RegisterType((*MsgFinalizeTokenWithdrawalResponse)(nil), "opinit.ophost.v1.MsgFinalizeTokenWithdrawalResponse") proto.RegisterType((*MsgUpdateProposer)(nil), "opinit.ophost.v1.MsgUpdateProposer") proto.RegisterType((*MsgUpdateProposerResponse)(nil), "opinit.ophost.v1.MsgUpdateProposerResponse") - proto.RegisterType((*MsgUpdateChallengers)(nil), "opinit.ophost.v1.MsgUpdateChallengers") - proto.RegisterType((*MsgUpdateChallengersResponse)(nil), "opinit.ophost.v1.MsgUpdateChallengersResponse") + proto.RegisterType((*MsgUpdateChallenger)(nil), "opinit.ophost.v1.MsgUpdateChallenger") + proto.RegisterType((*MsgUpdateChallengerResponse)(nil), "opinit.ophost.v1.MsgUpdateChallengerResponse") proto.RegisterType((*MsgUpdateBatchInfo)(nil), "opinit.ophost.v1.MsgUpdateBatchInfo") proto.RegisterType((*MsgUpdateBatchInfoResponse)(nil), "opinit.ophost.v1.MsgUpdateBatchInfoResponse") proto.RegisterType((*MsgUpdateOracleConfig)(nil), "opinit.ophost.v1.MsgUpdateOracleConfig") @@ -1036,111 +1036,110 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/tx.proto", fileDescriptor_d16af6eaf4088d05) } var fileDescriptor_d16af6eaf4088d05 = []byte{ - // 1658 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xb7, 0x9d, 0x34, 0x8d, 0xc7, 0xf9, 0xdc, 0xa6, 0x89, 0xb3, 0x6d, 0xbd, 0xc9, 0xb4, 0xb4, - 0x69, 0x9a, 0xda, 0x4a, 0x80, 0x22, 0x59, 0x42, 0xa2, 0x9b, 0xf2, 0x91, 0x4a, 0xa6, 0xd1, 0x02, - 0x42, 0x7c, 0x48, 0xd6, 0xda, 0x9e, 0xac, 0x57, 0xb5, 0x77, 0xcc, 0xce, 0x38, 0x69, 0x90, 0x90, - 0x10, 0x27, 0xe0, 0x84, 0xc4, 0x3f, 0x50, 0x71, 0xea, 0xb1, 0x07, 0xfe, 0x03, 0x2e, 0xb9, 0x20, - 0x55, 0x88, 0x03, 0x27, 0x0b, 0x9a, 0x43, 0x39, 0x22, 0x5f, 0xb9, 0xa0, 0x99, 0xd9, 0x9d, 0xfd, - 0xf0, 0x3a, 0x0d, 0xa5, 0x25, 0x17, 0xcb, 0xf3, 0xde, 0xef, 0xcd, 0xbc, 0xf7, 0x7b, 0x6f, 0xde, - 0xcc, 0x2c, 0x58, 0xc4, 0x1d, 0xdb, 0xb1, 0x69, 0x09, 0x77, 0x9a, 0x98, 0xd0, 0xd2, 0xee, 0x7a, - 0x89, 0xde, 0x2b, 0x76, 0x5c, 0x4c, 0xb1, 0x32, 0x23, 0x54, 0x45, 0xa1, 0x2a, 0xee, 0xae, 0xab, - 0xb3, 0x66, 0xdb, 0x76, 0x70, 0x89, 0xff, 0x0a, 0x90, 0x5a, 0xa8, 0x63, 0xd2, 0xc6, 0xa4, 0x54, - 0x33, 0x09, 0x2a, 0xed, 0xae, 0xd7, 0x10, 0x35, 0xd7, 0x4b, 0x75, 0x6c, 0x3b, 0x9e, 0x7e, 0xc1, - 0xd3, 0xb7, 0x89, 0xc5, 0x26, 0x6f, 0x13, 0xcb, 0x53, 0x2c, 0x0a, 0x45, 0x95, 0x8f, 0x4a, 0x62, - 0xe0, 0xa9, 0xe6, 0x2c, 0x6c, 0x61, 0x21, 0x67, 0xff, 0x3c, 0xe9, 0xf9, 0x41, 0x4f, 0xf7, 0x3b, - 0xc8, 0xb3, 0x81, 0xfd, 0x34, 0x98, 0xaa, 0x10, 0xcb, 0x40, 0x75, 0xec, 0x36, 0x74, 0x93, 0xd6, - 0x9b, 0xca, 0x6d, 0x90, 0x25, 0xdd, 0x5a, 0xdb, 0xa6, 0x14, 0xb9, 0xf9, 0xf4, 0x52, 0x7a, 0x25, - 0xab, 0xaf, 0xf5, 0x7b, 0xda, 0xcc, 0xbe, 0xd9, 0x6e, 0x95, 0xa1, 0x54, 0xc1, 0x5f, 0x7e, 0xbc, - 0x3e, 0xe7, 0xad, 0x7f, 0xb3, 0xd1, 0x70, 0x11, 0x21, 0xef, 0x51, 0xd7, 0x76, 0x2c, 0x23, 0x30, - 0x57, 0xd6, 0x41, 0xb6, 0xe6, 0xda, 0x0d, 0x0b, 0x55, 0xed, 0x46, 0x3e, 0xb3, 0x94, 0x5e, 0x19, - 0xd5, 0xe7, 0x82, 0xb9, 0xa4, 0x0a, 0x1a, 0xe3, 0xe2, 0xff, 0x56, 0x43, 0x79, 0x0d, 0xe4, 0x6a, - 0xcc, 0x8f, 0x6a, 0x6d, 0x9f, 0x22, 0x92, 0x1f, 0x59, 0x4a, 0xaf, 0x4c, 0xe8, 0xf3, 0xfd, 0x9e, - 0xa6, 0x78, 0x46, 0x81, 0x12, 0x1a, 0x80, 0x8f, 0x74, 0x36, 0x28, 0xaf, 0x7c, 0xf5, 0xe4, 0xe1, - 0x6a, 0xb0, 0xf6, 0xb7, 0x4f, 0x1e, 0xae, 0x9e, 0xf5, 0x82, 0x8e, 0x46, 0x08, 0xf3, 0x60, 0x3e, - 0x2a, 0x31, 0x10, 0xe9, 0x60, 0x87, 0x20, 0xf8, 0x6b, 0x1a, 0x4c, 0x57, 0x88, 0xb5, 0xe9, 0x22, - 0x93, 0x22, 0x9d, 0xbb, 0xa4, 0xdc, 0x02, 0xa7, 0xeb, 0x6c, 0x8c, 0x7d, 0x36, 0x56, 0xfb, 0x3d, - 0x6d, 0x4a, 0x38, 0xe3, 0x29, 0x86, 0x73, 0xe1, 0x9b, 0x2a, 0x06, 0x18, 0xab, 0x63, 0x67, 0xc7, - 0xb6, 0x38, 0x0d, 0xb9, 0x8d, 0x42, 0x31, 0x5e, 0x26, 0x45, 0xb1, 0xde, 0x26, 0x47, 0xe9, 0xea, - 0x41, 0x4f, 0x4b, 0xf5, 0x7b, 0xda, 0xa4, 0xb7, 0x10, 0x97, 0xc2, 0x07, 0x4f, 0x1e, 0xae, 0xa6, - 0x0d, 0x6f, 0xa6, 0xf2, 0x15, 0x16, 0xb1, 0xbf, 0x02, 0x8b, 0x77, 0x3e, 0x88, 0x37, 0x1c, 0x02, - 0xbc, 0x01, 0x16, 0x62, 0x22, 0x3f, 0x62, 0xe5, 0x5c, 0x38, 0x43, 0x2c, 0xbe, 0xd1, 0x20, 0x17, - 0xb0, 0x9f, 0x01, 0x33, 0x15, 0x62, 0x6d, 0xbb, 0xb8, 0x83, 0x09, 0xba, 0xd3, 0xa5, 0x9d, 0x2e, - 0x55, 0xde, 0x06, 0xe3, 0x1d, 0x21, 0xf0, 0x09, 0xb9, 0xd6, 0xef, 0x69, 0xd3, 0xc2, 0x4f, 0x5f, - 0x33, 0x9c, 0x11, 0x69, 0xfc, 0x2c, 0xc5, 0x51, 0x06, 0x13, 0x98, 0x7b, 0x51, 0xb5, 0x9d, 0x06, - 0xba, 0xc7, 0xab, 0x63, 0x54, 0x5f, 0xe8, 0xf7, 0xb4, 0x33, 0xc2, 0x2a, 0xac, 0x85, 0x46, 0x4e, - 0x0c, 0xb7, 0xd8, 0x48, 0xd1, 0xc1, 0x74, 0x6b, 0xa3, 0x5a, 0x6b, 0xe1, 0xfa, 0xdd, 0xaa, 0xd3, - 0x6d, 0xd7, 0x90, 0x9b, 0x1f, 0xe5, 0xe6, 0x6a, 0xbf, 0xa7, 0xcd, 0x0b, 0xf3, 0x18, 0x00, 0x1a, - 0x93, 0xad, 0x0d, 0x9d, 0x09, 0xde, 0xe5, 0x63, 0x56, 0x9c, 0xde, 0x0a, 0x2e, 0xc6, 0x34, 0x7f, - 0x2a, 0x5e, 0x9c, 0x21, 0x25, 0x34, 0x80, 0x18, 0x19, 0x18, 0xd3, 0xf2, 0x55, 0x96, 0x2a, 0x19, - 0x3a, 0xcb, 0xd5, 0x42, 0x90, 0xab, 0x08, 0xbf, 0x50, 0x05, 0xf9, 0xb8, 0x4c, 0xd6, 0xe7, 0xdf, - 0xa2, 0x3e, 0x6f, 0xa1, 0x16, 0xa2, 0x7e, 0x3e, 0x2a, 0x00, 0xd4, 0x9b, 0x66, 0xab, 0x85, 0x1c, - 0x4b, 0x66, 0xe4, 0x7a, 0xbf, 0xa7, 0xcd, 0x7a, 0x95, 0x23, 0x75, 0xc3, 0x73, 0x12, 0x9a, 0xe0, - 0x7f, 0xce, 0x4a, 0x79, 0x95, 0x11, 0x13, 0x5a, 0x3f, 0x56, 0xc6, 0xe1, 0x48, 0xe1, 0x22, 0x2f, - 0xe3, 0xb0, 0x48, 0x12, 0x73, 0x98, 0xe1, 0xba, 0x2d, 0xc7, 0xa6, 0xb6, 0x49, 0xd1, 0xfb, 0xf8, - 0x2e, 0x72, 0x6e, 0xa1, 0x0e, 0x26, 0x36, 0x55, 0x6e, 0x82, 0x31, 0x82, 0x9c, 0x86, 0x24, 0xe7, - 0x6a, 0xb0, 0xad, 0x84, 0x7c, 0x38, 0x31, 0x9e, 0xe1, 0xb3, 0x90, 0x72, 0x01, 0x64, 0x28, 0xe6, - 0x54, 0x64, 0xf5, 0xc9, 0x7e, 0x4f, 0xcb, 0x0a, 0x2c, 0xc5, 0xd0, 0xc8, 0x50, 0xac, 0x54, 0xc0, - 0x98, 0xd9, 0xc6, 0x5d, 0x87, 0xf2, 0x22, 0xcc, 0x6d, 0x2c, 0x16, 0x3d, 0x07, 0xd8, 0x89, 0x50, - 0xf4, 0x4e, 0x84, 0xe2, 0x26, 0xb6, 0x9d, 0x78, 0x2b, 0x10, 0x66, 0x7e, 0x2b, 0x10, 0x23, 0x65, - 0x0d, 0x8c, 0x36, 0x4c, 0x6a, 0x7a, 0x15, 0x99, 0x3f, 0xe8, 0x69, 0xe9, 0x7e, 0x4f, 0xcb, 0x09, - 0x0b, 0xa6, 0xe1, 0xf8, 0x94, 0xc1, 0x51, 0xe5, 0x1b, 0x5f, 0xdf, 0xd7, 0x52, 0x7f, 0xde, 0xd7, - 0x52, 0x8c, 0x7c, 0x2f, 0x46, 0x46, 0x7c, 0x21, 0x20, 0x3e, 0x89, 0x49, 0xf8, 0x3a, 0xd0, 0x86, - 0xa8, 0x64, 0x3f, 0x51, 0xc1, 0x38, 0x41, 0x9f, 0x75, 0x91, 0x53, 0x47, 0x7e, 0x3b, 0xf1, 0xc7, - 0xf0, 0xa7, 0x53, 0x40, 0xad, 0x10, 0xeb, 0x2d, 0xdb, 0x31, 0x5b, 0xf6, 0xe7, 0xc2, 0xfe, 0x43, - 0x9b, 0x36, 0x1b, 0xae, 0xb9, 0x67, 0xb6, 0x4e, 0x28, 0x4f, 0xff, 0xa5, 0xa5, 0xdc, 0x00, 0xb3, - 0x7b, 0xd2, 0x7f, 0x76, 0x24, 0xe3, 0x1d, 0x92, 0x1f, 0x5d, 0x1a, 0x59, 0x99, 0xd0, 0xb3, 0x2c, - 0x05, 0x82, 0xf3, 0x99, 0x00, 0xb3, 0xcd, 0x21, 0xca, 0x45, 0x30, 0xba, 0xe3, 0xe2, 0x36, 0xcf, - 0x56, 0x56, 0x9f, 0x0e, 0x32, 0xc5, 0xa4, 0xd0, 0xe0, 0x4a, 0xe5, 0x55, 0x5e, 0x40, 0x63, 0x1c, - 0xf2, 0x52, 0xa4, 0x80, 0x86, 0xd2, 0xc0, 0x0a, 0xab, 0x14, 0x4a, 0xc0, 0x69, 0x1e, 0xcb, 0x99, - 0xa0, 0x3d, 0xcb, 0x54, 0x04, 0x59, 0x09, 0x55, 0xe2, 0xf8, 0xf3, 0xa9, 0xc4, 0xd3, 0xbb, 0xc8, - 0x25, 0x36, 0x76, 0xf2, 0x59, 0x5e, 0x8c, 0x4a, 0x70, 0x5c, 0x7a, 0x0a, 0x68, 0xf8, 0x10, 0xc6, - 0x3e, 0xa1, 0xd8, 0x35, 0x2d, 0x24, 0x3a, 0x2a, 0xe0, 0x26, 0x21, 0xf6, 0xc3, 0x5a, 0x68, 0xe4, - 0xbc, 0x21, 0xeb, 0xa9, 0xbc, 0xa1, 0x9b, 0x84, 0x7a, 0x1d, 0xbb, 0x69, 0x92, 0x66, 0x3e, 0xc7, - 0xcd, 0xc3, 0x0d, 0x3d, 0x0a, 0x60, 0x0d, 0xdd, 0x24, 0x94, 0xb7, 0xf4, 0x77, 0x4c, 0xd2, 0x2c, - 0xaf, 0xc7, 0x76, 0xc0, 0x72, 0xb0, 0x03, 0x86, 0x94, 0x29, 0xbc, 0x04, 0xe0, 0x70, 0xad, 0x6c, - 0x48, 0xdf, 0x67, 0xc0, 0x6c, 0x85, 0x58, 0x1f, 0x74, 0x1a, 0x26, 0x45, 0xdb, 0xfe, 0x91, 0x77, - 0x1b, 0x64, 0xcd, 0x2e, 0x6d, 0x62, 0xd7, 0xa6, 0xfb, 0x83, 0x77, 0x2b, 0xa9, 0x3a, 0xe2, 0x6e, - 0x25, 0x31, 0xcf, 0x52, 0xeb, 0x06, 0x98, 0x70, 0xd0, 0x5e, 0x55, 0x1e, 0xdf, 0xa2, 0x3b, 0x95, - 0x02, 0xb6, 0xc3, 0xda, 0xe1, 0x4e, 0xe4, 0x1c, 0xb4, 0xe7, 0x87, 0x54, 0xbe, 0xc6, 0xaf, 0x5d, - 0xd2, 0x2d, 0x46, 0x62, 0x3e, 0x20, 0x31, 0x1a, 0x3f, 0xdc, 0x01, 0x8b, 0x03, 0x42, 0xd9, 0x3a, - 0x96, 0x63, 0x3b, 0x51, 0xb4, 0x8f, 0xc8, 0x86, 0xbb, 0x3c, 0x78, 0x86, 0xf3, 0xc8, 0x63, 0xe7, - 0x34, 0xfc, 0x21, 0x03, 0xe6, 0xe4, 0x42, 0x9b, 0xf2, 0x70, 0x21, 0x27, 0x9d, 0x80, 0x4f, 0xc0, - 0x34, 0xa3, 0x38, 0x38, 0xee, 0xd8, 0x05, 0x77, 0x64, 0x25, 0xab, 0x6f, 0x04, 0x25, 0x1b, 0x03, - 0x0c, 0x77, 0x65, 0xca, 0x41, 0x7b, 0xa1, 0xd8, 0xca, 0xc5, 0xc1, 0x4c, 0x9c, 0x8b, 0x67, 0x22, - 0x84, 0x87, 0x36, 0x38, 0x9f, 0x24, 0x7f, 0x11, 0xf9, 0x78, 0x90, 0x01, 0x8a, 0x5c, 0x8b, 0x5f, - 0xb9, 0xb7, 0x9c, 0x1d, 0x7c, 0xd2, 0xd9, 0x40, 0x80, 0x51, 0x58, 0x15, 0x2f, 0x0a, 0xdb, 0xd9, - 0x11, 0xc7, 0x75, 0x6e, 0xe3, 0x5c, 0xc2, 0xdd, 0xdc, 0xf7, 0x59, 0x87, 0x5e, 0x0f, 0x3c, 0x1b, - 0x64, 0x2b, 0x98, 0xc0, 0xeb, 0x85, 0x6c, 0x97, 0x49, 0x8b, 0xf2, 0xda, 0x60, 0x5e, 0x16, 0xe3, - 0x79, 0x91, 0x68, 0x68, 0xf1, 0x33, 0x32, 0x26, 0x7d, 0x11, 0x39, 0xf9, 0x26, 0x03, 0xce, 0xca, - 0x95, 0xee, 0xb8, 0x66, 0xbd, 0xe5, 0xbd, 0x3d, 0x4e, 0x3a, 0x2d, 0x6f, 0x80, 0x29, 0xcc, 0xdd, - 0xa9, 0x22, 0xc7, 0xac, 0xb5, 0x50, 0x83, 0xa7, 0x65, 0x5c, 0x5f, 0x0c, 0x58, 0x8f, 0xea, 0xa1, - 0x31, 0x29, 0x04, 0x6f, 0x8a, 0x71, 0xb9, 0x34, 0xc8, 0xf8, 0xf9, 0x38, 0xe3, 0xe1, 0x88, 0xa1, - 0x06, 0x2e, 0x24, 0x2a, 0x64, 0x3b, 0xff, 0x2b, 0x1d, 0x6a, 0xe7, 0x15, 0x44, 0x4d, 0x76, 0x8f, - 0x3a, 0x69, 0xa2, 0x4a, 0x60, 0xbc, 0xed, 0xb9, 0xe2, 0xbd, 0x93, 0x43, 0x47, 0xbd, 0xaf, 0x81, - 0x86, 0x04, 0x1d, 0xab, 0x57, 0xfb, 0xc1, 0x45, 0x7a, 0xb5, 0x2f, 0x7c, 0x11, 0x75, 0xf8, 0xb3, - 0x78, 0xd3, 0x78, 0x87, 0x82, 0xe9, 0x9a, 0xed, 0xe7, 0xdb, 0xa6, 0x37, 0xc1, 0x58, 0x87, 0xcf, - 0xea, 0xbd, 0xbc, 0xf3, 0x83, 0xbb, 0x5b, 0xac, 0xaa, 0xcf, 0x06, 0x57, 0x1b, 0x61, 0x01, 0x0d, - 0xcf, 0x54, 0xbc, 0xdf, 0xa2, 0xcc, 0xcd, 0x0f, 0x9c, 0x72, 0xc2, 0x46, 0xbc, 0x52, 0xc2, 0x22, - 0x9f, 0xb5, 0x8d, 0xc3, 0x2c, 0x18, 0xa9, 0x10, 0x4b, 0xf9, 0x08, 0xe4, 0xc2, 0x5f, 0x5c, 0x96, - 0x06, 0x3d, 0x8a, 0x7e, 0x9f, 0x50, 0x57, 0x9e, 0x86, 0x90, 0x89, 0xf9, 0x14, 0x4c, 0x44, 0xbe, - 0x5e, 0x2c, 0x27, 0x5a, 0x86, 0x21, 0xea, 0xd5, 0xa7, 0x42, 0xe4, 0xec, 0x55, 0x30, 0x19, 0xfd, - 0x18, 0x00, 0x13, 0x6d, 0x23, 0x18, 0x75, 0xf5, 0xe9, 0x98, 0xb0, 0xfb, 0x91, 0xc7, 0x6d, 0xb2, - 0xfb, 0x61, 0xc8, 0x10, 0xf7, 0x93, 0x5e, 0x89, 0x0a, 0x05, 0x73, 0x89, 0x2f, 0xc4, 0xe4, 0x29, - 0x92, 0xa0, 0xea, 0xfa, 0xb1, 0xa1, 0x72, 0xd5, 0x2f, 0xc0, 0xc2, 0xb0, 0x27, 0xcf, 0x5a, 0xe2, - 0x6c, 0x43, 0xd0, 0xea, 0x2b, 0xff, 0x06, 0x2d, 0x97, 0xaf, 0x81, 0xa9, 0xd8, 0x2d, 0xf4, 0x62, - 0xe2, 0x3c, 0x51, 0x90, 0x7a, 0xed, 0x18, 0x20, 0xb9, 0xc6, 0x5d, 0x30, 0x3b, 0x78, 0xd7, 0xba, - 0x7c, 0xc4, 0x0c, 0x21, 0x9c, 0x5a, 0x3c, 0x1e, 0x4e, 0x2e, 0x86, 0xc0, 0x74, 0xfc, 0x22, 0x71, - 0xe9, 0x88, 0x29, 0x24, 0x4a, 0x5d, 0x3b, 0x0e, 0x6a, 0x90, 0x37, 0xd9, 0xee, 0x8f, 0xe2, 0xcd, - 0x07, 0x1d, 0xc9, 0xdb, 0x40, 0x1b, 0x75, 0x80, 0x92, 0x70, 0xfe, 0x5e, 0x39, 0x62, 0x8a, 0x30, - 0x50, 0x2d, 0x1d, 0x13, 0x18, 0xde, 0x5e, 0x91, 0x3e, 0xbb, 0x7c, 0x54, 0x92, 0x39, 0x64, 0xc8, - 0xf6, 0x4a, 0x6a, 0x6f, 0xea, 0xa9, 0x2f, 0xd9, 0xed, 0x47, 0xbf, 0x7d, 0xf0, 0x47, 0x21, 0x75, - 0xf0, 0xb8, 0x90, 0x7e, 0xf4, 0xb8, 0x90, 0xfe, 0xfd, 0x71, 0x21, 0xfd, 0xdd, 0x61, 0x21, 0xf5, - 0xe8, 0xb0, 0x90, 0xfa, 0xed, 0xb0, 0x90, 0xfa, 0x78, 0xcd, 0xb2, 0x69, 0xb3, 0x5b, 0x2b, 0xd6, - 0x71, 0xbb, 0x64, 0xf3, 0x6d, 0x73, 0xbd, 0x65, 0xd6, 0x48, 0xe9, 0xce, 0x36, 0xff, 0x4c, 0x7d, - 0xcf, 0xff, 0x50, 0xcd, 0xbf, 0x52, 0xd7, 0xc6, 0xf8, 0x67, 0xea, 0x97, 0xff, 0x09, 0x00, 0x00, - 0xff, 0xff, 0x95, 0x88, 0x4f, 0x6d, 0x70, 0x17, 0x00, 0x00, + // 1641 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0xb7, + 0x12, 0x97, 0x64, 0xc7, 0xb1, 0x28, 0x7f, 0x6e, 0x1c, 0x5b, 0xde, 0x24, 0x5a, 0x9b, 0x49, 0x5e, + 0x1c, 0xc7, 0x96, 0x60, 0xbf, 0xf7, 0xf2, 0x00, 0x01, 0x0f, 0x68, 0xd6, 0xe9, 0x87, 0x03, 0xa8, + 0x31, 0xb6, 0x2d, 0x8a, 0x16, 0x05, 0x84, 0x95, 0x44, 0xaf, 0x16, 0x91, 0x96, 0xea, 0x92, 0xb2, + 0xe3, 0x02, 0x05, 0x8a, 0x9e, 0xda, 0x9e, 0x8a, 0xf6, 0x1f, 0xc8, 0x31, 0xc7, 0x1c, 0xfa, 0x1f, + 0xf4, 0xe2, 0x4b, 0x81, 0xa0, 0xe8, 0xa1, 0x27, 0x21, 0x8d, 0x0f, 0xe9, 0xb1, 0xd0, 0xb5, 0x97, + 0x62, 0x49, 0x2e, 0xf7, 0x43, 0x2b, 0xc7, 0xcd, 0x47, 0x7d, 0x11, 0x44, 0xce, 0x6f, 0xc8, 0x99, + 0xdf, 0x0c, 0x67, 0xc8, 0x05, 0x8b, 0xb8, 0x63, 0x3b, 0x36, 0x2d, 0xe1, 0x4e, 0x13, 0x13, 0x5a, + 0xda, 0xdb, 0x28, 0xd1, 0xfb, 0xc5, 0x8e, 0x8b, 0x29, 0x56, 0x66, 0xb8, 0xa8, 0xc8, 0x45, 0xc5, + 0xbd, 0x0d, 0x75, 0xd6, 0x6c, 0xdb, 0x0e, 0x2e, 0xb1, 0x5f, 0x0e, 0x52, 0x0b, 0x75, 0x4c, 0xda, + 0x98, 0x94, 0x6a, 0x26, 0x41, 0xa5, 0xbd, 0x8d, 0x1a, 0xa2, 0xe6, 0x46, 0xa9, 0x8e, 0x6d, 0x47, + 0xc8, 0x17, 0x84, 0xbc, 0x4d, 0x2c, 0x6f, 0xf1, 0x36, 0xb1, 0x84, 0x60, 0x91, 0x0b, 0xaa, 0x6c, + 0x54, 0xe2, 0x03, 0x21, 0x9a, 0xb3, 0xb0, 0x85, 0xf9, 0xbc, 0xf7, 0x4f, 0xcc, 0x5e, 0x1c, 0xb4, + 0xf4, 0xa0, 0x83, 0x84, 0x0e, 0xec, 0xa7, 0xc1, 0x54, 0x85, 0x58, 0x06, 0xaa, 0x63, 0xb7, 0xa1, + 0x9b, 0xb4, 0xde, 0x54, 0xee, 0x80, 0x2c, 0xe9, 0xd6, 0xda, 0x36, 0xa5, 0xc8, 0xcd, 0xa7, 0x97, + 0xd2, 0x2b, 0x59, 0x7d, 0xad, 0xdf, 0xd3, 0x66, 0x0e, 0xcc, 0x76, 0xab, 0x0c, 0xa5, 0x08, 0xfe, + 0xfc, 0xc3, 0xfa, 0x9c, 0xd8, 0xff, 0x56, 0xa3, 0xe1, 0x22, 0x42, 0xde, 0xa3, 0xae, 0xed, 0x58, + 0x46, 0xa0, 0xae, 0x6c, 0x80, 0x6c, 0xcd, 0xb5, 0x1b, 0x16, 0xaa, 0xda, 0x8d, 0x7c, 0x66, 0x29, + 0xbd, 0x32, 0xaa, 0xcf, 0x05, 0x6b, 0x49, 0x11, 0x34, 0xc6, 0xf9, 0xff, 0xed, 0x86, 0xf2, 0x3f, + 0x90, 0xab, 0x79, 0x76, 0x54, 0x6b, 0x07, 0x14, 0x91, 0xfc, 0xc8, 0x52, 0x7a, 0x65, 0x42, 0x9f, + 0xef, 0xf7, 0x34, 0x45, 0x28, 0x05, 0x42, 0x68, 0x00, 0x36, 0xd2, 0xbd, 0x41, 0x79, 0xe5, 0xcb, + 0x67, 0x8f, 0x56, 0x83, 0xbd, 0xbf, 0x79, 0xf6, 0x68, 0xf5, 0xbc, 0x70, 0x3a, 0xea, 0x21, 0xcc, + 0x83, 0xf9, 0xe8, 0x8c, 0x81, 0x48, 0x07, 0x3b, 0x04, 0xc1, 0x5f, 0xd2, 0x60, 0xba, 0x42, 0xac, + 0x2d, 0x17, 0x99, 0x14, 0xe9, 0xcc, 0x24, 0xe5, 0x36, 0x38, 0x5b, 0xf7, 0xc6, 0xd8, 0x67, 0x63, + 0xb5, 0xdf, 0xd3, 0xa6, 0xb8, 0x31, 0x42, 0x30, 0x9c, 0x0b, 0x5f, 0x55, 0x31, 0xc0, 0x58, 0x1d, + 0x3b, 0xbb, 0xb6, 0xc5, 0x68, 0xc8, 0x6d, 0x16, 0x8a, 0xf1, 0x34, 0x29, 0xf2, 0xfd, 0xb6, 0x18, + 0x4a, 0x57, 0x0f, 0x7b, 0x5a, 0xaa, 0xdf, 0xd3, 0x26, 0xc5, 0x46, 0x6c, 0x16, 0x3e, 0x7c, 0xf6, + 0x68, 0x35, 0x6d, 0x88, 0x95, 0xca, 0xd7, 0x3c, 0x8f, 0xfd, 0x1d, 0x3c, 0x7f, 0xe7, 0x03, 0x7f, + 0xc3, 0x2e, 0xc0, 0x9b, 0x60, 0x21, 0x36, 0xe5, 0x7b, 0xac, 0x5c, 0x08, 0x47, 0xc8, 0xf3, 0x6f, + 0x34, 0x88, 0x05, 0xec, 0x67, 0xc0, 0x4c, 0x85, 0x58, 0x3b, 0x2e, 0xee, 0x60, 0x82, 0xee, 0x76, + 0x69, 0xa7, 0x4b, 0x95, 0xb7, 0xc1, 0x78, 0x87, 0x4f, 0xf8, 0x84, 0xdc, 0xe8, 0xf7, 0xb4, 0x69, + 0x6e, 0xa7, 0x2f, 0x19, 0xce, 0x88, 0x54, 0x7e, 0x91, 0xe4, 0x28, 0x83, 0x09, 0xcc, 0xac, 0xa8, + 0xda, 0x4e, 0x03, 0xdd, 0x67, 0xd9, 0x31, 0xaa, 0x2f, 0xf4, 0x7b, 0xda, 0x39, 0xae, 0x15, 0x96, + 0x42, 0x23, 0xc7, 0x87, 0xdb, 0xde, 0x48, 0xd1, 0xc1, 0x74, 0x6b, 0xb3, 0x5a, 0x6b, 0xe1, 0xfa, + 0xbd, 0xaa, 0xd3, 0x6d, 0xd7, 0x90, 0x9b, 0x1f, 0x65, 0xea, 0x6a, 0xbf, 0xa7, 0xcd, 0x73, 0xf5, + 0x18, 0x00, 0x1a, 0x93, 0xad, 0x4d, 0xdd, 0x9b, 0x78, 0x97, 0x8d, 0xbd, 0xe4, 0x14, 0x3b, 0xb8, + 0x18, 0xd3, 0xfc, 0x99, 0x78, 0x72, 0x86, 0x84, 0xd0, 0x00, 0x7c, 0x64, 0x60, 0x4c, 0xcb, 0xd7, + 0xbd, 0x50, 0x49, 0xd7, 0xbd, 0x58, 0x2d, 0x04, 0xb1, 0x8a, 0xf0, 0x0b, 0x55, 0x90, 0x8f, 0xcf, + 0xc9, 0xfc, 0xfc, 0x93, 0xe7, 0xe7, 0x6d, 0xd4, 0x42, 0xd4, 0x8f, 0x47, 0x05, 0x80, 0x7a, 0xd3, + 0x6c, 0xb5, 0x90, 0x63, 0xc9, 0x88, 0xac, 0xf7, 0x7b, 0xda, 0xac, 0xc8, 0x1c, 0x29, 0x1b, 0x1e, + 0x93, 0xd0, 0x02, 0xff, 0x70, 0x54, 0xca, 0xab, 0x1e, 0x31, 0xa1, 0xfd, 0x63, 0x69, 0x1c, 0xf6, + 0x14, 0x2e, 0xb2, 0x34, 0x0e, 0x4f, 0x49, 0x62, 0x8e, 0x32, 0x4c, 0xb6, 0xed, 0xd8, 0xd4, 0x36, + 0x29, 0x7a, 0x1f, 0xdf, 0x43, 0xce, 0x6d, 0xd4, 0xc1, 0xc4, 0xa6, 0xca, 0x2d, 0x30, 0x46, 0x90, + 0xd3, 0x90, 0xe4, 0x5c, 0x0f, 0x8e, 0x15, 0x9f, 0x1f, 0x4e, 0x8c, 0x50, 0x7c, 0x11, 0x52, 0x2e, + 0x81, 0x0c, 0xc5, 0x8c, 0x8a, 0xac, 0x3e, 0xd9, 0xef, 0x69, 0x59, 0x8e, 0xa5, 0x18, 0x1a, 0x19, + 0x8a, 0x95, 0x0a, 0x18, 0x33, 0xdb, 0xb8, 0xeb, 0x50, 0x96, 0x84, 0xb9, 0xcd, 0xc5, 0xa2, 0x30, + 0xc0, 0xeb, 0x08, 0x45, 0xd1, 0x11, 0x8a, 0x5b, 0xd8, 0x76, 0xe2, 0xa5, 0x80, 0xab, 0xf9, 0xa5, + 0x80, 0x8f, 0x94, 0x35, 0x30, 0xda, 0x30, 0xa9, 0x29, 0x32, 0x32, 0x7f, 0xd8, 0xd3, 0xd2, 0xfd, + 0x9e, 0x96, 0xe3, 0x1a, 0x9e, 0x84, 0xe1, 0x53, 0x06, 0x43, 0x95, 0x6f, 0x7e, 0xf5, 0x40, 0x4b, + 0xfd, 0xfe, 0x40, 0x4b, 0x79, 0xe4, 0x0b, 0x1f, 0x3d, 0xe2, 0x0b, 0x01, 0xf1, 0x49, 0x4c, 0xc2, + 0xff, 0x03, 0x6d, 0x88, 0x48, 0xd6, 0x13, 0x15, 0x8c, 0x13, 0xf4, 0x69, 0x17, 0x39, 0x75, 0xe4, + 0x97, 0x13, 0x7f, 0x0c, 0x7f, 0x3c, 0x03, 0xd4, 0x0a, 0xb1, 0xde, 0xb2, 0x1d, 0xb3, 0x65, 0x7f, + 0xc6, 0xf5, 0x3f, 0xb4, 0x69, 0xb3, 0xe1, 0x9a, 0xfb, 0x66, 0xeb, 0x94, 0xe2, 0xf4, 0x32, 0x25, + 0xe5, 0x26, 0x98, 0xdd, 0x97, 0xf6, 0x7b, 0x2d, 0x19, 0xef, 0x92, 0xfc, 0xe8, 0xd2, 0xc8, 0xca, + 0x84, 0x9e, 0xf5, 0x42, 0xc0, 0x39, 0x9f, 0x09, 0x30, 0x3b, 0x0c, 0xa2, 0x5c, 0x06, 0xa3, 0xbb, + 0x2e, 0x6e, 0xb3, 0x68, 0x65, 0xf5, 0xe9, 0x20, 0x52, 0xde, 0x2c, 0x34, 0x98, 0x50, 0xf9, 0x2f, + 0x4b, 0xa0, 0x31, 0x06, 0xb9, 0x1a, 0x49, 0xa0, 0xa1, 0x34, 0x78, 0x89, 0x55, 0x0a, 0x05, 0xe0, + 0x2c, 0xf3, 0xe5, 0x5c, 0x50, 0x9e, 0x65, 0x28, 0x82, 0xa8, 0x84, 0x32, 0x71, 0xfc, 0xd5, 0x64, + 0xe2, 0xd9, 0x3d, 0xe4, 0x12, 0x1b, 0x3b, 0xf9, 0x2c, 0x4b, 0x46, 0x25, 0x68, 0x97, 0x42, 0x00, + 0x0d, 0x1f, 0xe2, 0xb1, 0x4f, 0x28, 0x76, 0x4d, 0x0b, 0xf1, 0x8a, 0x0a, 0x98, 0x4a, 0x88, 0xfd, + 0xb0, 0x14, 0x1a, 0x39, 0x31, 0xf4, 0x6a, 0x2a, 0x2b, 0xe8, 0x26, 0xa1, 0xa2, 0x62, 0x37, 0x4d, + 0xd2, 0xcc, 0xe7, 0x98, 0x7a, 0xb8, 0xa0, 0x47, 0x01, 0x5e, 0x41, 0x37, 0x09, 0x65, 0x25, 0xfd, + 0x1d, 0x93, 0x34, 0xcb, 0x1b, 0xb1, 0x13, 0xb0, 0x1c, 0x9c, 0x80, 0x21, 0x69, 0x0a, 0xaf, 0x00, + 0x38, 0x5c, 0x2a, 0x0b, 0xd2, 0xf7, 0x19, 0x30, 0x5b, 0x21, 0xd6, 0x07, 0x9d, 0x86, 0x49, 0xd1, + 0x8e, 0xdf, 0xf2, 0xee, 0x80, 0xac, 0xd9, 0xa5, 0x4d, 0xec, 0xda, 0xf4, 0x60, 0xf0, 0x6e, 0x25, + 0x45, 0xc7, 0xdc, 0xad, 0x24, 0xe6, 0x45, 0x72, 0xdd, 0x00, 0x13, 0x0e, 0xda, 0xaf, 0xca, 0xf6, + 0xcd, 0xab, 0x53, 0x29, 0x60, 0x3b, 0x2c, 0x1d, 0x6e, 0x44, 0xce, 0x41, 0xfb, 0xbe, 0x4b, 0xe5, + 0x1b, 0xec, 0xda, 0x25, 0xcd, 0xf2, 0x48, 0xcc, 0x07, 0x24, 0x46, 0xfd, 0x87, 0xbb, 0x60, 0x71, + 0x60, 0x52, 0x96, 0x8e, 0xe5, 0xd8, 0x49, 0xe4, 0xe5, 0x23, 0x72, 0xe0, 0xfe, 0x35, 0xd8, 0xc3, + 0x99, 0xe7, 0xb1, 0x3e, 0x0d, 0xbf, 0xcb, 0x80, 0x73, 0x72, 0xa3, 0xad, 0xa0, 0xb9, 0x9d, 0x32, + 0xff, 0xd1, 0x56, 0x3d, 0xf2, 0x92, 0xad, 0xba, 0xbc, 0x3e, 0x48, 0xbd, 0x1a, 0xa7, 0x3e, 0x70, + 0x1e, 0x36, 0xc1, 0x85, 0x84, 0xe9, 0xd7, 0x41, 0xff, 0xc3, 0x0c, 0x50, 0xe4, 0x56, 0xec, 0x86, + 0xbd, 0xed, 0xec, 0xe2, 0xd3, 0x66, 0x1f, 0x81, 0x29, 0x2f, 0xbf, 0xf9, 0x03, 0xc2, 0x76, 0x76, + 0x79, 0x77, 0xce, 0x6d, 0x5e, 0x48, 0xb8, 0x8a, 0xfb, 0x36, 0xeb, 0x50, 0x94, 0xbc, 0xf3, 0xc1, + 0x01, 0x09, 0x16, 0x10, 0xa5, 0xcf, 0x3b, 0x54, 0x52, 0xa3, 0xbc, 0x36, 0x18, 0x95, 0xc5, 0x78, + 0x54, 0x24, 0x1a, 0x5a, 0xac, 0x25, 0xc6, 0x66, 0x5f, 0x47, 0x4c, 0xbe, 0xce, 0x80, 0xf3, 0x72, + 0xa7, 0xbb, 0xae, 0x59, 0x6f, 0x89, 0xa7, 0xc6, 0x69, 0x87, 0xe5, 0x0d, 0x30, 0x85, 0x99, 0x39, + 0x55, 0xe4, 0x98, 0xb5, 0x16, 0x6a, 0xb0, 0xb0, 0x8c, 0xeb, 0x8b, 0x01, 0xeb, 0x51, 0x39, 0x34, + 0x26, 0xf9, 0xc4, 0x9b, 0x7c, 0x5c, 0x2e, 0x0d, 0x32, 0x7e, 0x31, 0xce, 0x78, 0xd8, 0x63, 0xa8, + 0x81, 0x4b, 0x89, 0x02, 0x59, 0xbd, 0xff, 0x48, 0x87, 0xaa, 0x77, 0x05, 0x51, 0xd3, 0xbb, 0x36, + 0x9d, 0x36, 0x51, 0x25, 0x30, 0xde, 0x16, 0xa6, 0x88, 0x67, 0x71, 0xa8, 0xb3, 0xfb, 0x12, 0x68, + 0x48, 0xd0, 0x89, 0x4a, 0xb3, 0xef, 0x5c, 0xa4, 0x34, 0xfb, 0x93, 0xaf, 0x23, 0x0f, 0x7f, 0xe2, + 0x4f, 0x18, 0xd1, 0x03, 0x4c, 0xd7, 0x6c, 0x93, 0x57, 0x4a, 0xec, 0x16, 0x18, 0xeb, 0xb0, 0x55, + 0xc5, 0x43, 0x3b, 0x3f, 0x78, 0xba, 0xf9, 0xae, 0xfa, 0x6c, 0x70, 0x93, 0xe1, 0x1a, 0xd0, 0x10, + 0xaa, 0xfc, 0xb9, 0x16, 0x65, 0x6e, 0x7e, 0xa0, 0xa9, 0x71, 0x1d, 0xfe, 0x28, 0x09, 0x4f, 0xf9, + 0xac, 0x6d, 0x3e, 0xc9, 0x82, 0x91, 0x0a, 0xb1, 0x94, 0x8f, 0x40, 0x2e, 0xfc, 0x81, 0x65, 0x69, + 0xd0, 0xa2, 0xe8, 0xe7, 0x08, 0x75, 0xe5, 0x79, 0x08, 0x19, 0x98, 0x4f, 0xc0, 0x44, 0xe4, 0x63, + 0xc5, 0x72, 0xa2, 0x66, 0x18, 0xa2, 0x5e, 0x7f, 0x2e, 0x44, 0xae, 0x5e, 0x05, 0x93, 0xd1, 0xb7, + 0x3f, 0x4c, 0xd4, 0x8d, 0x60, 0xd4, 0xd5, 0xe7, 0x63, 0xc2, 0xe6, 0x47, 0xde, 0xb2, 0xc9, 0xe6, + 0x87, 0x21, 0x43, 0xcc, 0x4f, 0x7a, 0x14, 0x2a, 0x14, 0xcc, 0x25, 0x3e, 0x08, 0x93, 0x97, 0x48, + 0x82, 0xaa, 0x1b, 0x27, 0x86, 0xca, 0x5d, 0x3f, 0x07, 0x0b, 0xc3, 0x5e, 0x38, 0x6b, 0x89, 0xab, + 0x0d, 0x41, 0xab, 0xff, 0xf9, 0x3b, 0x68, 0xb9, 0x7d, 0x0d, 0x4c, 0xc5, 0x2e, 0x9d, 0x97, 0x13, + 0xd7, 0x89, 0x82, 0xd4, 0x1b, 0x27, 0x00, 0xc9, 0x3d, 0x9a, 0x60, 0x66, 0xe0, 0x6a, 0x75, 0xf5, + 0x98, 0x05, 0x02, 0x98, 0xba, 0x7e, 0x22, 0x98, 0xdc, 0x09, 0x81, 0xe9, 0xf8, 0x2d, 0xe2, 0xca, + 0x31, 0x2b, 0x48, 0x94, 0xba, 0x76, 0x12, 0xd4, 0x20, 0x69, 0xb2, 0xd6, 0x1f, 0x47, 0x9a, 0x0f, + 0x3a, 0x96, 0xb4, 0x81, 0x1a, 0xea, 0x00, 0x25, 0xa1, 0xf9, 0x5e, 0x3b, 0x66, 0x89, 0x30, 0x50, + 0x2d, 0x9d, 0x10, 0x18, 0x3e, 0x5b, 0x91, 0x22, 0xbb, 0x7c, 0x5c, 0x84, 0x19, 0x64, 0xc8, 0xd9, + 0x4a, 0xaa, 0x6d, 0xea, 0x99, 0x2f, 0xbc, 0xab, 0x8f, 0x7e, 0xe7, 0xf0, 0xb7, 0x42, 0xea, 0xf0, + 0x69, 0x21, 0xfd, 0xf8, 0x69, 0x21, 0xfd, 0xe4, 0x69, 0x21, 0xfd, 0xed, 0x51, 0x21, 0xf5, 0xf8, + 0xa8, 0x90, 0xfa, 0xf5, 0xa8, 0x90, 0xfa, 0x78, 0xcd, 0xb2, 0x69, 0xb3, 0x5b, 0x2b, 0xd6, 0x71, + 0xbb, 0x64, 0xb3, 0x33, 0xb3, 0xde, 0x32, 0x6b, 0xa4, 0x74, 0x77, 0x87, 0x7d, 0x92, 0xbe, 0xef, + 0x7f, 0x94, 0x66, 0x5f, 0xa4, 0x6b, 0x63, 0xec, 0x93, 0xf4, 0xbf, 0xff, 0x0a, 0x00, 0x00, 0xff, + 0xff, 0xc9, 0xd7, 0x01, 0x4c, 0x5c, 0x17, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1169,8 +1168,8 @@ type MsgClient interface { FinalizeTokenWithdrawal(ctx context.Context, in *MsgFinalizeTokenWithdrawal, opts ...grpc.CallOption) (*MsgFinalizeTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(ctx context.Context, in *MsgUpdateProposer, opts ...grpc.CallOption) (*MsgUpdateProposerResponse, error) - // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. - UpdateChallengers(ctx context.Context, in *MsgUpdateChallengers, opts ...grpc.CallOption) (*MsgUpdateChallengersResponse, error) + // UpdateChallenger defines a rpc handler method for MsgUpdateChallenger. + UpdateChallenger(ctx context.Context, in *MsgUpdateChallenger, opts ...grpc.CallOption) (*MsgUpdateChallengerResponse, error) // UpdateBatchInfo defines a rpc handler method for MsgUpdateBatchInfo. UpdateBatchInfo(ctx context.Context, in *MsgUpdateBatchInfo, opts ...grpc.CallOption) (*MsgUpdateBatchInfoResponse, error) // UpdateMetadata defines a rpc handler method for MsgUpdateMetadata. @@ -1253,9 +1252,9 @@ func (c *msgClient) UpdateProposer(ctx context.Context, in *MsgUpdateProposer, o return out, nil } -func (c *msgClient) UpdateChallengers(ctx context.Context, in *MsgUpdateChallengers, opts ...grpc.CallOption) (*MsgUpdateChallengersResponse, error) { - out := new(MsgUpdateChallengersResponse) - err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Msg/UpdateChallengers", in, out, opts...) +func (c *msgClient) UpdateChallenger(ctx context.Context, in *MsgUpdateChallenger, opts ...grpc.CallOption) (*MsgUpdateChallengerResponse, error) { + out := new(MsgUpdateChallengerResponse) + err := c.cc.Invoke(ctx, "/opinit.ophost.v1.Msg/UpdateChallenger", in, out, opts...) if err != nil { return nil, err } @@ -1314,8 +1313,8 @@ type MsgServer interface { FinalizeTokenWithdrawal(context.Context, *MsgFinalizeTokenWithdrawal) (*MsgFinalizeTokenWithdrawalResponse, error) // UpdateProposer defines a rpc handler method for MsgUpdateProposer. UpdateProposer(context.Context, *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) - // UpdateChallengers defines a rpc handler method for MsgUpdateChallengers. - UpdateChallengers(context.Context, *MsgUpdateChallengers) (*MsgUpdateChallengersResponse, error) + // UpdateChallenger defines a rpc handler method for MsgUpdateChallenger. + UpdateChallenger(context.Context, *MsgUpdateChallenger) (*MsgUpdateChallengerResponse, error) // UpdateBatchInfo defines a rpc handler method for MsgUpdateBatchInfo. UpdateBatchInfo(context.Context, *MsgUpdateBatchInfo) (*MsgUpdateBatchInfoResponse, error) // UpdateMetadata defines a rpc handler method for MsgUpdateMetadata. @@ -1352,8 +1351,8 @@ func (*UnimplementedMsgServer) FinalizeTokenWithdrawal(ctx context.Context, req func (*UnimplementedMsgServer) UpdateProposer(ctx context.Context, req *MsgUpdateProposer) (*MsgUpdateProposerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateProposer not implemented") } -func (*UnimplementedMsgServer) UpdateChallengers(ctx context.Context, req *MsgUpdateChallengers) (*MsgUpdateChallengersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateChallengers not implemented") +func (*UnimplementedMsgServer) UpdateChallenger(ctx context.Context, req *MsgUpdateChallenger) (*MsgUpdateChallengerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateChallenger not implemented") } func (*UnimplementedMsgServer) UpdateBatchInfo(ctx context.Context, req *MsgUpdateBatchInfo) (*MsgUpdateBatchInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateBatchInfo not implemented") @@ -1498,20 +1497,20 @@ func _Msg_UpdateProposer_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _Msg_UpdateChallengers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgUpdateChallengers) +func _Msg_UpdateChallenger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateChallenger) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).UpdateChallengers(ctx, in) + return srv.(MsgServer).UpdateChallenger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opinit.ophost.v1.Msg/UpdateChallengers", + FullMethod: "/opinit.ophost.v1.Msg/UpdateChallenger", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).UpdateChallengers(ctx, req.(*MsgUpdateChallengers)) + return srv.(MsgServer).UpdateChallenger(ctx, req.(*MsgUpdateChallenger)) } return interceptor(ctx, in, info, handler) } @@ -1621,8 +1620,8 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ Handler: _Msg_UpdateProposer_Handler, }, { - MethodName: "UpdateChallengers", - Handler: _Msg_UpdateChallengers_Handler, + MethodName: "UpdateChallenger", + Handler: _Msg_UpdateChallenger_Handler, }, { MethodName: "UpdateBatchInfo", @@ -2200,7 +2199,7 @@ func (m *MsgUpdateProposerResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *MsgUpdateChallengers) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateChallenger) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2210,24 +2209,22 @@ func (m *MsgUpdateChallengers) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgUpdateChallengers) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateChallenger) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgUpdateChallengers) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateChallenger) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.NewChallengers) > 0 { - for iNdEx := len(m.NewChallengers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.NewChallengers[iNdEx]) - copy(dAtA[i:], m.NewChallengers[iNdEx]) - i = encodeVarintTx(dAtA, i, uint64(len(m.NewChallengers[iNdEx]))) - i-- - dAtA[i] = 0x1a - } + if len(m.Challenger) > 0 { + i -= len(m.Challenger) + copy(dAtA[i:], m.Challenger) + i = encodeVarintTx(dAtA, i, uint64(len(m.Challenger))) + i-- + dAtA[i] = 0x1a } if m.BridgeId != 0 { i = encodeVarintTx(dAtA, i, uint64(m.BridgeId)) @@ -2244,7 +2241,7 @@ func (m *MsgUpdateChallengers) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MsgUpdateChallengersResponse) Marshal() (dAtA []byte, err error) { +func (m *MsgUpdateChallengerResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2254,12 +2251,12 @@ func (m *MsgUpdateChallengersResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgUpdateChallengersResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgUpdateChallengerResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgUpdateChallengersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgUpdateChallengerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2825,7 +2822,7 @@ func (m *MsgUpdateProposerResponse) Size() (n int) { return n } -func (m *MsgUpdateChallengers) Size() (n int) { +func (m *MsgUpdateChallenger) Size() (n int) { if m == nil { return 0 } @@ -2838,16 +2835,14 @@ func (m *MsgUpdateChallengers) Size() (n int) { if m.BridgeId != 0 { n += 1 + sovTx(uint64(m.BridgeId)) } - if len(m.NewChallengers) > 0 { - for _, s := range m.NewChallengers { - l = len(s) - n += 1 + l + sovTx(uint64(l)) - } + l = len(m.Challenger) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) } return n } -func (m *MsgUpdateChallengersResponse) Size() (n int) { +func (m *MsgUpdateChallengerResponse) Size() (n int) { if m == nil { return 0 } @@ -4662,7 +4657,7 @@ func (m *MsgUpdateProposerResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateChallengers) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateChallenger) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4685,10 +4680,10 @@ func (m *MsgUpdateChallengers) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateChallengers: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateChallenger: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateChallengers: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateChallenger: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4744,7 +4739,7 @@ func (m *MsgUpdateChallengers) Unmarshal(dAtA []byte) error { } case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewChallengers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Challenger", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -4772,7 +4767,7 @@ func (m *MsgUpdateChallengers) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.NewChallengers = append(m.NewChallengers, string(dAtA[iNdEx:postIndex])) + m.Challenger = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -4795,7 +4790,7 @@ func (m *MsgUpdateChallengers) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateChallengersResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateChallengerResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4818,10 +4813,10 @@ func (m *MsgUpdateChallengersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateChallengersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateChallengerResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateChallengersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateChallengerResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: diff --git a/x/ophost/types/types.pb.go b/x/ophost/types/types.pb.go index be3d84b5..dcfc7c7c 100644 --- a/x/ophost/types/types.pb.go +++ b/x/ophost/types/types.pb.go @@ -106,7 +106,7 @@ var xxx_messageInfo_Params proto.InternalMessageInfo // BridgeConfig defines the set of bridge config. type BridgeConfig struct { // The address of the challenger. - Challengers []string `protobuf:"bytes,1,rep,name=challengers,proto3" json:"challengers,omitempty"` + Challenger string `protobuf:"bytes,1,opt,name=challenger,proto3" json:"challenger,omitempty"` // The address of the proposer. Proposer string `protobuf:"bytes,2,opt,name=proposer,proto3" json:"proposer,omitempty"` // The information about batch submission. @@ -334,63 +334,63 @@ func init() { func init() { proto.RegisterFile("opinit/ophost/v1/types.proto", fileDescriptor_29cadbd84ee898dd) } var fileDescriptor_29cadbd84ee898dd = []byte{ - // 893 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0x13, 0x47, - 0x14, 0xf7, 0x80, 0x6b, 0xec, 0x71, 0x0c, 0x61, 0x02, 0x65, 0xe3, 0x52, 0xdb, 0xb2, 0x44, 0x65, - 0x21, 0xb2, 0x2b, 0xbb, 0x7f, 0x0e, 0xf4, 0x14, 0x3b, 0x46, 0x58, 0x6a, 0x8d, 0xb5, 0x71, 0x85, - 0xda, 0xcb, 0x6a, 0xd6, 0x3b, 0x5e, 0x8f, 0xb2, 0xbb, 0xb3, 0xda, 0x19, 0x47, 0x0d, 0xfd, 0x06, - 0x3d, 0x71, 0xa4, 0x37, 0x7a, 0x43, 0x3d, 0x71, 0xe8, 0xa9, 0x9f, 0x20, 0x47, 0xd4, 0x53, 0x4f, - 0xd0, 0x26, 0x07, 0xaa, 0x7e, 0x8a, 0x6a, 0xfe, 0xd8, 0x59, 0x20, 0x42, 0x55, 0x2f, 0xf6, 0xcc, - 0xfb, 0xfd, 0xde, 0xfb, 0xbd, 0x79, 0xef, 0xcd, 0x2c, 0xbc, 0xc9, 0x52, 0x9a, 0x50, 0xe1, 0xb0, - 0x74, 0xc1, 0xb8, 0x70, 0x0e, 0xbb, 0x8e, 0x38, 0x4a, 0x09, 0xb7, 0xd3, 0x8c, 0x09, 0x86, 0x36, - 0x35, 0x6a, 0x6b, 0xd4, 0x3e, 0xec, 0xd6, 0xaf, 0xe2, 0x98, 0x26, 0xcc, 0x51, 0xbf, 0x9a, 0x54, - 0x6f, 0xcc, 0x18, 0x8f, 0x19, 0x77, 0x7c, 0xcc, 0x89, 0x73, 0xd8, 0xf5, 0x89, 0xc0, 0x5d, 0x67, - 0xc6, 0x68, 0x62, 0xf0, 0x6d, 0x8d, 0x7b, 0x6a, 0xe7, 0xe8, 0x8d, 0x81, 0xae, 0x85, 0x2c, 0x64, - 0xda, 0x2e, 0x57, 0xab, 0x80, 0x21, 0x63, 0x61, 0x44, 0x1c, 0xb5, 0xf3, 0x97, 0x73, 0x27, 0x58, - 0x66, 0x58, 0x50, 0xb6, 0x0a, 0xd8, 0x7c, 0x1b, 0x17, 0x34, 0x26, 0x5c, 0xe0, 0x38, 0xd5, 0x84, - 0xf6, 0xcf, 0x00, 0x96, 0x26, 0x38, 0xc3, 0x31, 0x47, 0x3f, 0xc0, 0xcd, 0x8c, 0x84, 0x94, 0x0b, - 0x1d, 0xc1, 0x9b, 0x13, 0x62, 0x81, 0xd6, 0xc5, 0x4e, 0xb5, 0xb7, 0x6d, 0x9b, 0x54, 0x64, 0xde, - 0xb6, 0xc9, 0xdb, 0x1e, 0x30, 0x9a, 0xf4, 0x3f, 0x3f, 0x7e, 0xd9, 0x2c, 0xfc, 0xf2, 0xaa, 0xd9, - 0x09, 0xa9, 0x58, 0x2c, 0x7d, 0x7b, 0xc6, 0x62, 0x93, 0xb7, 0xf9, 0xdb, 0xe1, 0xc1, 0x81, 0x29, - 0x94, 0x74, 0xe0, 0xcf, 0x5e, 0x3f, 0xbf, 0x0d, 0xdc, 0x2b, 0x79, 0xa5, 0x7b, 0x84, 0xdc, 0xad, - 0x3f, 0x79, 0xda, 0x2c, 0xfc, 0xfd, 0xb4, 0x09, 0x7e, 0x7c, 0xfd, 0xfc, 0x76, 0xcd, 0x94, 0x58, - 0x27, 0xd6, 0xfe, 0xad, 0x08, 0x37, 0xfa, 0x19, 0x0d, 0x42, 0x32, 0x60, 0xc9, 0x9c, 0x86, 0xe8, - 0x2e, 0xac, 0xce, 0x16, 0x38, 0x8a, 0x48, 0x12, 0x92, 0x8c, 0xab, 0x24, 0x2b, 0x7d, 0xeb, 0xf7, - 0x5f, 0x77, 0xae, 0x99, 0x3c, 0x77, 0x83, 0x20, 0x23, 0x9c, 0xef, 0x8b, 0x8c, 0x26, 0xa1, 0x9b, - 0x27, 0xa3, 0xcf, 0x60, 0x39, 0xcd, 0x58, 0xca, 0x38, 0xc9, 0xac, 0x0b, 0x2d, 0xf0, 0x5e, 0xc7, + // 889 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xf7, 0xb4, 0xc6, 0xb5, 0xc7, 0x71, 0x9b, 0x4e, 0x5a, 0xba, 0x31, 0xc5, 0xb6, 0x2c, 0x15, + 0x59, 0x55, 0xb3, 0x2b, 0x9b, 0x3f, 0x42, 0x70, 0x8a, 0x1d, 0x57, 0xb5, 0x04, 0xae, 0xb5, 0x31, + 0xaa, 0xe0, 0xb2, 0x9a, 0xf5, 0x8e, 0xd7, 0xa3, 0xec, 0xee, 0xac, 0x76, 0xc6, 0x11, 0x29, 0xdf, + 0x80, 0x53, 0x8f, 0xe5, 0x56, 0x6e, 0x15, 0xa7, 0x1e, 0x38, 0xf0, 0x11, 0x72, 0xac, 0x38, 0x71, + 0x6a, 0x21, 0x39, 0x14, 0xf1, 0x29, 0xd0, 0xfc, 0xb1, 0xb3, 0x6d, 0x23, 0x40, 0x5c, 0xec, 0x99, + 0xf7, 0xfb, 0xbd, 0xf7, 0x7b, 0xf3, 0xde, 0x9b, 0x59, 0x78, 0x93, 0xa5, 0x34, 0xa1, 0xc2, 0x61, + 0xe9, 0x82, 0x71, 0xe1, 0x1c, 0x76, 0x1d, 0x71, 0x94, 0x12, 0x6e, 0xa7, 0x19, 0x13, 0x0c, 0x6d, + 0x6a, 0xd4, 0xd6, 0xa8, 0x7d, 0xd8, 0xad, 0x5f, 0xc5, 0x31, 0x4d, 0x98, 0xa3, 0x7e, 0x35, 0xa9, + 0xde, 0x98, 0x31, 0x1e, 0x33, 0xee, 0xf8, 0x98, 0x13, 0xe7, 0xb0, 0xeb, 0x13, 0x81, 0xbb, 0xce, + 0x8c, 0xd1, 0xc4, 0xe0, 0xdb, 0x1a, 0xf7, 0xd4, 0xce, 0xd1, 0x1b, 0x03, 0x5d, 0x0b, 0x59, 0xc8, + 0xb4, 0x5d, 0xae, 0x56, 0x01, 0x43, 0xc6, 0xc2, 0x88, 0x38, 0x6a, 0xe7, 0x2f, 0xe7, 0x4e, 0xb0, + 0xcc, 0xb0, 0xa0, 0x6c, 0x15, 0xb0, 0xf9, 0x26, 0x2e, 0x68, 0x4c, 0xb8, 0xc0, 0x71, 0xaa, 0x09, + 0xed, 0x1f, 0x01, 0x2c, 0x4d, 0x70, 0x86, 0x63, 0x8e, 0xbe, 0x83, 0x9b, 0x19, 0x09, 0x29, 0x17, + 0x3a, 0x82, 0x37, 0x27, 0xc4, 0x02, 0xad, 0x8b, 0x9d, 0x6a, 0x6f, 0xdb, 0x36, 0xa9, 0xc8, 0xbc, + 0x6d, 0x93, 0xb7, 0x3d, 0x60, 0x34, 0xe9, 0x7f, 0x7c, 0xfc, 0xa2, 0x59, 0xf8, 0xe9, 0x65, 0xb3, + 0x13, 0x52, 0xb1, 0x58, 0xfa, 0xf6, 0x8c, 0xc5, 0x26, 0x6f, 0xf3, 0xb7, 0xc3, 0x83, 0x03, 0x53, + 0x28, 0xe9, 0xc0, 0x9f, 0xbe, 0x7a, 0x76, 0x1b, 0xb8, 0x57, 0xf2, 0x4a, 0x77, 0x09, 0xf9, 0xac, + 0xfe, 0xf8, 0x49, 0xb3, 0xf0, 0xe7, 0x93, 0x26, 0xf8, 0xfe, 0xd5, 0xb3, 0xdb, 0x35, 0x53, 0x62, + 0x9d, 0x58, 0xfb, 0x97, 0x22, 0xdc, 0xe8, 0x67, 0x34, 0x08, 0xc9, 0x80, 0x25, 0x73, 0x1a, 0xa2, + 0x4f, 0x21, 0x9c, 0x2d, 0x70, 0x14, 0x91, 0x24, 0x24, 0x99, 0x05, 0x5a, 0xa0, 0x53, 0xe9, 0x5b, + 0xbf, 0xfe, 0xbc, 0x73, 0xcd, 0xa4, 0xb9, 0x1b, 0x04, 0x19, 0xe1, 0x7c, 0x5f, 0x64, 0x34, 0x09, + 0xdd, 0x1c, 0x17, 0x7d, 0x04, 0xcb, 0x69, 0xc6, 0x52, 0xc6, 0x49, 0x66, 0x5d, 0xf8, 0x17, 0xbf, 0x35, 0x13, 0x0d, 0x21, 0xf4, 0xb1, 0x98, 0x2d, 0x3c, 0x9a, 0xcc, 0x99, 0x75, 0xb1, 0x05, 0x3a, - 0xd5, 0xde, 0x47, 0xf6, 0xdb, 0x2d, 0xb7, 0xfb, 0x92, 0x33, 0x4a, 0xe6, 0xac, 0x5f, 0x91, 0x75, - 0xd1, 0x67, 0xad, 0xf8, 0x2b, 0x2b, 0x7a, 0x04, 0xb7, 0xf8, 0xd2, 0x8f, 0x29, 0xe7, 0xb2, 0xc0, - 0x34, 0x11, 0x24, 0x3b, 0xc4, 0x91, 0x55, 0x54, 0xf1, 0xb6, 0x6d, 0xdd, 0x2c, 0x7b, 0xd5, 0x2c, - 0x7b, 0xcf, 0x34, 0xb3, 0x6f, 0xcb, 0x68, 0xff, 0xbc, 0x6c, 0x7e, 0x7c, 0x8e, 0xf7, 0x1d, 0x16, - 0x53, 0x41, 0xe2, 0x54, 0x1c, 0x3d, 0x79, 0xd5, 0x04, 0x5a, 0x12, 0x9d, 0xf1, 0x46, 0x86, 0x26, - 0xb5, 0xe7, 0x34, 0xc1, 0x11, 0x7d, 0xa4, 0xdb, 0x9b, 0x92, 0x8c, 0xb2, 0xc0, 0xfa, 0xe0, 0x3f, - 0x6b, 0x9f, 0xe3, 0x7d, 0xae, 0x76, 0x9e, 0x37, 0x51, 0x34, 0xf4, 0x05, 0xbc, 0x91, 0xcb, 0x9c, + 0xd5, 0xde, 0x7b, 0xf6, 0x9b, 0x0d, 0xb7, 0xfb, 0x92, 0x33, 0x4a, 0xe6, 0xac, 0x5f, 0x91, 0x55, + 0xd1, 0x27, 0xad, 0xf8, 0x2b, 0x2b, 0x7a, 0x08, 0xb7, 0xf8, 0xd2, 0x8f, 0x29, 0xe7, 0xb2, 0xbc, + 0x34, 0x11, 0x24, 0x3b, 0xc4, 0x91, 0x55, 0x54, 0xf1, 0xb6, 0x6d, 0xdd, 0x2a, 0x7b, 0xd5, 0x2a, + 0x7b, 0xcf, 0xb4, 0xb2, 0x6f, 0xcb, 0x68, 0x7f, 0xbd, 0x68, 0xbe, 0x7f, 0x8e, 0xf7, 0x1d, 0x16, + 0x53, 0x41, 0xe2, 0x54, 0x1c, 0x3d, 0x7e, 0xd9, 0x04, 0x5a, 0x12, 0x9d, 0xf1, 0x46, 0x86, 0x26, + 0xb5, 0xe7, 0x34, 0xc1, 0x11, 0x7d, 0xa8, 0x9b, 0x9b, 0x92, 0x8c, 0xb2, 0xc0, 0x7a, 0xe7, 0x3f, + 0x6b, 0x9f, 0xe3, 0x7d, 0xae, 0x76, 0x9e, 0x37, 0x51, 0x34, 0xf4, 0x09, 0xbc, 0x91, 0xcb, 0x9c, 0x0b, 0x9c, 0x09, 0x6f, 0x41, 0x68, 0xb8, 0x10, 0x56, 0xa9, 0x05, 0x3a, 0x45, 0xf7, 0xfa, 0x19, - 0xbc, 0x2f, 0xd1, 0xfb, 0x0a, 0x44, 0xb7, 0xe0, 0x65, 0x96, 0xe1, 0x59, 0x44, 0x3c, 0x92, 0x60, + 0xbc, 0x2f, 0xd1, 0x7b, 0x0a, 0x44, 0xb7, 0xe0, 0x65, 0x96, 0xe1, 0x59, 0x44, 0x3c, 0x92, 0x60, 0x3f, 0x22, 0x81, 0x75, 0xa9, 0x05, 0x3a, 0x65, 0xb7, 0xa6, 0xad, 0x43, 0x6d, 0x44, 0x75, 0x58, 0x8e, 0x89, 0xc0, 0x01, 0x16, 0xd8, 0x2a, 0xb7, 0x40, 0x67, 0xc3, 0x5d, 0xef, 0xdb, 0xc7, 0x00, - 0x56, 0xd6, 0x6d, 0x41, 0x37, 0x61, 0x45, 0x29, 0x09, 0x41, 0x32, 0x0b, 0xc8, 0xf6, 0xbb, 0x67, - 0x06, 0xb4, 0x07, 0xe1, 0x6c, 0x81, 0x69, 0xe2, 0xc9, 0x79, 0x55, 0xd3, 0x71, 0xb9, 0x77, 0xeb, - 0x3d, 0x5d, 0xb6, 0x07, 0x92, 0x3d, 0x3d, 0x4a, 0x89, 0x5b, 0x99, 0xad, 0x96, 0xed, 0x87, 0xb0, - 0xb2, 0xb6, 0xa3, 0x3a, 0xfc, 0x70, 0x70, 0x7f, 0x77, 0x34, 0xf6, 0xa6, 0xdf, 0x4e, 0x86, 0xde, - 0x37, 0xe3, 0xfd, 0xc9, 0x70, 0x30, 0xba, 0x37, 0x1a, 0xee, 0x6d, 0x16, 0xd0, 0x75, 0x78, 0x35, - 0x87, 0x8d, 0xc6, 0xa3, 0xe9, 0x68, 0x77, 0x13, 0xa0, 0x1b, 0x70, 0x2b, 0x67, 0x1e, 0x0c, 0xbf, - 0x1a, 0xee, 0x4b, 0xe0, 0x42, 0x7b, 0x17, 0x56, 0xa6, 0xec, 0x80, 0x24, 0x13, 0x4c, 0x33, 0xb4, - 0x0d, 0xcb, 0x51, 0xd7, 0x0b, 0x48, 0xc2, 0x62, 0x73, 0x90, 0x4b, 0x51, 0x77, 0x4f, 0x6e, 0x15, - 0xd4, 0x33, 0xd0, 0x05, 0x03, 0xf5, 0x14, 0x24, 0xab, 0x51, 0x7a, 0xb0, 0x14, 0xe9, 0x52, 0xa0, - 0x26, 0xac, 0x32, 0xb5, 0xf2, 0x32, 0xc6, 0x84, 0x8a, 0xb1, 0xe1, 0x42, 0x6d, 0x72, 0x19, 0x13, - 0xe8, 0x13, 0x78, 0x25, 0xea, 0x7a, 0x7e, 0xc4, 0x66, 0x07, 0x5e, 0xb2, 0x8c, 0x7d, 0x73, 0x61, - 0x8a, 0x6e, 0x2d, 0xea, 0xf6, 0xa5, 0x75, 0xac, 0x8c, 0xe8, 0x6b, 0x58, 0x5b, 0xf3, 0xe4, 0xf3, - 0x62, 0xae, 0x47, 0xfd, 0x9d, 0x91, 0x9a, 0xae, 0xde, 0x9e, 0x7e, 0x4d, 0xce, 0xd4, 0xe3, 0xf5, - 0xc8, 0x54, 0x4d, 0x40, 0x49, 0x50, 0xb2, 0xbd, 0x37, 0x65, 0x8b, 0x46, 0xb6, 0x97, 0x93, 0x6d, - 0xff, 0x04, 0xe0, 0xd6, 0xba, 0x13, 0x0f, 0xa9, 0x58, 0x98, 0x73, 0xbd, 0x79, 0x55, 0xc1, 0xff, - 0xbd, 0xaa, 0x5f, 0xc2, 0x92, 0xae, 0x85, 0x3a, 0x74, 0xb5, 0x67, 0xbd, 0x1b, 0x42, 0x0b, 0xe6, - 0xfd, 0x8d, 0x4b, 0x7f, 0x7c, 0xfc, 0x57, 0xa3, 0xf0, 0xec, 0xa4, 0x01, 0x8e, 0x4f, 0x1a, 0xe0, - 0xc5, 0x49, 0x03, 0xfc, 0x79, 0xd2, 0x00, 0x8f, 0x4f, 0x1b, 0x85, 0x17, 0xa7, 0x8d, 0xc2, 0x1f, - 0xa7, 0x8d, 0xc2, 0x77, 0x77, 0x72, 0xef, 0xa5, 0x0c, 0x4b, 0xf1, 0x4e, 0x84, 0x7d, 0xee, 0x3c, - 0x98, 0xa8, 0x6f, 0xcc, 0xf7, 0xab, 0xaf, 0x8c, 0x7a, 0x39, 0xfd, 0x92, 0xaa, 0xe1, 0xa7, 0xff, - 0x06, 0x00, 0x00, 0xff, 0xff, 0xa5, 0xfd, 0xab, 0x20, 0x83, 0x06, 0x00, 0x00, + 0x56, 0xd6, 0x6d, 0x41, 0x37, 0x61, 0x45, 0x29, 0x09, 0xb1, 0x1a, 0x1b, 0xf7, 0xcc, 0x80, 0xf6, + 0xd4, 0x54, 0xd1, 0xc4, 0x93, 0xd3, 0xaa, 0xa6, 0xe3, 0x72, 0xef, 0xd6, 0x3f, 0x74, 0xd9, 0x1e, + 0x48, 0xf6, 0xf4, 0x28, 0x25, 0x6e, 0x65, 0xb6, 0x5a, 0xb6, 0x1f, 0xc0, 0xca, 0xda, 0x8e, 0xea, + 0xf0, 0xdd, 0xc1, 0xbd, 0xdd, 0xd1, 0xd8, 0x9b, 0x7e, 0x3d, 0x19, 0x7a, 0x5f, 0x8d, 0xf7, 0x27, + 0xc3, 0xc1, 0xe8, 0xee, 0x68, 0xb8, 0xb7, 0x59, 0x40, 0xd7, 0xe1, 0xd5, 0x1c, 0x36, 0x1a, 0x8f, + 0xa6, 0xa3, 0xdd, 0x4d, 0x80, 0x6e, 0xc0, 0xad, 0x9c, 0x79, 0x30, 0xfc, 0x62, 0xb8, 0x2f, 0x81, + 0x0b, 0xed, 0x5d, 0x58, 0x99, 0xb2, 0x03, 0x92, 0x4c, 0x30, 0xcd, 0xd0, 0x36, 0x2c, 0x47, 0x5d, + 0x2f, 0x20, 0x09, 0x8b, 0xcd, 0x41, 0x2e, 0x45, 0xdd, 0x3d, 0xb9, 0x55, 0x50, 0xcf, 0x40, 0x17, + 0x0c, 0xd4, 0x53, 0x90, 0xac, 0x46, 0xe9, 0xfe, 0x52, 0xa4, 0x4b, 0x81, 0x9a, 0xb0, 0xca, 0xd4, + 0xca, 0xcb, 0x18, 0x13, 0x2a, 0xc6, 0x86, 0x0b, 0xb5, 0xc9, 0x65, 0x4c, 0xa0, 0x0f, 0xe0, 0x95, + 0xa8, 0xeb, 0xf9, 0x11, 0x9b, 0x1d, 0x78, 0xc9, 0x32, 0xf6, 0xcd, 0x85, 0x29, 0xba, 0xb5, 0xa8, + 0xdb, 0x97, 0xd6, 0xb1, 0x32, 0xa2, 0x2f, 0x61, 0x6d, 0xcd, 0x93, 0x8f, 0x8b, 0xb9, 0x1e, 0xf5, + 0xb7, 0x46, 0x6a, 0xba, 0x7a, 0x79, 0xfa, 0x35, 0x39, 0x53, 0x8f, 0xd6, 0x23, 0x53, 0x35, 0x01, + 0x25, 0x41, 0xc9, 0xf6, 0x5e, 0x97, 0x2d, 0x1a, 0xd9, 0x5e, 0x4e, 0xb6, 0xfd, 0x03, 0x80, 0x5b, + 0xeb, 0x4e, 0x3c, 0xa0, 0x62, 0x61, 0xce, 0xf5, 0xfa, 0x55, 0x05, 0xff, 0xf7, 0xaa, 0x7e, 0x0e, + 0x4b, 0xba, 0x16, 0xea, 0xd0, 0xd5, 0x9e, 0xf5, 0x76, 0x08, 0x2d, 0x98, 0xf7, 0x37, 0x2e, 0xfd, + 0xf1, 0xf1, 0x1f, 0x8d, 0xc2, 0xd3, 0x93, 0x06, 0x38, 0x3e, 0x69, 0x80, 0xe7, 0x27, 0x0d, 0xf0, + 0xfb, 0x49, 0x03, 0x3c, 0x3a, 0x6d, 0x14, 0x9e, 0x9f, 0x36, 0x0a, 0xbf, 0x9d, 0x36, 0x0a, 0xdf, + 0xdc, 0xc9, 0xbd, 0x96, 0x32, 0x2c, 0xc5, 0x3b, 0x11, 0xf6, 0xb9, 0x73, 0x7f, 0xa2, 0xbe, 0x30, + 0xdf, 0xae, 0xbe, 0x31, 0xea, 0xdd, 0xf4, 0x4b, 0xaa, 0x86, 0x1f, 0xfe, 0x1d, 0x00, 0x00, 0xff, + 0xff, 0x95, 0x7f, 0x06, 0xea, 0x81, 0x06, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -441,14 +441,9 @@ func (this *BridgeConfig) Equal(that interface{}) bool { } else if this == nil { return false } - if len(this.Challengers) != len(that1.Challengers) { + if this.Challenger != that1.Challenger { return false } - for i := range this.Challengers { - if this.Challengers[i] != that1.Challengers[i] { - return false - } - } if this.Proposer != that1.Proposer { return false } @@ -698,14 +693,12 @@ func (m *BridgeConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if len(m.Challengers) > 0 { - for iNdEx := len(m.Challengers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Challengers[iNdEx]) - copy(dAtA[i:], m.Challengers[iNdEx]) - i = encodeVarintTypes(dAtA, i, uint64(len(m.Challengers[iNdEx]))) - i-- - dAtA[i] = 0xa - } + if len(m.Challenger) > 0 { + i -= len(m.Challenger) + copy(dAtA[i:], m.Challenger) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Challenger))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -905,11 +898,9 @@ func (m *BridgeConfig) Size() (n int) { } var l int _ = l - if len(m.Challengers) > 0 { - for _, s := range m.Challengers { - l = len(s) - n += 1 + l + sovTypes(uint64(l)) - } + l = len(m.Challenger) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) } l = len(m.Proposer) if l > 0 { @@ -1122,7 +1113,7 @@ func (m *BridgeConfig) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Challengers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Challenger", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -1150,7 +1141,7 @@ func (m *BridgeConfig) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Challengers = append(m.Challengers, string(dAtA[iNdEx:postIndex])) + m.Challenger = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 {