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:
2024-02-26 06:16:09 +00:00
committed by ashwin
parent 92764535a6
commit d2339e2426
17 changed files with 1612 additions and 4796 deletions
+7 -5
View File
@@ -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.
+162 -12
View File
@@ -2,6 +2,7 @@ package keeper
import (
"bytes"
"errors"
"fmt"
"sort"
"time"
@@ -91,11 +92,13 @@ type Keeper struct {
auctionKeeper auctionkeeper.Keeper
// state management
Schema collections.Schema
Params collections.Item[registrytypes.Params]
Records *collections.IndexedMap[string, registrytypes.Record, RecordsIndexes]
Authorities *collections.IndexedMap[string, registrytypes.NameAuthority, AuthoritiesIndexes]
NameRecords *collections.IndexedMap[string, registrytypes.NameRecord, NameRecordsIndexes]
Schema collections.Schema
Params collections.Item[registrytypes.Params]
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)
}
+4 -1
View File
@@ -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,
+145 -8
View File
@@ -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 ""
-14
View File
@@ -159,17 +159,3 @@ func (qs queryServer) ResolveCrn(c context.Context, req *registrytypes.QueryReso
return &registrytypes.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 &registrytypes.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 &registrytypes.QueryGetAuthorityExpiryQueueResponse{Authorities: authorities}, nil
}
+30 -3
View File
@@ -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.
+3
View File
@@ -27,4 +27,7 @@ var (
NameRecordsPrefix = collections.NewPrefix(6)
NameRecordsByCidIndexPrefix = collections.NewPrefix(7)
RecordExpiryQueuePrefix = collections.NewPrefix(8)
AuthorityExpiryQueuePrefix = collections.NewPrefix(9)
)
+10 -3
View File
@@ -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
}
+8
View File
@@ -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]",
+85 -1245
View File
File diff suppressed because it is too large Load Diff
-166
View File
@@ -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
)
+315 -85
View File
@@ -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