forked from cerc-io/laconicd
Handle record and authority expiry in registry module (#7)
- Registry module - Update module state to track record / authority expiry queues - Handle expired records and authorities at the end of each block - Add a command to handle record renewal Reviewed-on: deep-stack/laconic2d#7 Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com> Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
This commit is contained in:
parent
92764535a6
commit
d2339e2426
File diff suppressed because it is too large
Load Diff
@ -27,8 +27,6 @@ const (
|
||||
Query_Whois_FullMethodName = "/cerc.registry.v1.Query/Whois"
|
||||
Query_LookupCrn_FullMethodName = "/cerc.registry.v1.Query/LookupCrn"
|
||||
Query_ResolveCrn_FullMethodName = "/cerc.registry.v1.Query/ResolveCrn"
|
||||
Query_GetRecordExpiryQueue_FullMethodName = "/cerc.registry.v1.Query/GetRecordExpiryQueue"
|
||||
Query_GetAuthorityExpiryQueue_FullMethodName = "/cerc.registry.v1.Query/GetAuthorityExpiryQueue"
|
||||
Query_GetRegistryModuleBalance_FullMethodName = "/cerc.registry.v1.Query/GetRegistryModuleBalance"
|
||||
)
|
||||
|
||||
@ -52,10 +50,6 @@ type QueryClient interface {
|
||||
LookupCrn(ctx context.Context, in *QueryLookupCrnRequest, opts ...grpc.CallOption) (*QueryLookupCrnResponse, error)
|
||||
// ResolveCrn
|
||||
ResolveCrn(ctx context.Context, in *QueryResolveCrnRequest, opts ...grpc.CallOption) (*QueryResolveCrnResponse, error)
|
||||
// GetRecordExpiryQueue
|
||||
GetRecordExpiryQueue(ctx context.Context, in *QueryGetRecordExpiryQueueRequest, opts ...grpc.CallOption) (*QueryGetRecordExpiryQueueResponse, error)
|
||||
// GetAuthorityExpiryQueue
|
||||
GetAuthorityExpiryQueue(ctx context.Context, in *QueryGetAuthorityExpiryQueueRequest, opts ...grpc.CallOption) (*QueryGetAuthorityExpiryQueueResponse, error)
|
||||
// Get registry module balance
|
||||
GetRegistryModuleBalance(ctx context.Context, in *QueryGetRegistryModuleBalanceRequest, opts ...grpc.CallOption) (*QueryGetRegistryModuleBalanceResponse, error)
|
||||
}
|
||||
@ -140,24 +134,6 @@ func (c *queryClient) ResolveCrn(ctx context.Context, in *QueryResolveCrnRequest
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) GetRecordExpiryQueue(ctx context.Context, in *QueryGetRecordExpiryQueueRequest, opts ...grpc.CallOption) (*QueryGetRecordExpiryQueueResponse, error) {
|
||||
out := new(QueryGetRecordExpiryQueueResponse)
|
||||
err := c.cc.Invoke(ctx, Query_GetRecordExpiryQueue_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) GetAuthorityExpiryQueue(ctx context.Context, in *QueryGetAuthorityExpiryQueueRequest, opts ...grpc.CallOption) (*QueryGetAuthorityExpiryQueueResponse, error) {
|
||||
out := new(QueryGetAuthorityExpiryQueueResponse)
|
||||
err := c.cc.Invoke(ctx, Query_GetAuthorityExpiryQueue_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) GetRegistryModuleBalance(ctx context.Context, in *QueryGetRegistryModuleBalanceRequest, opts ...grpc.CallOption) (*QueryGetRegistryModuleBalanceResponse, error) {
|
||||
out := new(QueryGetRegistryModuleBalanceResponse)
|
||||
err := c.cc.Invoke(ctx, Query_GetRegistryModuleBalance_FullMethodName, in, out, opts...)
|
||||
@ -187,10 +163,6 @@ type QueryServer interface {
|
||||
LookupCrn(context.Context, *QueryLookupCrnRequest) (*QueryLookupCrnResponse, error)
|
||||
// ResolveCrn
|
||||
ResolveCrn(context.Context, *QueryResolveCrnRequest) (*QueryResolveCrnResponse, error)
|
||||
// GetRecordExpiryQueue
|
||||
GetRecordExpiryQueue(context.Context, *QueryGetRecordExpiryQueueRequest) (*QueryGetRecordExpiryQueueResponse, error)
|
||||
// GetAuthorityExpiryQueue
|
||||
GetAuthorityExpiryQueue(context.Context, *QueryGetAuthorityExpiryQueueRequest) (*QueryGetAuthorityExpiryQueueResponse, error)
|
||||
// Get registry module balance
|
||||
GetRegistryModuleBalance(context.Context, *QueryGetRegistryModuleBalanceRequest) (*QueryGetRegistryModuleBalanceResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
@ -224,12 +196,6 @@ func (UnimplementedQueryServer) LookupCrn(context.Context, *QueryLookupCrnReques
|
||||
func (UnimplementedQueryServer) ResolveCrn(context.Context, *QueryResolveCrnRequest) (*QueryResolveCrnResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ResolveCrn not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) GetRecordExpiryQueue(context.Context, *QueryGetRecordExpiryQueueRequest) (*QueryGetRecordExpiryQueueResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetRecordExpiryQueue not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) GetAuthorityExpiryQueue(context.Context, *QueryGetAuthorityExpiryQueueRequest) (*QueryGetAuthorityExpiryQueueResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetAuthorityExpiryQueue not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) GetRegistryModuleBalance(context.Context, *QueryGetRegistryModuleBalanceRequest) (*QueryGetRegistryModuleBalanceResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetRegistryModuleBalance not implemented")
|
||||
}
|
||||
@ -390,42 +356,6 @@ func _Query_ResolveCrn_Handler(srv interface{}, ctx context.Context, dec func(in
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_GetRecordExpiryQueue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryGetRecordExpiryQueueRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).GetRecordExpiryQueue(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_GetRecordExpiryQueue_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).GetRecordExpiryQueue(ctx, req.(*QueryGetRecordExpiryQueueRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_GetAuthorityExpiryQueue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryGetAuthorityExpiryQueueRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).GetAuthorityExpiryQueue(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_GetAuthorityExpiryQueue_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).GetAuthorityExpiryQueue(ctx, req.(*QueryGetAuthorityExpiryQueueRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_GetRegistryModuleBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryGetRegistryModuleBalanceRequest)
|
||||
if err := dec(in); err != nil {
|
||||
@ -483,14 +413,6 @@ var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "ResolveCrn",
|
||||
Handler: _Query_ResolveCrn_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetRecordExpiryQueue",
|
||||
Handler: _Query_GetRecordExpiryQueue_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetAuthorityExpiryQueue",
|
||||
Handler: _Query_GetAuthorityExpiryQueue_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetRegistryModuleBalance",
|
||||
Handler: _Query_GetRegistryModuleBalance_Handler,
|
||||
|
@ -7108,6 +7108,550 @@ func (x *fastReflection_AuctionBidInfo) ProtoMethods() *protoiface.Methods {
|
||||
}
|
||||
}
|
||||
|
||||
var _ protoreflect.List = (*_ExpiryQueue_2_list)(nil)
|
||||
|
||||
type _ExpiryQueue_2_list struct {
|
||||
list *[]string
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfString((*x.list)[i])
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) AppendMutable() protoreflect.Value {
|
||||
panic(fmt.Errorf("AppendMutable can not be called on message ExpiryQueue at list field Value as it is not of Message kind"))
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) Truncate(n int) {
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) NewElement() protoreflect.Value {
|
||||
v := ""
|
||||
return protoreflect.ValueOfString(v)
|
||||
}
|
||||
|
||||
func (x *_ExpiryQueue_2_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var (
|
||||
md_ExpiryQueue protoreflect.MessageDescriptor
|
||||
fd_ExpiryQueue_id protoreflect.FieldDescriptor
|
||||
fd_ExpiryQueue_value protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cerc_registry_v1_registry_proto_init()
|
||||
md_ExpiryQueue = File_cerc_registry_v1_registry_proto.Messages().ByName("ExpiryQueue")
|
||||
fd_ExpiryQueue_id = md_ExpiryQueue.Fields().ByName("id")
|
||||
fd_ExpiryQueue_value = md_ExpiryQueue.Fields().ByName("value")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_ExpiryQueue)(nil)
|
||||
|
||||
type fastReflection_ExpiryQueue ExpiryQueue
|
||||
|
||||
func (x *ExpiryQueue) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_ExpiryQueue)(x)
|
||||
}
|
||||
|
||||
func (x *ExpiryQueue) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cerc_registry_v1_registry_proto_msgTypes[10]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_ExpiryQueue_messageType fastReflection_ExpiryQueue_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_ExpiryQueue_messageType{}
|
||||
|
||||
type fastReflection_ExpiryQueue_messageType struct{}
|
||||
|
||||
func (x fastReflection_ExpiryQueue_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_ExpiryQueue)(nil)
|
||||
}
|
||||
func (x fastReflection_ExpiryQueue_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_ExpiryQueue)
|
||||
}
|
||||
func (x fastReflection_ExpiryQueue_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_ExpiryQueue
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_ExpiryQueue) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_ExpiryQueue
|
||||
}
|
||||
|
||||
// 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_ExpiryQueue) Type() protoreflect.MessageType {
|
||||
return _fastReflection_ExpiryQueue_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_ExpiryQueue) New() protoreflect.Message {
|
||||
return new(fastReflection_ExpiryQueue)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_ExpiryQueue) Interface() protoreflect.ProtoMessage {
|
||||
return (*ExpiryQueue)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_ExpiryQueue) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if x.Id != "" {
|
||||
value := protoreflect.ValueOfString(x.Id)
|
||||
if !f(fd_ExpiryQueue_id, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if len(x.Value) != 0 {
|
||||
value := protoreflect.ValueOfList(&_ExpiryQueue_2_list{list: &x.Value})
|
||||
if !f(fd_ExpiryQueue_value, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_ExpiryQueue) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cerc.registry.v1.ExpiryQueue.id":
|
||||
return x.Id != ""
|
||||
case "cerc.registry.v1.ExpiryQueue.value":
|
||||
return len(x.Value) != 0
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cerc.registry.v1.ExpiryQueue"))
|
||||
}
|
||||
panic(fmt.Errorf("message cerc.registry.v1.ExpiryQueue does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_ExpiryQueue) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cerc.registry.v1.ExpiryQueue.id":
|
||||
x.Id = ""
|
||||
case "cerc.registry.v1.ExpiryQueue.value":
|
||||
x.Value = nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cerc.registry.v1.ExpiryQueue"))
|
||||
}
|
||||
panic(fmt.Errorf("message cerc.registry.v1.ExpiryQueue does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_ExpiryQueue) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cerc.registry.v1.ExpiryQueue.id":
|
||||
value := x.Id
|
||||
return protoreflect.ValueOfString(value)
|
||||
case "cerc.registry.v1.ExpiryQueue.value":
|
||||
if len(x.Value) == 0 {
|
||||
return protoreflect.ValueOfList(&_ExpiryQueue_2_list{})
|
||||
}
|
||||
listValue := &_ExpiryQueue_2_list{list: &x.Value}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cerc.registry.v1.ExpiryQueue"))
|
||||
}
|
||||
panic(fmt.Errorf("message cerc.registry.v1.ExpiryQueue does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_ExpiryQueue) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cerc.registry.v1.ExpiryQueue.id":
|
||||
x.Id = value.Interface().(string)
|
||||
case "cerc.registry.v1.ExpiryQueue.value":
|
||||
lv := value.List()
|
||||
clv := lv.(*_ExpiryQueue_2_list)
|
||||
x.Value = *clv.list
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cerc.registry.v1.ExpiryQueue"))
|
||||
}
|
||||
panic(fmt.Errorf("message cerc.registry.v1.ExpiryQueue does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_ExpiryQueue) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cerc.registry.v1.ExpiryQueue.value":
|
||||
if x.Value == nil {
|
||||
x.Value = []string{}
|
||||
}
|
||||
value := &_ExpiryQueue_2_list{list: &x.Value}
|
||||
return protoreflect.ValueOfList(value)
|
||||
case "cerc.registry.v1.ExpiryQueue.id":
|
||||
panic(fmt.Errorf("field id of message cerc.registry.v1.ExpiryQueue is not mutable"))
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cerc.registry.v1.ExpiryQueue"))
|
||||
}
|
||||
panic(fmt.Errorf("message cerc.registry.v1.ExpiryQueue 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_ExpiryQueue) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cerc.registry.v1.ExpiryQueue.id":
|
||||
return protoreflect.ValueOfString("")
|
||||
case "cerc.registry.v1.ExpiryQueue.value":
|
||||
list := []string{}
|
||||
return protoreflect.ValueOfList(&_ExpiryQueue_2_list{list: &list})
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cerc.registry.v1.ExpiryQueue"))
|
||||
}
|
||||
panic(fmt.Errorf("message cerc.registry.v1.ExpiryQueue 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_ExpiryQueue) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cerc.registry.v1.ExpiryQueue", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_ExpiryQueue) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_ExpiryQueue) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_ExpiryQueue) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_ExpiryQueue) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*ExpiryQueue)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
l = len(x.Id)
|
||||
if l > 0 {
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
if len(x.Value) > 0 {
|
||||
for _, s := range x.Value {
|
||||
l = len(s)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*ExpiryQueue)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if len(x.Value) > 0 {
|
||||
for iNdEx := len(x.Value) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(x.Value[iNdEx])
|
||||
copy(dAtA[i:], x.Value[iNdEx])
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value[iNdEx])))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
}
|
||||
if len(x.Id) > 0 {
|
||||
i -= len(x.Id)
|
||||
copy(dAtA[i:], x.Id)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Id)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*ExpiryQueue)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExpiryQueue: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ExpiryQueue: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.Id = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.Value = append(x.Value, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
@ -7764,6 +8308,52 @@ func (x *AuctionBidInfo) GetBidderAddress() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// ExpiryQueue: record / authority expiry queue type
|
||||
// id: expiry time
|
||||
// value: array of ids (record cids / authority names)
|
||||
type ExpiryQueue struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
|
||||
}
|
||||
|
||||
func (x *ExpiryQueue) Reset() {
|
||||
*x = ExpiryQueue{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cerc_registry_v1_registry_proto_msgTypes[10]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *ExpiryQueue) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*ExpiryQueue) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use ExpiryQueue.ProtoReflect.Descriptor instead.
|
||||
func (*ExpiryQueue) Descriptor() ([]byte, []int) {
|
||||
return file_cerc_registry_v1_registry_proto_rawDescGZIP(), []int{10}
|
||||
}
|
||||
|
||||
func (x *ExpiryQueue) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *ExpiryQueue) GetValue() []string {
|
||||
if x != nil {
|
||||
return x.Value
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_cerc_registry_v1_registry_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cerc_registry_v1_registry_proto_rawDesc = []byte{
|
||||
@ -8009,20 +8599,23 @@ var file_cerc_registry_v1_registry_proto_rawDesc = []byte{
|
||||
0x6e, 0x3a, 0x22, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
|
||||
0x73, 0x22, 0x20, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x5f,
|
||||
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0d, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72,
|
||||
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0xc5, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e,
|
||||
0x63, 0x65, 0x72, 0x63, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31,
|
||||
0x42, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
|
||||
0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x76, 0x64, 0x62, 0x2e, 0x74, 0x6f, 0x2f, 0x63, 0x65,
|
||||
0x72, 0x63, 0x2d, 0x69, 0x6f, 0x2f, 0x6c, 0x61, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x32, 0x64, 0x2f,
|
||||
0x61, 0x70, 0x69, 0x2f, 0x63, 0x65, 0x72, 0x63, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
|
||||
0x79, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x76, 0x31, 0xa2,
|
||||
0x02, 0x03, 0x43, 0x52, 0x58, 0xaa, 0x02, 0x10, 0x43, 0x65, 0x72, 0x63, 0x2e, 0x52, 0x65, 0x67,
|
||||
0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x43, 0x65, 0x72, 0x63, 0x5c,
|
||||
0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x43, 0x65,
|
||||
0x72, 0x63, 0x5c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47,
|
||||
0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x43, 0x65, 0x72,
|
||||
0x63, 0x3a, 0x3a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62,
|
||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x33, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x69, 0x72,
|
||||
0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xc5, 0x01, 0x0a,
|
||||
0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x65, 0x72, 0x63, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
|
||||
0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x76, 0x64, 0x62, 0x2e,
|
||||
0x74, 0x6f, 0x2f, 0x63, 0x65, 0x72, 0x63, 0x2d, 0x69, 0x6f, 0x2f, 0x6c, 0x61, 0x63, 0x6f, 0x6e,
|
||||
0x69, 0x63, 0x32, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x65, 0x72, 0x63, 0x2f, 0x72, 0x65,
|
||||
0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
|
||||
0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x52, 0x58, 0xaa, 0x02, 0x10, 0x43, 0x65, 0x72,
|
||||
0x63, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10,
|
||||
0x43, 0x65, 0x72, 0x63, 0x5c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5c, 0x56, 0x31,
|
||||
0xe2, 0x02, 0x1c, 0x43, 0x65, 0x72, 0x63, 0x5c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
|
||||
0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea,
|
||||
0x02, 0x12, 0x43, 0x65, 0x72, 0x63, 0x3a, 0x3a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
|
||||
0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -8037,7 +8630,7 @@ func file_cerc_registry_v1_registry_proto_rawDescGZIP() []byte {
|
||||
return file_cerc_registry_v1_registry_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cerc_registry_v1_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
|
||||
var file_cerc_registry_v1_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
|
||||
var file_cerc_registry_v1_registry_proto_goTypes = []interface{}{
|
||||
(*Params)(nil), // 0: cerc.registry.v1.Params
|
||||
(*Record)(nil), // 1: cerc.registry.v1.Record
|
||||
@ -8049,23 +8642,24 @@ var file_cerc_registry_v1_registry_proto_goTypes = []interface{}{
|
||||
(*Signature)(nil), // 7: cerc.registry.v1.Signature
|
||||
(*BlockChangeSet)(nil), // 8: cerc.registry.v1.BlockChangeSet
|
||||
(*AuctionBidInfo)(nil), // 9: cerc.registry.v1.AuctionBidInfo
|
||||
(*v1beta1.Coin)(nil), // 10: cosmos.base.v1beta1.Coin
|
||||
(*durationpb.Duration)(nil), // 11: google.protobuf.Duration
|
||||
(*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp
|
||||
(*ExpiryQueue)(nil), // 10: cerc.registry.v1.ExpiryQueue
|
||||
(*v1beta1.Coin)(nil), // 11: cosmos.base.v1beta1.Coin
|
||||
(*durationpb.Duration)(nil), // 12: google.protobuf.Duration
|
||||
(*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp
|
||||
}
|
||||
var file_cerc_registry_v1_registry_proto_depIdxs = []int32{
|
||||
10, // 0: cerc.registry.v1.Params.record_rent:type_name -> cosmos.base.v1beta1.Coin
|
||||
11, // 1: cerc.registry.v1.Params.record_rent_duration:type_name -> google.protobuf.Duration
|
||||
10, // 2: cerc.registry.v1.Params.authority_rent:type_name -> cosmos.base.v1beta1.Coin
|
||||
11, // 3: cerc.registry.v1.Params.authority_rent_duration:type_name -> google.protobuf.Duration
|
||||
11, // 4: cerc.registry.v1.Params.authority_grace_period:type_name -> google.protobuf.Duration
|
||||
11, // 5: cerc.registry.v1.Params.authority_auction_commits_duration:type_name -> google.protobuf.Duration
|
||||
11, // 6: cerc.registry.v1.Params.authority_auction_reveals_duration:type_name -> google.protobuf.Duration
|
||||
10, // 7: cerc.registry.v1.Params.authority_auction_commit_fee:type_name -> cosmos.base.v1beta1.Coin
|
||||
10, // 8: cerc.registry.v1.Params.authority_auction_reveal_fee:type_name -> cosmos.base.v1beta1.Coin
|
||||
10, // 9: cerc.registry.v1.Params.authority_auction_minimum_bid:type_name -> cosmos.base.v1beta1.Coin
|
||||
11, // 0: cerc.registry.v1.Params.record_rent:type_name -> cosmos.base.v1beta1.Coin
|
||||
12, // 1: cerc.registry.v1.Params.record_rent_duration:type_name -> google.protobuf.Duration
|
||||
11, // 2: cerc.registry.v1.Params.authority_rent:type_name -> cosmos.base.v1beta1.Coin
|
||||
12, // 3: cerc.registry.v1.Params.authority_rent_duration:type_name -> google.protobuf.Duration
|
||||
12, // 4: cerc.registry.v1.Params.authority_grace_period:type_name -> google.protobuf.Duration
|
||||
12, // 5: cerc.registry.v1.Params.authority_auction_commits_duration:type_name -> google.protobuf.Duration
|
||||
12, // 6: cerc.registry.v1.Params.authority_auction_reveals_duration:type_name -> google.protobuf.Duration
|
||||
11, // 7: cerc.registry.v1.Params.authority_auction_commit_fee:type_name -> cosmos.base.v1beta1.Coin
|
||||
11, // 8: cerc.registry.v1.Params.authority_auction_reveal_fee:type_name -> cosmos.base.v1beta1.Coin
|
||||
11, // 9: cerc.registry.v1.Params.authority_auction_minimum_bid:type_name -> cosmos.base.v1beta1.Coin
|
||||
3, // 10: cerc.registry.v1.AuthorityEntry.entry:type_name -> cerc.registry.v1.NameAuthority
|
||||
12, // 11: cerc.registry.v1.NameAuthority.expiry_time:type_name -> google.protobuf.Timestamp
|
||||
13, // 11: cerc.registry.v1.NameAuthority.expiry_time:type_name -> google.protobuf.Timestamp
|
||||
5, // 12: cerc.registry.v1.NameEntry.entry:type_name -> cerc.registry.v1.NameRecord
|
||||
6, // 13: cerc.registry.v1.NameRecord.latest:type_name -> cerc.registry.v1.NameRecordEntry
|
||||
6, // 14: cerc.registry.v1.NameRecord.history:type_name -> cerc.registry.v1.NameRecordEntry
|
||||
@ -8203,6 +8797,18 @@ func file_cerc_registry_v1_registry_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_cerc_registry_v1_registry_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*ExpiryQueue); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
@ -8210,7 +8816,7 @@ func file_cerc_registry_v1_registry_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cerc_registry_v1_registry_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 10,
|
||||
NumMessages: 11,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -52,16 +52,6 @@ service Query {
|
||||
option (google.api.http).get = "/cerc/registry/v1/resolve";
|
||||
}
|
||||
|
||||
// GetRecordExpiryQueue
|
||||
rpc GetRecordExpiryQueue(QueryGetRecordExpiryQueueRequest) returns (QueryGetRecordExpiryQueueResponse) {
|
||||
option (google.api.http).get = "/cerc/registry/v1/record-expiry";
|
||||
}
|
||||
|
||||
// GetAuthorityExpiryQueue
|
||||
rpc GetAuthorityExpiryQueue(QueryGetAuthorityExpiryQueueRequest) returns (QueryGetAuthorityExpiryQueueResponse) {
|
||||
option (google.api.http).get = "/cerc/registry/v1/authority-expiry";
|
||||
}
|
||||
|
||||
// Get registry module balance
|
||||
rpc GetRegistryModuleBalance(QueryGetRegistryModuleBalanceRequest) returns (QueryGetRegistryModuleBalanceResponse) {
|
||||
option (google.api.http).get = "/cerc/registry/v1/balance";
|
||||
@ -191,38 +181,6 @@ message QueryResolveCrnResponse {
|
||||
Record record = 1;
|
||||
}
|
||||
|
||||
// QueryGetRecordExpiryQueueRequest
|
||||
message QueryGetRecordExpiryQueueRequest {
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||
}
|
||||
|
||||
// QueryGetRecordExpiryQueueResponse
|
||||
message QueryGetRecordExpiryQueueResponse {
|
||||
repeated ExpiryQueueRecord records = 1;
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// ExpiryQueueRecord
|
||||
message ExpiryQueueRecord {
|
||||
string id = 1;
|
||||
repeated string value = 2;
|
||||
}
|
||||
|
||||
// QueryGetAuthorityExpiryQueueRequest
|
||||
message QueryGetAuthorityExpiryQueueRequest {
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 1;
|
||||
}
|
||||
|
||||
// QueryGetAuthorityExpiryQueueResponse
|
||||
message QueryGetAuthorityExpiryQueueResponse {
|
||||
repeated ExpiryQueueRecord authorities = 1;
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryGetRegistryModuleBalanceRequest is request type for registry module accounts balance
|
||||
message QueryGetRegistryModuleBalanceRequest {}
|
||||
|
||||
|
@ -146,3 +146,11 @@ message AuctionBidInfo {
|
||||
string auction_id = 1 [(gogoproto.moretags) = "json:\"auction_id\" yaml:\"auction_id\""];
|
||||
string bidder_address = 2 [(gogoproto.moretags) = "json:\"bidder_address\" yaml:\"bidder_address\""];
|
||||
}
|
||||
|
||||
// ExpiryQueue: record / authority expiry queue type
|
||||
// id: expiry time
|
||||
// value: array of ids (record cids / authority names)
|
||||
message ExpiryQueue {
|
||||
string id = 1;
|
||||
repeated string value = 2;
|
||||
}
|
||||
|
@ -22,12 +22,13 @@ func (k *Keeper) InitGenesis(ctx sdk.Context, data *registry.GenesisState) error
|
||||
// Add to record expiry queue if expiry time is in the future.
|
||||
expiryTime, err := time.Parse(time.RFC3339, record.ExpiryTime)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return err
|
||||
}
|
||||
|
||||
if expiryTime.After(ctx.BlockTime()) {
|
||||
// TODO
|
||||
// k.InsertRecordExpiryQueue(ctx, record)
|
||||
if err := k.insertRecordExpiryQueue(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,9 +39,10 @@ func (k *Keeper) InitGenesis(ctx sdk.Context, data *registry.GenesisState) error
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO
|
||||
// Add authority name to expiry queue.
|
||||
// k.InsertAuthorityExpiryQueue(ctx, authority.Name, authority.Entry.ExpiryTime)
|
||||
if err := k.insertAuthorityExpiryQueue(ctx, authority.Name, authority.Entry.ExpiryTime); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO
|
||||
// Note: Bond genesis runs first, so bonds will already be present.
|
||||
|
@ -2,6 +2,7 @@ package keeper
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"time"
|
||||
@ -96,6 +97,8 @@ type Keeper struct {
|
||||
Records *collections.IndexedMap[string, registrytypes.Record, RecordsIndexes]
|
||||
Authorities *collections.IndexedMap[string, registrytypes.NameAuthority, AuthoritiesIndexes]
|
||||
NameRecords *collections.IndexedMap[string, registrytypes.NameRecord, NameRecordsIndexes]
|
||||
RecordExpiryQueue collections.Map[time.Time, registrytypes.ExpiryQueue]
|
||||
AuthorityExpiryQueue collections.Map[time.Time, registrytypes.ExpiryQueue]
|
||||
}
|
||||
|
||||
// NewKeeper creates a new Keeper instance
|
||||
@ -132,6 +135,14 @@ func NewKeeper(
|
||||
collections.StringKey, codec.CollValue[registrytypes.NameRecord](cdc),
|
||||
newNameRecordIndexes(sb),
|
||||
),
|
||||
RecordExpiryQueue: collections.NewMap(
|
||||
sb, registrytypes.RecordExpiryQueuePrefix, "record_expiry_queue",
|
||||
sdk.TimeKey, codec.CollValue[registrytypes.ExpiryQueue](cdc),
|
||||
),
|
||||
AuthorityExpiryQueue: collections.NewMap(
|
||||
sb, registrytypes.AuthorityExpiryQueuePrefix, "authority_expiry_queue",
|
||||
sdk.TimeKey, codec.CollValue[registrytypes.ExpiryQueue](cdc),
|
||||
),
|
||||
}
|
||||
|
||||
schema, err := sb.Build()
|
||||
@ -216,10 +227,6 @@ func (k Keeper) RecordsFromAttributes(ctx sdk.Context, attributes []*registrytyp
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
func (k Keeper) GetRecordExpiryQueue(ctx sdk.Context) []*registrytypes.ExpiryQueueRecord {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// PutRecord - saves a record to the store.
|
||||
func (k Keeper) SaveRecord(ctx sdk.Context, record registrytypes.Record) error {
|
||||
return k.Records.Set(ctx, record.Id, record)
|
||||
@ -314,9 +321,7 @@ func (k Keeper) processRecord(ctx sdk.Context, record *registrytypes.ReadableRec
|
||||
// return err
|
||||
// }
|
||||
|
||||
// k.InsertRecordExpiryQueue(ctx, recordObj)
|
||||
|
||||
return nil
|
||||
return k.insertRecordExpiryQueue(ctx, recordObj)
|
||||
}
|
||||
|
||||
func (k Keeper) processAttributes(ctx sdk.Context, attrs registrytypes.AttributeMap, id string, prefix string) error {
|
||||
@ -412,3 +417,148 @@ func (k Keeper) GetModuleBalances(ctx sdk.Context) []*registrytypes.AccountBalan
|
||||
|
||||
return balances
|
||||
}
|
||||
|
||||
// ProcessRecordExpiryQueue tries to renew expiring records (by collecting rent) else marks them as deleted.
|
||||
func (k Keeper) ProcessRecordExpiryQueue(ctx sdk.Context) error {
|
||||
// TODO: process expired records
|
||||
cids, err := k.getAllExpiredRecords(ctx, ctx.BlockHeader().Time)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, cid := range cids {
|
||||
record, err := k.GetRecordById(ctx, cid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
bondExists := false
|
||||
if record.BondId != "" {
|
||||
bondExists, err = k.bondKeeper.HasBond(ctx, record.BondId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// If record doesn't have an associated bond or if bond no longer exists, mark it deleted.
|
||||
if !bondExists {
|
||||
record.Deleted = true
|
||||
if err := k.SaveRecord(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := k.deleteRecordExpiryQueue(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// Try to renew the record by taking rent.
|
||||
if err := k.tryTakeRecordRent(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// getAllExpiredRecords returns a concatenated list of all the timeslices before currTime.
|
||||
func (k Keeper) getAllExpiredRecords(ctx sdk.Context, currTime time.Time) ([]string, error) {
|
||||
var expiredRecordCIDs []string
|
||||
|
||||
// Get all the records with expiry time until currTime
|
||||
rng := new(collections.Range[time.Time]).EndInclusive(currTime)
|
||||
err := k.RecordExpiryQueue.Walk(ctx, rng, func(key time.Time, value registrytypes.ExpiryQueue) (stop bool, err error) {
|
||||
expiredRecordCIDs = append(expiredRecordCIDs, value.Value...)
|
||||
return false, nil
|
||||
})
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
}
|
||||
|
||||
return expiredRecordCIDs, nil
|
||||
}
|
||||
|
||||
// insertRecordExpiryQueue inserts a record CID to the appropriate timeslice in the record expiry queue.
|
||||
func (k Keeper) insertRecordExpiryQueue(ctx sdk.Context, record registrytypes.Record) error {
|
||||
expiryTime, err := time.Parse(time.RFC3339, record.ExpiryTime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
existingRecordsList, err := k.RecordExpiryQueue.Get(ctx, expiryTime)
|
||||
if err != nil {
|
||||
if errors.Is(err, collections.ErrNotFound) {
|
||||
existingRecordsList = registrytypes.ExpiryQueue{
|
||||
Id: expiryTime.String(),
|
||||
Value: []string{},
|
||||
}
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
existingRecordsList.Value = append(existingRecordsList.Value, record.Id)
|
||||
|
||||
return k.RecordExpiryQueue.Set(ctx, expiryTime, existingRecordsList)
|
||||
}
|
||||
|
||||
// deleteRecordExpiryQueue deletes a record CID from the record expiry queue.
|
||||
func (k Keeper) deleteRecordExpiryQueue(ctx sdk.Context, record registrytypes.Record) error {
|
||||
expiryTime, err := time.Parse(time.RFC3339, record.ExpiryTime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
existingRecordsList, err := k.RecordExpiryQueue.Get(ctx, expiryTime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
newRecordsSlice := []string{}
|
||||
for _, id := range existingRecordsList.Value {
|
||||
if id != record.Id {
|
||||
newRecordsSlice = append(newRecordsSlice, id)
|
||||
}
|
||||
}
|
||||
|
||||
if len(existingRecordsList.Value) == 0 {
|
||||
return k.RecordExpiryQueue.Remove(ctx, expiryTime)
|
||||
} else {
|
||||
existingRecordsList.Value = newRecordsSlice
|
||||
return k.RecordExpiryQueue.Set(ctx, expiryTime, existingRecordsList)
|
||||
}
|
||||
}
|
||||
|
||||
// tryTakeRecordRent tries to take rent from the record bond.
|
||||
func (k Keeper) tryTakeRecordRent(ctx sdk.Context, record registrytypes.Record) error {
|
||||
params, err := k.GetParams(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rent := params.RecordRent
|
||||
sdkErr := k.bondKeeper.TransferCoinsToModuleAccount(ctx, record.BondId, registrytypes.RecordRentModuleAccountName, sdk.NewCoins(rent))
|
||||
if sdkErr != nil {
|
||||
// Insufficient funds, mark record as deleted.
|
||||
record.Deleted = true
|
||||
if err := k.SaveRecord(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return k.deleteRecordExpiryQueue(ctx, record)
|
||||
}
|
||||
|
||||
// Delete old expiry queue entry, create new one.
|
||||
if err := k.deleteRecordExpiryQueue(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
record.ExpiryTime = ctx.BlockHeader().Time.Add(params.RecordRentDuration).Format(time.RFC3339)
|
||||
if err := k.insertRecordExpiryQueue(ctx, record); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Save record.
|
||||
record.Deleted = false
|
||||
return k.SaveRecord(ctx, record)
|
||||
}
|
||||
|
@ -169,14 +169,17 @@ func (ms msgServer) DeleteName(c context.Context, msg *registrytypes.MsgDeleteNa
|
||||
|
||||
func (ms msgServer) RenewRecord(c context.Context, msg *registrytypes.MsgRenewRecord) (*registrytypes.MsgRenewRecordResponse, error) {
|
||||
ctx := sdk.UnwrapSDKContext(c)
|
||||
|
||||
_, err := sdk.AccAddressFromBech32(msg.Signer)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = ms.k.ProcessRenewRecord(ctx, *msg)
|
||||
|
||||
err = ms.k.RenewRecord(ctx, *msg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ctx.EventManager().EmitEvents(sdk.Events{
|
||||
sdk.NewEvent(
|
||||
registrytypes.EventTypeRenewRecord,
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"cosmossdk.io/collections"
|
||||
errorsmod "cosmossdk.io/errors"
|
||||
@ -318,10 +319,7 @@ func (k Keeper) createAuthority(ctx sdk.Context, name string, owner string, isRo
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO
|
||||
// k.InsertAuthorityExpiryQueue(ctx, name, authority.ExpiryTime)
|
||||
|
||||
return nil
|
||||
return k.insertAuthorityExpiryQueue(ctx, name, authority.ExpiryTime)
|
||||
}
|
||||
|
||||
func (k Keeper) SetAuthorityBond(ctx sdk.Context, msg registrytypes.MsgSetAuthorityBond) error {
|
||||
@ -406,10 +404,6 @@ func (k Keeper) DeleteName(ctx sdk.Context, msg registrytypes.MsgDeleteNameAutho
|
||||
return k.SaveNameRecord(ctx, msg.Crn, "")
|
||||
}
|
||||
|
||||
func (k Keeper) GetAuthorityExpiryQueue(ctx sdk.Context) []*registrytypes.ExpiryQueueRecord {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// ResolveCRN resolves a CRN to a record.
|
||||
func (k Keeper) ResolveCRN(ctx sdk.Context, crn string) (*registrytypes.Record, error) {
|
||||
_, _, authority, err := k.getAuthority(ctx, crn)
|
||||
@ -520,6 +514,149 @@ func (k Keeper) checkCRNAccess(ctx sdk.Context, signer sdk.AccAddress, crn strin
|
||||
return nil
|
||||
}
|
||||
|
||||
// ProcessAuthorityExpiryQueue tries to renew expiring authorities (by collecting rent) else marks them as expired.
|
||||
func (k Keeper) ProcessAuthorityExpiryQueue(ctx sdk.Context) error {
|
||||
names, err := k.getAllExpiredAuthorities(ctx, ctx.BlockHeader().Time)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, name := range names {
|
||||
authority, err := k.GetNameAuthority(ctx, name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
bondExists := false
|
||||
if authority.BondId != "" {
|
||||
bondExists, err = k.bondKeeper.HasBond(ctx, authority.BondId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// If authority doesn't have an associated bond or if bond no longer exists, mark it expired.
|
||||
if !bondExists {
|
||||
authority.Status = registrytypes.AuthorityExpired
|
||||
if err = k.SaveNameAuthority(ctx, name, &authority); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = k.deleteAuthorityExpiryQueue(ctx, name, authority); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO: Setup logger
|
||||
// k.Logger(ctx).Info(fmt.Sprintf("Marking authority expired as no bond present: %s", name))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Try to renew the authority by taking rent.
|
||||
if err := k.tryTakeAuthorityRent(ctx, name, authority); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// getAllExpiredAuthorities returns a concatenated list of all the timeslices before currTime.
|
||||
func (k Keeper) getAllExpiredAuthorities(ctx sdk.Context, currTime time.Time) ([]string, error) {
|
||||
var expiredAuthorityNames []string
|
||||
|
||||
// Get all the authorities with expiry time until currTime
|
||||
rng := new(collections.Range[time.Time]).EndInclusive(currTime)
|
||||
err := k.AuthorityExpiryQueue.Walk(ctx, rng, func(key time.Time, value registrytypes.ExpiryQueue) (stop bool, err error) {
|
||||
expiredAuthorityNames = append(expiredAuthorityNames, value.Value...)
|
||||
return false, nil
|
||||
})
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
}
|
||||
|
||||
return expiredAuthorityNames, nil
|
||||
}
|
||||
|
||||
func (k Keeper) insertAuthorityExpiryQueue(ctx sdk.Context, name string, expiryTime time.Time) error {
|
||||
existingNamesList, err := k.AuthorityExpiryQueue.Get(ctx, expiryTime)
|
||||
if err != nil {
|
||||
if errors.Is(err, collections.ErrNotFound) {
|
||||
existingNamesList = registrytypes.ExpiryQueue{
|
||||
Id: expiryTime.String(),
|
||||
Value: []string{},
|
||||
}
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
existingNamesList.Value = append(existingNamesList.Value, name)
|
||||
return k.AuthorityExpiryQueue.Set(ctx, expiryTime, existingNamesList)
|
||||
}
|
||||
|
||||
// deleteAuthorityExpiryQueue deletes an authority name from the authority expiry queue.
|
||||
func (k Keeper) deleteAuthorityExpiryQueue(ctx sdk.Context, name string, authority registrytypes.NameAuthority) error {
|
||||
expiryTime := authority.ExpiryTime
|
||||
existingNamesList, err := k.AuthorityExpiryQueue.Get(ctx, expiryTime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
newNamesSlice := []string{}
|
||||
for _, id := range existingNamesList.Value {
|
||||
if id != name {
|
||||
newNamesSlice = append(newNamesSlice, id)
|
||||
}
|
||||
}
|
||||
|
||||
if len(existingNamesList.Value) == 0 {
|
||||
return k.AuthorityExpiryQueue.Remove(ctx, expiryTime)
|
||||
} else {
|
||||
existingNamesList.Value = newNamesSlice
|
||||
return k.AuthorityExpiryQueue.Set(ctx, expiryTime, existingNamesList)
|
||||
}
|
||||
}
|
||||
|
||||
// tryTakeAuthorityRent tries to take rent from the authority bond.
|
||||
func (k Keeper) tryTakeAuthorityRent(ctx sdk.Context, name string, authority registrytypes.NameAuthority) error {
|
||||
// k.Logger(ctx).Info(fmt.Sprintf("Trying to take rent for authority: %s", name))
|
||||
|
||||
params, err := k.GetParams(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rent := params.AuthorityRent
|
||||
sdkErr := k.bondKeeper.TransferCoinsToModuleAccount(ctx, authority.BondId, registrytypes.AuthorityRentModuleAccountName, sdk.NewCoins(rent))
|
||||
if sdkErr != nil {
|
||||
// Insufficient funds, mark authority as expired.
|
||||
authority.Status = registrytypes.AuthorityExpired
|
||||
if err := k.SaveNameAuthority(ctx, name, &authority); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// k.Logger(ctx).Info(fmt.Sprintf("Insufficient funds in owner account to pay authority rent, marking as expired: %s", name))
|
||||
return k.deleteAuthorityExpiryQueue(ctx, name, authority)
|
||||
}
|
||||
|
||||
// Delete old expiry queue entry, create new one.
|
||||
if err := k.deleteAuthorityExpiryQueue(ctx, name, authority); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
authority.ExpiryTime = ctx.BlockTime().Add(params.AuthorityRentDuration)
|
||||
if err := k.insertAuthorityExpiryQueue(ctx, name, authority.ExpiryTime); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Save authority.
|
||||
authority.Status = registrytypes.AuthorityActive
|
||||
|
||||
// k.Logger(ctx).Info(fmt.Sprintf("Authority rent paid successfully: %s", name))
|
||||
return k.SaveNameAuthority(ctx, name, &authority)
|
||||
}
|
||||
|
||||
func getAuthorityPubKey(pubKey cryptotypes.PubKey) string {
|
||||
if pubKey == nil {
|
||||
return ""
|
||||
|
@ -159,17 +159,3 @@ func (qs queryServer) ResolveCrn(c context.Context, req *registrytypes.QueryReso
|
||||
|
||||
return ®istrytypes.QueryResolveCrnResponse{Record: record}, nil
|
||||
}
|
||||
|
||||
func (qs queryServer) GetRecordExpiryQueue(c context.Context, _ *registrytypes.QueryGetRecordExpiryQueueRequest) (*registrytypes.QueryGetRecordExpiryQueueResponse, error) {
|
||||
ctx := sdk.UnwrapSDKContext(c)
|
||||
records := qs.k.GetRecordExpiryQueue(ctx)
|
||||
return ®istrytypes.QueryGetRecordExpiryQueueResponse{Records: records}, nil
|
||||
}
|
||||
|
||||
func (qs queryServer) GetAuthorityExpiryQueue(c context.Context,
|
||||
_ *registrytypes.QueryGetAuthorityExpiryQueueRequest,
|
||||
) (*registrytypes.QueryGetAuthorityExpiryQueueResponse, error) {
|
||||
ctx := sdk.UnwrapSDKContext(c)
|
||||
authorities := qs.k.GetAuthorityExpiryQueue(ctx)
|
||||
return ®istrytypes.QueryGetAuthorityExpiryQueueResponse{Authorities: authorities}, nil
|
||||
}
|
||||
|
@ -1,8 +1,12 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
errorsmod "cosmossdk.io/errors"
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||
|
||||
auctionkeeper "git.vdb.to/cerc-io/laconic2d/x/auction/keeper"
|
||||
registrytypes "git.vdb.to/cerc-io/laconic2d/x/registry"
|
||||
@ -17,9 +21,32 @@ type RecordKeeper struct {
|
||||
// storeKey storetypes.StoreKey // Unexposed key to access store from sdk.Context
|
||||
}
|
||||
|
||||
// ProcessRenewRecord renews a record.
|
||||
func (k Keeper) ProcessRenewRecord(ctx sdk.Context, msg registrytypes.MsgRenewRecord) error {
|
||||
panic("unimplemented")
|
||||
// RenewRecord renews a record.
|
||||
func (k Keeper) RenewRecord(ctx sdk.Context, msg registrytypes.MsgRenewRecord) error {
|
||||
if has, err := k.HasRecord(ctx, msg.RecordId); !has {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.")
|
||||
}
|
||||
|
||||
// Check if renewal is required (i.e. expired record marked as deleted).
|
||||
record, err := k.GetRecordById(ctx, msg.RecordId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
expiryTime, err := time.Parse(time.RFC3339, record.ExpiryTime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !record.Deleted || expiryTime.After(ctx.BlockTime()) {
|
||||
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Renewal not required.")
|
||||
}
|
||||
|
||||
readableRecord := record.ToReadableRecord()
|
||||
return k.processRecord(ctx, &readableRecord, true)
|
||||
}
|
||||
|
||||
// ProcessAssociateBond associates a record with a bond.
|
||||
|
@ -27,4 +27,7 @@ var (
|
||||
|
||||
NameRecordsPrefix = collections.NewPrefix(6)
|
||||
NameRecordsByCidIndexPrefix = collections.NewPrefix(7)
|
||||
|
||||
RecordExpiryQueuePrefix = collections.NewPrefix(8)
|
||||
AuthorityExpiryQueuePrefix = collections.NewPrefix(9)
|
||||
)
|
||||
|
@ -3,15 +3,22 @@ package module
|
||||
import (
|
||||
"context"
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
|
||||
"git.vdb.to/cerc-io/laconic2d/x/registry/keeper"
|
||||
)
|
||||
|
||||
// EndBlocker is called every block
|
||||
func EndBlocker(ctx context.Context, k keeper.Keeper) error {
|
||||
// TODO: Implement
|
||||
sdkCtx := sdk.UnwrapSDKContext(ctx)
|
||||
|
||||
// k.ProcessRecordExpiryQueue(ctx)
|
||||
// k.ProcessAuthorityExpiryQueue(ctx)
|
||||
if err := k.ProcessRecordExpiryQueue(sdkCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := k.ProcessAuthorityExpiryQueue(sdkCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -84,6 +84,14 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions {
|
||||
Tx: &autocliv1.ServiceCommandDescriptor{
|
||||
Service: registryv1.Msg_ServiceDesc.ServiceName,
|
||||
RpcCommandOptions: []*autocliv1.RpcCommandOptions{
|
||||
{
|
||||
RpcMethod: "RenewRecord",
|
||||
Use: "renew-record [record-id]",
|
||||
Short: "Renew (expired) record",
|
||||
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
|
||||
{ProtoField: "record_id"},
|
||||
},
|
||||
},
|
||||
{
|
||||
RpcMethod: "ReserveName",
|
||||
Use: "reserve-name [name] [owner]",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -375,78 +375,6 @@ func local_request_Query_ResolveCrn_0(ctx context.Context, marshaler runtime.Mar
|
||||
|
||||
}
|
||||
|
||||
var (
|
||||
filter_Query_GetRecordExpiryQueue_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
|
||||
)
|
||||
|
||||
func request_Query_GetRecordExpiryQueue_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq QueryGetRecordExpiryQueueRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_GetRecordExpiryQueue_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := client.GetRecordExpiryQueue(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
func local_request_Query_GetRecordExpiryQueue_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq QueryGetRecordExpiryQueueRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_GetRecordExpiryQueue_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := server.GetRecordExpiryQueue(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
var (
|
||||
filter_Query_GetAuthorityExpiryQueue_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
|
||||
)
|
||||
|
||||
func request_Query_GetAuthorityExpiryQueue_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq QueryGetAuthorityExpiryQueueRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_GetAuthorityExpiryQueue_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := client.GetAuthorityExpiryQueue(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
func local_request_Query_GetAuthorityExpiryQueue_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq QueryGetAuthorityExpiryQueueRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
|
||||
if err := req.ParseForm(); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_GetAuthorityExpiryQueue_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := server.GetAuthorityExpiryQueue(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
func request_Query_GetRegistryModuleBalance_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq QueryGetRegistryModuleBalanceRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
@ -655,52 +583,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_Query_GetRecordExpiryQueue_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Query_GetRecordExpiryQueue_0(rctx, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_Query_GetRecordExpiryQueue_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_Query_GetAuthorityExpiryQueue_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Query_GetAuthorityExpiryQueue_0(rctx, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_Query_GetAuthorityExpiryQueue_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_Query_GetRegistryModuleBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
@ -925,46 +807,6 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_Query_GetRecordExpiryQueue_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateContext(ctx, mux, req)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Query_GetRecordExpiryQueue_0(rctx, inboundMarshaler, client, req, pathParams)
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_Query_GetRecordExpiryQueue_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_Query_GetAuthorityExpiryQueue_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
rctx, err := runtime.AnnotateContext(ctx, mux, req)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Query_GetAuthorityExpiryQueue_0(rctx, inboundMarshaler, client, req, pathParams)
|
||||
ctx = runtime.NewServerMetadataContext(ctx, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
|
||||
forward_Query_GetAuthorityExpiryQueue_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
|
||||
})
|
||||
|
||||
mux.Handle("GET", pattern_Query_GetRegistryModuleBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
@ -1005,10 +847,6 @@ var (
|
||||
|
||||
pattern_Query_ResolveCrn_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cerc", "registry", "v1", "resolve"}, "", runtime.AssumeColonVerbOpt(false)))
|
||||
|
||||
pattern_Query_GetRecordExpiryQueue_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cerc", "registry", "v1", "record-expiry"}, "", runtime.AssumeColonVerbOpt(false)))
|
||||
|
||||
pattern_Query_GetAuthorityExpiryQueue_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cerc", "registry", "v1", "authority-expiry"}, "", runtime.AssumeColonVerbOpt(false)))
|
||||
|
||||
pattern_Query_GetRegistryModuleBalance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cerc", "registry", "v1", "balance"}, "", runtime.AssumeColonVerbOpt(false)))
|
||||
)
|
||||
|
||||
@ -1029,9 +867,5 @@ var (
|
||||
|
||||
forward_Query_ResolveCrn_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_Query_GetRecordExpiryQueue_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_Query_GetAuthorityExpiryQueue_0 = runtime.ForwardResponseMessage
|
||||
|
||||
forward_Query_GetRegistryModuleBalance_0 = runtime.ForwardResponseMessage
|
||||
)
|
||||
|
@ -762,6 +762,61 @@ func (m *AuctionBidInfo) GetBidderAddress() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// ExpiryQueue: record / authority expiry queue type
|
||||
// id: expiry time
|
||||
// value: array of ids (record cids / authority names)
|
||||
type ExpiryQueue struct {
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
|
||||
}
|
||||
|
||||
func (m *ExpiryQueue) Reset() { *m = ExpiryQueue{} }
|
||||
func (m *ExpiryQueue) String() string { return proto.CompactTextString(m) }
|
||||
func (*ExpiryQueue) ProtoMessage() {}
|
||||
func (*ExpiryQueue) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d792f2373089b5b9, []int{10}
|
||||
}
|
||||
func (m *ExpiryQueue) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *ExpiryQueue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
if deterministic {
|
||||
return xxx_messageInfo_ExpiryQueue.Marshal(b, m, deterministic)
|
||||
} else {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
}
|
||||
func (m *ExpiryQueue) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ExpiryQueue.Merge(m, src)
|
||||
}
|
||||
func (m *ExpiryQueue) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *ExpiryQueue) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_ExpiryQueue.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_ExpiryQueue proto.InternalMessageInfo
|
||||
|
||||
func (m *ExpiryQueue) GetId() string {
|
||||
if m != nil {
|
||||
return m.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *ExpiryQueue) GetValue() []string {
|
||||
if m != nil {
|
||||
return m.Value
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*Params)(nil), "cerc.registry.v1.Params")
|
||||
proto.RegisterType((*Record)(nil), "cerc.registry.v1.Record")
|
||||
@ -773,96 +828,99 @@ func init() {
|
||||
proto.RegisterType((*Signature)(nil), "cerc.registry.v1.Signature")
|
||||
proto.RegisterType((*BlockChangeSet)(nil), "cerc.registry.v1.BlockChangeSet")
|
||||
proto.RegisterType((*AuctionBidInfo)(nil), "cerc.registry.v1.AuctionBidInfo")
|
||||
proto.RegisterType((*ExpiryQueue)(nil), "cerc.registry.v1.ExpiryQueue")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("cerc/registry/v1/registry.proto", fileDescriptor_d792f2373089b5b9) }
|
||||
|
||||
var fileDescriptor_d792f2373089b5b9 = []byte{
|
||||
// 1343 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4d, 0x6f, 0x1b, 0xc5,
|
||||
0x1b, 0xcf, 0xc6, 0x89, 0x13, 0x3f, 0x69, 0xf2, 0xaf, 0xe6, 0x9f, 0xb6, 0x4e, 0x68, 0xbd, 0xa9,
|
||||
0x11, 0x4a, 0xab, 0xaa, 0x5e, 0xb9, 0x11, 0xaa, 0xda, 0x8a, 0x43, 0x36, 0xb4, 0x51, 0xa8, 0x80,
|
||||
0x32, 0xa9, 0x38, 0x80, 0x90, 0xb5, 0x2f, 0x53, 0x67, 0xa8, 0x77, 0xd7, 0xda, 0x1d, 0x87, 0xfa,
|
||||
0x88, 0xc4, 0x01, 0x6e, 0x3d, 0xf6, 0xc0, 0x37, 0xe0, 0x00, 0xdf, 0x82, 0x1e, 0x7b, 0xe4, 0x82,
|
||||
0x41, 0x8d, 0xc4, 0x07, 0xf0, 0x27, 0x40, 0xf3, 0xb6, 0x6f, 0xb6, 0x6b, 0xa0, 0xb7, 0x7d, 0xde,
|
||||
0x7e, 0xf3, 0x9b, 0x67, 0x9e, 0xe7, 0x99, 0x59, 0x30, 0x3d, 0x12, 0x7b, 0x56, 0x4c, 0xba, 0x34,
|
||||
0x61, 0xf1, 0xd0, 0x3a, 0x6d, 0xa7, 0xdf, 0xad, 0x7e, 0x1c, 0xb1, 0x08, 0x9d, 0xe7, 0x0e, 0xad,
|
||||
0x54, 0x79, 0xda, 0xde, 0x6e, 0x74, 0xa3, 0xa8, 0xdb, 0x23, 0x96, 0xb0, 0xbb, 0x83, 0x27, 0x96,
|
||||
0x3f, 0x88, 0x1d, 0x46, 0xa3, 0x50, 0x46, 0x6c, 0x9b, 0x65, 0x3b, 0xa3, 0x01, 0x49, 0x98, 0x13,
|
||||
0xf4, 0x95, 0xc3, 0x66, 0x37, 0xea, 0x46, 0xe2, 0xd3, 0xe2, 0x5f, 0x4a, 0xdb, 0xf0, 0xa2, 0x24,
|
||||
0x88, 0x12, 0xcb, 0x75, 0x12, 0x62, 0x9d, 0xb6, 0x5d, 0xc2, 0x9c, 0xb6, 0xe5, 0x45, 0x54, 0xc1,
|
||||
0x36, 0x7f, 0x5f, 0x87, 0xea, 0x23, 0x27, 0x76, 0x82, 0x04, 0x51, 0x58, 0x8b, 0x89, 0x17, 0xc5,
|
||||
0x7e, 0x27, 0x26, 0x21, 0xab, 0x1b, 0x3b, 0xc6, 0xb5, 0xb5, 0x5b, 0x5b, 0x2d, 0x09, 0xd0, 0xe2,
|
||||
0x00, 0x2d, 0x05, 0xd0, 0x3a, 0x88, 0x68, 0x68, 0xdf, 0x7c, 0x39, 0x32, 0x17, 0xc6, 0x23, 0xf3,
|
||||
0xbd, 0xaf, 0x93, 0x28, 0xbc, 0xdb, 0xcc, 0xc5, 0x36, 0x77, 0x86, 0x4e, 0xd0, 0x2b, 0xaa, 0x30,
|
||||
0x48, 0x09, 0x93, 0x90, 0xa1, 0xe7, 0x06, 0x6c, 0xe6, 0x8c, 0x1d, 0xbd, 0xd7, 0xfa, 0xa2, 0x5a,
|
||||
0x54, 0x6e, 0xb6, 0xa5, 0x37, 0xdb, 0xfa, 0x50, 0x39, 0xd8, 0x07, 0x6a, 0xd1, 0xdb, 0x13, 0x8b,
|
||||
0xa6, 0x20, 0x53, 0x56, 0xcf, 0x6c, 0x2f, 0xfe, 0x30, 0x0d, 0x8c, 0x32, 0x2a, 0x1a, 0x18, 0x0d,
|
||||
0x60, 0xc3, 0x19, 0xb0, 0x93, 0x28, 0xa6, 0x6c, 0x28, 0x13, 0x50, 0x99, 0x97, 0x80, 0x3d, 0xc5,
|
||||
0xe5, 0x86, 0xe4, 0x52, 0x0c, 0xd7, 0x2c, 0x4a, 0x5a, 0xbc, 0x9e, 0x2a, 0x44, 0x26, 0x7e, 0x34,
|
||||
0xe0, 0x52, 0xd1, 0x25, 0x4b, 0xc6, 0xd2, 0xbc, 0x64, 0x1c, 0x29, 0x02, 0x1f, 0x4c, 0x23, 0x30,
|
||||
0x91, 0x8f, 0x59, 0x66, 0x91, 0x92, 0x0b, 0x05, 0x5a, 0x69, 0x56, 0x5e, 0x18, 0x70, 0x31, 0x8b,
|
||||
0xeb, 0xc6, 0x8e, 0x47, 0x3a, 0x7d, 0x12, 0xd3, 0xc8, 0xaf, 0x2f, 0xcf, 0x63, 0x77, 0xa8, 0xd8,
|
||||
0xdd, 0x2b, 0xb3, 0xcb, 0xc3, 0x4c, 0x92, 0x2b, 0x58, 0x05, 0xb7, 0xcd, 0xd4, 0x78, 0xc8, 0x6d,
|
||||
0x8f, 0x84, 0x09, 0x7d, 0x6b, 0xc0, 0x56, 0x16, 0xe5, 0x0c, 0x3c, 0xbe, 0x68, 0x87, 0x84, 0x8e,
|
||||
0xdb, 0x23, 0x7e, 0xbd, 0xba, 0x63, 0x5c, 0x5b, 0xb5, 0xef, 0x8f, 0x47, 0xe6, 0x7e, 0x79, 0xf9,
|
||||
0x92, 0xeb, 0x24, 0x83, 0xb2, 0x03, 0xce, 0x4e, 0x68, 0x5f, 0x9a, 0xee, 0x4b, 0x0b, 0xfa, 0xd5,
|
||||
0x80, 0x29, 0x71, 0x5e, 0x14, 0x04, 0x94, 0x25, 0xd9, 0x41, 0xae, 0xcc, 0x4b, 0x55, 0x47, 0xa5,
|
||||
0xea, 0x78, 0x16, 0xd7, 0x32, 0xe4, 0x6c, 0xd2, 0x13, 0x9e, 0x22, 0x85, 0x66, 0x79, 0x07, 0x07,
|
||||
0xd2, 0x2d, 0x3d, 0xe8, 0xe9, 0x3b, 0x89, 0xc9, 0x29, 0x71, 0x7a, 0xb9, 0x9d, 0xac, 0xbe, 0xf5,
|
||||
0x4e, 0xca, 0x90, 0xb3, 0x77, 0x32, 0xe1, 0x39, 0x7d, 0x27, 0x58, 0xba, 0xa5, 0x3b, 0xf9, 0xc9,
|
||||
0x80, 0xcb, 0xb3, 0xd2, 0xd2, 0x79, 0x42, 0x48, 0xbd, 0x36, 0xaf, 0xaf, 0x3f, 0x55, 0x7b, 0x38,
|
||||
0x7c, 0xf3, 0x69, 0x70, 0xb0, 0x79, 0xe7, 0x20, 0x7c, 0xf0, 0xd6, 0xf4, 0xec, 0x3f, 0x20, 0x64,
|
||||
0x06, 0x5b, 0xb9, 0x75, 0xc1, 0x16, 0xde, 0x9a, 0x6d, 0x06, 0x36, 0x2f, 0xd7, 0x33, 0xd8, 0xca,
|
||||
0x0c, 0x73, 0xb6, 0x3f, 0x1b, 0x70, 0x65, 0x32, 0x38, 0xa0, 0x21, 0x0d, 0x06, 0x41, 0xc7, 0xa5,
|
||||
0x7e, 0x7d, 0x6d, 0x1e, 0xdd, 0xcf, 0x14, 0xdd, 0xa3, 0x59, 0x74, 0x73, 0x68, 0xb3, 0xf9, 0xe6,
|
||||
0x9d, 0xf0, 0x76, 0x99, 0xf0, 0xc7, 0xd2, 0x6a, 0x53, 0xbf, 0xf9, 0xc3, 0x12, 0x54, 0xb1, 0x98,
|
||||
0xf6, 0x68, 0x17, 0x16, 0xa9, 0x2f, 0xae, 0xb5, 0x9a, 0x7d, 0x69, 0x3c, 0x32, 0xff, 0x2f, 0x19,
|
||||
0x64, 0xcb, 0x70, 0xac, 0x45, 0xea, 0xa3, 0xbb, 0xb0, 0xe2, 0x46, 0xa1, 0xdf, 0xa1, 0xbe, 0xb8,
|
||||
0x8f, 0x6a, 0xf6, 0xd5, 0xf1, 0xc8, 0xbc, 0x22, 0xbd, 0x95, 0x41, 0x87, 0x68, 0x11, 0x57, 0xf9,
|
||||
0xd7, 0x91, 0x8f, 0x3e, 0x82, 0x35, 0x2f, 0x26, 0x0e, 0x23, 0x1d, 0x7e, 0x3f, 0x8b, 0x3b, 0xa4,
|
||||
0x66, 0x5f, 0xcf, 0x6e, 0xc9, 0x9c, 0x51, 0x63, 0xe4, 0x55, 0x18, 0xa4, 0xf4, 0x98, 0x06, 0x84,
|
||||
0x63, 0x91, 0x67, 0x7d, 0x1a, 0x0f, 0x25, 0xd6, 0x52, 0x19, 0x2b, 0x67, 0xd4, 0x58, 0x79, 0x15,
|
||||
0x06, 0x29, 0x09, 0xac, 0x3a, 0xac, 0xf8, 0xa4, 0x47, 0x18, 0x91, 0x83, 0x7b, 0x15, 0x6b, 0x11,
|
||||
0xdd, 0x86, 0x6a, 0xf4, 0x4d, 0x48, 0xe2, 0xa4, 0x5e, 0xdd, 0xa9, 0x5c, 0xab, 0xd9, 0xe6, 0x78,
|
||||
0x64, 0xbe, 0x23, 0x17, 0x90, 0x7a, 0x8d, 0xad, 0x24, 0xac, 0xdc, 0xd1, 0x21, 0x80, 0xc3, 0x58,
|
||||
0x4c, 0xdd, 0x01, 0x23, 0x89, 0x98, 0x71, 0xe7, 0xec, 0xdd, 0xf1, 0xc8, 0x7c, 0x57, 0x9d, 0x6c,
|
||||
0x6a, 0x4b, 0x8f, 0x31, 0xd3, 0xe0, 0x5c, 0x28, 0xda, 0x83, 0xe5, 0xd0, 0x09, 0x48, 0x52, 0x5f,
|
||||
0x15, 0x04, 0xae, 0x8c, 0x47, 0xe6, 0x96, 0xc4, 0x10, 0x6a, 0x1d, 0x2e, 0x05, 0x2c, 0x7d, 0x51,
|
||||
0x1b, 0x96, 0xd8, 0xb0, 0x2f, 0xbb, 0xb9, 0x10, 0xc3, 0xb5, 0x69, 0x8c, 0x14, 0xb0, 0x70, 0x6d,
|
||||
0x7e, 0x09, 0x1b, 0xfb, 0xba, 0x52, 0xee, 0x87, 0x2c, 0x1e, 0x22, 0x04, 0x4b, 0x1c, 0x4d, 0x16,
|
||||
0x05, 0x16, 0xdf, 0xe8, 0x7d, 0x58, 0x26, 0xdc, 0xa8, 0xde, 0x22, 0x66, 0xab, 0xfc, 0x54, 0x6b,
|
||||
0x7d, 0xe2, 0x04, 0x24, 0x05, 0xc2, 0xd2, 0xbb, 0xf9, 0x57, 0x05, 0xd6, 0x0b, 0x06, 0xf4, 0x15,
|
||||
0x9c, 0x17, 0x99, 0xea, 0xf4, 0x07, 0x6e, 0x8f, 0x7a, 0x9d, 0xa7, 0x64, 0xa8, 0xaa, 0x6f, 0x6f,
|
||||
0x3c, 0x32, 0xad, 0x5c, 0x8a, 0x73, 0x1e, 0x85, 0x64, 0xe7, 0xf5, 0x78, 0x43, 0xa8, 0x1e, 0x09,
|
||||
0xcd, 0x43, 0x32, 0x44, 0x18, 0xd6, 0xa5, 0x93, 0xe3, 0xfb, 0x31, 0x49, 0x12, 0x55, 0xab, 0x37,
|
||||
0xc7, 0x23, 0xf3, 0x7a, 0x1e, 0x5b, 0x99, 0x8b, 0xc0, 0x5a, 0x89, 0xcf, 0x09, 0x79, 0x5f, 0x8a,
|
||||
0xe8, 0x22, 0x54, 0x4f, 0x08, 0xed, 0x9e, 0xc8, 0xc7, 0xcf, 0x12, 0x56, 0x12, 0xd7, 0x27, 0xcc,
|
||||
0x61, 0x83, 0x44, 0x16, 0x21, 0x56, 0x12, 0x7a, 0x00, 0xa0, 0x3b, 0x92, 0xca, 0xc2, 0xaa, 0x15,
|
||||
0x4a, 0x20, 0xb5, 0x65, 0x9d, 0x9c, 0x6a, 0x70, 0x4d, 0x09, 0x47, 0x85, 0x8e, 0xab, 0xfe, 0xdb,
|
||||
0x8e, 0x0b, 0x8b, 0x5d, 0x22, 0xef, 0xda, 0xed, 0x89, 0x1b, 0xea, 0xb1, 0x7e, 0x2e, 0xdb, 0xed,
|
||||
0xe2, 0xbb, 0x75, 0x4e, 0x17, 0x3d, 0xe7, 0x97, 0x4e, 0xae, 0x93, 0x9a, 0xc7, 0x50, 0xe3, 0xe7,
|
||||
0x3c, 0xbb, 0x80, 0x6e, 0x15, 0x0b, 0xe8, 0xf2, 0xf4, 0x02, 0x92, 0x43, 0x49, 0x57, 0xcf, 0x77,
|
||||
0x06, 0x40, 0xa6, 0x45, 0x77, 0xa0, 0xda, 0x73, 0x18, 0x49, 0xf4, 0x2b, 0xfc, 0xea, 0x9b, 0x30,
|
||||
0x04, 0x13, 0xac, 0x02, 0xd0, 0x3d, 0x58, 0x39, 0xa1, 0x09, 0x8b, 0xc4, 0xfa, 0x95, 0x7f, 0x16,
|
||||
0xab, 0x23, 0x9a, 0x77, 0xe0, 0x7f, 0x25, 0x1b, 0xda, 0xc8, 0xa6, 0xa6, 0x18, 0x8e, 0x59, 0x89,
|
||||
0x2c, 0xe6, 0x4b, 0xa4, 0xc9, 0xa0, 0x76, 0x4c, 0xbb, 0xa1, 0xc3, 0x06, 0x31, 0x41, 0x37, 0xa0,
|
||||
0x92, 0xd0, 0xae, 0xaa, 0xf6, 0xad, 0xf1, 0xc8, 0xbc, 0x20, 0x73, 0x9d, 0xd0, 0xae, 0xce, 0x31,
|
||||
0xff, 0xc4, 0xdc, 0x8b, 0x1f, 0x7e, 0x7f, 0xe0, 0x8a, 0xf6, 0x98, 0x18, 0xb7, 0xca, 0xa0, 0x83,
|
||||
0xb4, 0x88, 0xab, 0xfd, 0x81, 0xfb, 0x90, 0x0c, 0x9b, 0xdf, 0x2f, 0xc2, 0x86, 0xdd, 0x8b, 0xbc,
|
||||
0xa7, 0x07, 0x27, 0x4e, 0xd8, 0x25, 0xc7, 0x84, 0xe5, 0x08, 0xf2, 0xe5, 0x2b, 0x69, 0x0d, 0xd7,
|
||||
0x61, 0x45, 0x3e, 0xfb, 0x13, 0x91, 0x98, 0x1a, 0xd6, 0x22, 0xda, 0x86, 0x55, 0x55, 0x8a, 0x49,
|
||||
0xbd, 0x22, 0x4c, 0xa9, 0x8c, 0xfa, 0x70, 0x4e, 0xd7, 0xac, 0x4b, 0x7d, 0x5e, 0xff, 0x3c, 0xa7,
|
||||
0x3b, 0x93, 0x39, 0x55, 0x57, 0x8f, 0x4d, 0xfd, 0xa3, 0xf0, 0x49, 0x64, 0xdf, 0x18, 0x8f, 0xcc,
|
||||
0xdd, 0x62, 0x17, 0xf0, 0xf8, 0x72, 0x1f, 0x08, 0x1d, 0x5e, 0x73, 0xd2, 0xe0, 0x04, 0xed, 0xc0,
|
||||
0x9a, 0xbe, 0xcf, 0x28, 0x49, 0xea, 0xcb, 0x82, 0x50, 0x5e, 0x85, 0x36, 0xf5, 0xbc, 0x14, 0x03,
|
||||
0x5b, 0x0d, 0xc4, 0xe6, 0x2f, 0x06, 0x1f, 0x6f, 0x79, 0x12, 0xa5, 0xf6, 0x34, 0xfe, 0x73, 0x7b,
|
||||
0x7e, 0x0e, 0x1b, 0x2e, 0xf5, 0xfd, 0x89, 0x59, 0x63, 0x65, 0x3f, 0x3f, 0x45, 0x7b, 0xda, 0xac,
|
||||
0x45, 0x2d, 0x5e, 0x97, 0x0a, 0x35, 0x6e, 0xec, 0xfd, 0x97, 0xaf, 0x1b, 0xc6, 0xab, 0xd7, 0x0d,
|
||||
0xe3, 0xcf, 0xd7, 0x0d, 0xe3, 0xf9, 0x59, 0x63, 0xe1, 0xd5, 0x59, 0x63, 0xe1, 0xb7, 0xb3, 0xc6,
|
||||
0xc2, 0x17, 0xbb, 0x5d, 0xca, 0x5a, 0xa7, 0xbe, 0xdb, 0x62, 0x91, 0xc5, 0x53, 0x7d, 0x93, 0x46,
|
||||
0x56, 0xcf, 0xf1, 0xa2, 0x90, 0x7a, 0xb7, 0x7c, 0xeb, 0x59, 0xfa, 0x3b, 0xed, 0x56, 0x45, 0x83,
|
||||
0xef, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x12, 0xe3, 0x33, 0x72, 0x0f, 0x00, 0x00,
|
||||
// 1365 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4f, 0x6f, 0x1b, 0x45,
|
||||
0x14, 0xcf, 0xc6, 0x89, 0x13, 0x3f, 0x37, 0xa1, 0x1a, 0xd2, 0xd6, 0x09, 0xad, 0x37, 0x35, 0x42,
|
||||
0x69, 0x55, 0xd5, 0xab, 0x34, 0x42, 0x55, 0x5b, 0x71, 0xc8, 0x86, 0x34, 0x0a, 0x15, 0xd0, 0x4e,
|
||||
0x2a, 0x0e, 0x20, 0x64, 0xed, 0x9f, 0xa9, 0x33, 0xd4, 0xbb, 0x6b, 0xed, 0xce, 0x9a, 0xfa, 0x88,
|
||||
0xc4, 0x01, 0x6e, 0x3d, 0xf6, 0xc0, 0x37, 0xe0, 0x00, 0xdf, 0x82, 0x1e, 0x7b, 0xe4, 0x82, 0x41,
|
||||
0x8d, 0xc4, 0x07, 0xf0, 0x27, 0x40, 0xf3, 0x67, 0xff, 0xda, 0xae, 0x81, 0xde, 0xf6, 0xfd, 0xfb,
|
||||
0xcd, 0x6f, 0xde, 0xbc, 0xf7, 0x66, 0x16, 0x74, 0x87, 0x84, 0x8e, 0x11, 0x92, 0x2e, 0x8d, 0x58,
|
||||
0x38, 0x34, 0x06, 0xbb, 0xe9, 0x77, 0xbb, 0x1f, 0x06, 0x2c, 0x40, 0xe7, 0xb9, 0x43, 0x3b, 0x55,
|
||||
0x0e, 0x76, 0xb7, 0x9a, 0xdd, 0x20, 0xe8, 0xf6, 0x88, 0x21, 0xec, 0x76, 0xfc, 0xc4, 0x70, 0xe3,
|
||||
0xd0, 0x62, 0x34, 0xf0, 0x65, 0xc4, 0x96, 0x5e, 0xb6, 0x33, 0xea, 0x91, 0x88, 0x59, 0x5e, 0x5f,
|
||||
0x39, 0x6c, 0x74, 0x83, 0x6e, 0x20, 0x3e, 0x0d, 0xfe, 0xa5, 0xb4, 0x4d, 0x27, 0x88, 0xbc, 0x20,
|
||||
0x32, 0x6c, 0x2b, 0x22, 0xc6, 0x60, 0xd7, 0x26, 0xcc, 0xda, 0x35, 0x9c, 0x80, 0x2a, 0xd8, 0xd6,
|
||||
0x1f, 0x6b, 0x50, 0x7d, 0x68, 0x85, 0x96, 0x17, 0x21, 0x0a, 0xf5, 0x90, 0x38, 0x41, 0xe8, 0x76,
|
||||
0x42, 0xe2, 0xb3, 0x86, 0xb6, 0xad, 0x5d, 0xab, 0xdf, 0xda, 0x6c, 0x4b, 0x80, 0x36, 0x07, 0x68,
|
||||
0x2b, 0x80, 0xf6, 0x41, 0x40, 0x7d, 0xf3, 0xe6, 0xcb, 0x91, 0xbe, 0x30, 0x1e, 0xe9, 0x1f, 0x7c,
|
||||
0x13, 0x05, 0xfe, 0xdd, 0x56, 0x2e, 0xb6, 0xb5, 0x3d, 0xb4, 0xbc, 0x5e, 0x51, 0x85, 0x41, 0x4a,
|
||||
0x98, 0xf8, 0x0c, 0x3d, 0xd7, 0x60, 0x23, 0x67, 0xec, 0x24, 0x7b, 0x6d, 0x2c, 0xaa, 0x45, 0xe5,
|
||||
0x66, 0xdb, 0xc9, 0x66, 0xdb, 0x1f, 0x2b, 0x07, 0xf3, 0x40, 0x2d, 0x7a, 0x7b, 0x62, 0xd1, 0x14,
|
||||
0x64, 0xca, 0xea, 0x99, 0xed, 0xc5, 0x9f, 0xba, 0x86, 0x51, 0x46, 0x25, 0x01, 0x46, 0x31, 0xac,
|
||||
0x5b, 0x31, 0x3b, 0x0d, 0x42, 0xca, 0x86, 0x32, 0x01, 0x95, 0x79, 0x09, 0xd8, 0x53, 0x5c, 0x6e,
|
||||
0x48, 0x2e, 0xc5, 0xf0, 0x84, 0x45, 0x49, 0x8b, 0xd7, 0x52, 0x85, 0xc8, 0xc4, 0x4f, 0x1a, 0x5c,
|
||||
0x2a, 0xba, 0x64, 0xc9, 0x58, 0x9a, 0x97, 0x8c, 0x63, 0x45, 0xe0, 0xa3, 0x69, 0x04, 0x26, 0xf2,
|
||||
0x31, 0xcb, 0x2c, 0x52, 0x72, 0xa1, 0x40, 0x2b, 0xcd, 0xca, 0x0b, 0x0d, 0x2e, 0x66, 0x71, 0xdd,
|
||||
0xd0, 0x72, 0x48, 0xa7, 0x4f, 0x42, 0x1a, 0xb8, 0x8d, 0xe5, 0x79, 0xec, 0x8e, 0x14, 0xbb, 0x7b,
|
||||
0x65, 0x76, 0x79, 0x98, 0x49, 0x72, 0x05, 0xab, 0xe0, 0xb6, 0x91, 0x1a, 0x8f, 0xb8, 0xed, 0xa1,
|
||||
0x30, 0xa1, 0xef, 0x34, 0xd8, 0xcc, 0xa2, 0xac, 0xd8, 0xe1, 0x8b, 0x76, 0x88, 0x6f, 0xd9, 0x3d,
|
||||
0xe2, 0x36, 0xaa, 0xdb, 0xda, 0xb5, 0x55, 0xf3, 0x70, 0x3c, 0xd2, 0xf7, 0xcb, 0xcb, 0x97, 0x5c,
|
||||
0x27, 0x19, 0x94, 0x1d, 0x70, 0x76, 0x42, 0xfb, 0xd2, 0x74, 0x28, 0x2d, 0xe8, 0x37, 0x0d, 0xa6,
|
||||
0xc4, 0x39, 0x81, 0xe7, 0x51, 0x16, 0x65, 0x07, 0xb9, 0x32, 0x2f, 0x55, 0x1d, 0x95, 0xaa, 0x93,
|
||||
0x59, 0x5c, 0xcb, 0x90, 0xb3, 0x49, 0x4f, 0x78, 0x8a, 0x14, 0xea, 0xe5, 0x1d, 0x1c, 0x48, 0xb7,
|
||||
0xf4, 0xa0, 0xa7, 0xef, 0x24, 0x24, 0x03, 0x62, 0xf5, 0x72, 0x3b, 0x59, 0x7d, 0xeb, 0x9d, 0x94,
|
||||
0x21, 0x67, 0xef, 0x64, 0xc2, 0x73, 0xfa, 0x4e, 0xb0, 0x74, 0x4b, 0x77, 0xf2, 0xb3, 0x06, 0x97,
|
||||
0x67, 0xa5, 0xa5, 0xf3, 0x84, 0x90, 0x46, 0x6d, 0x5e, 0x5f, 0x7f, 0xae, 0xf6, 0x70, 0xf4, 0xe6,
|
||||
0xd3, 0xe0, 0x60, 0xf3, 0xce, 0x41, 0xf8, 0xe0, 0xcd, 0xe9, 0xd9, 0xbf, 0x4f, 0xc8, 0x0c, 0xb6,
|
||||
0x72, 0xeb, 0x82, 0x2d, 0xbc, 0x35, 0xdb, 0x0c, 0x6c, 0x5e, 0xae, 0x67, 0xb0, 0x95, 0x19, 0xe6,
|
||||
0x6c, 0x7f, 0xd1, 0xe0, 0xca, 0x64, 0xb0, 0x47, 0x7d, 0xea, 0xc5, 0x5e, 0xc7, 0xa6, 0x6e, 0xa3,
|
||||
0x3e, 0x8f, 0xee, 0x23, 0x45, 0xf7, 0x78, 0x16, 0xdd, 0x1c, 0xda, 0x6c, 0xbe, 0x79, 0x27, 0xbc,
|
||||
0x55, 0x26, 0xfc, 0xa9, 0xb4, 0x9a, 0xd4, 0x6d, 0xfd, 0xb8, 0x04, 0x55, 0x2c, 0xa6, 0x3d, 0xda,
|
||||
0x81, 0x45, 0xea, 0x8a, 0x6b, 0xad, 0x66, 0x5e, 0x1a, 0x8f, 0xf4, 0x77, 0x25, 0x83, 0x6c, 0x19,
|
||||
0x8e, 0xb5, 0x48, 0x5d, 0x74, 0x17, 0x56, 0xec, 0xc0, 0x77, 0x3b, 0xd4, 0x15, 0xf7, 0x51, 0xcd,
|
||||
0xbc, 0x3a, 0x1e, 0xe9, 0x57, 0xa4, 0xb7, 0x32, 0x24, 0x21, 0x89, 0x88, 0xab, 0xfc, 0xeb, 0xd8,
|
||||
0x45, 0x9f, 0x40, 0xdd, 0x09, 0x89, 0xc5, 0x48, 0x87, 0xdf, 0xcf, 0xe2, 0x0e, 0xa9, 0x99, 0xd7,
|
||||
0xb3, 0x5b, 0x32, 0x67, 0x4c, 0x30, 0xf2, 0x2a, 0x0c, 0x52, 0x7a, 0x4c, 0x3d, 0xc2, 0xb1, 0xc8,
|
||||
0xb3, 0x3e, 0x0d, 0x87, 0x12, 0x6b, 0xa9, 0x8c, 0x95, 0x33, 0x26, 0x58, 0x79, 0x15, 0x06, 0x29,
|
||||
0x09, 0xac, 0x06, 0xac, 0xb8, 0xa4, 0x47, 0x18, 0x91, 0x83, 0x7b, 0x15, 0x27, 0x22, 0xba, 0x0d,
|
||||
0xd5, 0xe0, 0x5b, 0x9f, 0x84, 0x51, 0xa3, 0xba, 0x5d, 0xb9, 0x56, 0x33, 0xf5, 0xf1, 0x48, 0x7f,
|
||||
0x4f, 0x2e, 0x20, 0xf5, 0x09, 0xb6, 0x92, 0xb0, 0x72, 0x47, 0x47, 0x00, 0x16, 0x63, 0x21, 0xb5,
|
||||
0x63, 0x46, 0x22, 0x31, 0xe3, 0xce, 0x99, 0x3b, 0xe3, 0x91, 0xfe, 0xbe, 0x3a, 0xd9, 0xd4, 0x96,
|
||||
0x1e, 0x63, 0xa6, 0xc1, 0xb9, 0x50, 0xb4, 0x07, 0xcb, 0xbe, 0xe5, 0x91, 0xa8, 0xb1, 0x2a, 0x08,
|
||||
0x5c, 0x19, 0x8f, 0xf4, 0x4d, 0x89, 0x21, 0xd4, 0x49, 0xb8, 0x14, 0xb0, 0xf4, 0x45, 0xbb, 0xb0,
|
||||
0xc4, 0x86, 0x7d, 0xd9, 0xcd, 0x85, 0x18, 0xae, 0x4d, 0x63, 0xa4, 0x80, 0x85, 0x6b, 0xeb, 0x2b,
|
||||
0x58, 0xdf, 0x4f, 0x2a, 0xe5, 0xd0, 0x67, 0xe1, 0x10, 0x21, 0x58, 0xe2, 0x68, 0xb2, 0x28, 0xb0,
|
||||
0xf8, 0x46, 0x1f, 0xc2, 0x32, 0xe1, 0x46, 0xf5, 0x16, 0xd1, 0xdb, 0xe5, 0xa7, 0x5a, 0xfb, 0x33,
|
||||
0xcb, 0x23, 0x29, 0x10, 0x96, 0xde, 0xad, 0xbf, 0x2b, 0xb0, 0x56, 0x30, 0xa0, 0xaf, 0xe1, 0xbc,
|
||||
0xc8, 0x54, 0xa7, 0x1f, 0xdb, 0x3d, 0xea, 0x74, 0x9e, 0x92, 0xa1, 0xaa, 0xbe, 0xbd, 0xf1, 0x48,
|
||||
0x37, 0x72, 0x29, 0xce, 0x79, 0x14, 0x92, 0x9d, 0xd7, 0xe3, 0x75, 0xa1, 0x7a, 0x28, 0x34, 0x0f,
|
||||
0xc8, 0x10, 0x61, 0x58, 0x93, 0x4e, 0x96, 0xeb, 0x86, 0x24, 0x8a, 0x54, 0xad, 0xde, 0x1c, 0x8f,
|
||||
0xf4, 0xeb, 0x79, 0x6c, 0x65, 0x2e, 0x02, 0x27, 0x4a, 0x7c, 0x4e, 0xc8, 0xfb, 0x52, 0x44, 0x17,
|
||||
0xa1, 0x7a, 0x4a, 0x68, 0xf7, 0x54, 0x3e, 0x7e, 0x96, 0xb0, 0x92, 0xb8, 0x3e, 0x62, 0x16, 0x8b,
|
||||
0x23, 0x59, 0x84, 0x58, 0x49, 0xe8, 0x3e, 0x40, 0xd2, 0x91, 0x54, 0x16, 0x56, 0xad, 0x50, 0x02,
|
||||
0xa9, 0x2d, 0xeb, 0xe4, 0x54, 0x83, 0x6b, 0x4a, 0x38, 0x2e, 0x74, 0x5c, 0xf5, 0xbf, 0x76, 0x9c,
|
||||
0x5f, 0xec, 0x12, 0x79, 0xd7, 0x6e, 0x4d, 0xdc, 0x50, 0x8f, 0x93, 0xe7, 0xb2, 0xb9, 0x5b, 0x7c,
|
||||
0xb7, 0xce, 0xe9, 0xa2, 0xe7, 0xfc, 0xd2, 0xc9, 0x75, 0x52, 0xeb, 0x04, 0x6a, 0xfc, 0x9c, 0x67,
|
||||
0x17, 0xd0, 0xad, 0x62, 0x01, 0x5d, 0x9e, 0x5e, 0x40, 0x72, 0x28, 0x25, 0xd5, 0xf3, 0xbd, 0x06,
|
||||
0x90, 0x69, 0xd1, 0x1d, 0xa8, 0xf6, 0x2c, 0x46, 0xa2, 0xe4, 0x15, 0x7e, 0xf5, 0x4d, 0x18, 0x82,
|
||||
0x09, 0x56, 0x01, 0xe8, 0x1e, 0xac, 0x9c, 0xd2, 0x88, 0x05, 0x62, 0xfd, 0xca, 0xbf, 0x8b, 0x4d,
|
||||
0x22, 0x5a, 0x77, 0xe0, 0x9d, 0x92, 0x0d, 0xad, 0x67, 0x53, 0x53, 0x0c, 0xc7, 0xac, 0x44, 0x16,
|
||||
0xf3, 0x25, 0xd2, 0x62, 0x50, 0x3b, 0xa1, 0x5d, 0xdf, 0x62, 0x71, 0x48, 0xd0, 0x0d, 0xa8, 0x44,
|
||||
0xb4, 0xab, 0xaa, 0x7d, 0x73, 0x3c, 0xd2, 0x2f, 0xc8, 0x5c, 0x47, 0xb4, 0x9b, 0xe4, 0x98, 0x7f,
|
||||
0x62, 0xee, 0xc5, 0x0f, 0xbf, 0x1f, 0xdb, 0xa2, 0x3d, 0x26, 0xc6, 0xad, 0x32, 0x24, 0x41, 0x89,
|
||||
0x88, 0xab, 0xfd, 0xd8, 0x7e, 0x40, 0x86, 0xad, 0x1f, 0x16, 0x61, 0xdd, 0xec, 0x05, 0xce, 0xd3,
|
||||
0x83, 0x53, 0xcb, 0xef, 0x92, 0x13, 0xc2, 0x72, 0x04, 0xf9, 0xf2, 0x95, 0xb4, 0x86, 0x1b, 0xb0,
|
||||
0x22, 0x9f, 0xfd, 0x91, 0x48, 0x4c, 0x0d, 0x27, 0x22, 0xda, 0x82, 0x55, 0x55, 0x8a, 0x51, 0xa3,
|
||||
0x22, 0x4c, 0xa9, 0x8c, 0xfa, 0x70, 0x2e, 0xa9, 0x59, 0x9b, 0xba, 0xbc, 0xfe, 0x79, 0x4e, 0xb7,
|
||||
0x27, 0x73, 0xaa, 0xae, 0x1e, 0x93, 0xba, 0xc7, 0xfe, 0x93, 0xc0, 0xbc, 0x31, 0x1e, 0xe9, 0x3b,
|
||||
0xc5, 0x2e, 0xe0, 0xf1, 0xe5, 0x3e, 0x10, 0x3a, 0x5c, 0xb7, 0xd2, 0xe0, 0x08, 0x6d, 0x43, 0x3d,
|
||||
0xb9, 0xcf, 0x28, 0x89, 0x1a, 0xcb, 0x82, 0x50, 0x5e, 0x85, 0x36, 0x92, 0x79, 0x29, 0x06, 0xb6,
|
||||
0x1a, 0x88, 0xad, 0x5f, 0x35, 0x3e, 0xde, 0xf2, 0x24, 0x4a, 0xed, 0xa9, 0xfd, 0xef, 0xf6, 0xfc,
|
||||
0x02, 0xd6, 0x6d, 0xea, 0xba, 0x13, 0xb3, 0xc6, 0xc8, 0x7e, 0x7e, 0x8a, 0xf6, 0xb4, 0x59, 0x8b,
|
||||
0x5a, 0xbc, 0x26, 0x15, 0x6a, 0xdc, 0xb4, 0xf6, 0xa0, 0x7e, 0x28, 0x1a, 0xeb, 0x51, 0x4c, 0x62,
|
||||
0x32, 0x51, 0x6a, 0x1b, 0xb0, 0x3c, 0xb0, 0x7a, 0x31, 0x51, 0xe7, 0x25, 0x05, 0x73, 0xff, 0xe5,
|
||||
0xeb, 0xa6, 0xf6, 0xea, 0x75, 0x53, 0xfb, 0xeb, 0x75, 0x53, 0x7b, 0x7e, 0xd6, 0x5c, 0x78, 0x75,
|
||||
0xd6, 0x5c, 0xf8, 0xfd, 0xac, 0xb9, 0xf0, 0xe5, 0x4e, 0x97, 0xb2, 0xf6, 0xc0, 0xb5, 0xdb, 0x2c,
|
||||
0x30, 0xf8, 0xf9, 0xdc, 0xa4, 0x81, 0xd1, 0xb3, 0x9c, 0xc0, 0xa7, 0xce, 0x2d, 0xd7, 0x78, 0x96,
|
||||
0xfe, 0x83, 0xdb, 0x55, 0x31, 0x15, 0xf6, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x85, 0xe1,
|
||||
0xaf, 0xa7, 0x0f, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *Params) Marshal() (dAtA []byte, err error) {
|
||||
@ -1472,6 +1530,45 @@ func (m *AuctionBidInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *ExpiryQueue) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *ExpiryQueue) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *ExpiryQueue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Value) > 0 {
|
||||
for iNdEx := len(m.Value) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(m.Value[iNdEx])
|
||||
copy(dAtA[i:], m.Value[iNdEx])
|
||||
i = encodeVarintRegistry(dAtA, i, uint64(len(m.Value[iNdEx])))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
}
|
||||
if len(m.Id) > 0 {
|
||||
i -= len(m.Id)
|
||||
copy(dAtA[i:], m.Id)
|
||||
i = encodeVarintRegistry(dAtA, i, uint64(len(m.Id)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func encodeVarintRegistry(dAtA []byte, offset int, v uint64) int {
|
||||
offset -= sovRegistry(v)
|
||||
base := offset
|
||||
@ -1742,6 +1839,25 @@ func (m *AuctionBidInfo) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *ExpiryQueue) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
l = len(m.Id)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovRegistry(uint64(l))
|
||||
}
|
||||
if len(m.Value) > 0 {
|
||||
for _, s := range m.Value {
|
||||
l = len(s)
|
||||
n += 1 + l + sovRegistry(uint64(l))
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func sovRegistry(x uint64) (n int) {
|
||||
return (math_bits.Len64(x|1) + 6) / 7
|
||||
}
|
||||
@ -3654,6 +3770,120 @@ func (m *AuctionBidInfo) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *ExpiryQueue) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRegistry
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: ExpiryQueue: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: ExpiryQueue: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRegistry
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthRegistry
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthRegistry
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Id = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowRegistry
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthRegistry
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthRegistry
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Value = append(m.Value, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipRegistry(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthRegistry
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func skipRegistry(dAtA []byte) (n int, err error) {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
|
Loading…
Reference in New Issue
Block a user